<?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>155079</bug_id>
          
          <creation_ts>2016-03-05 17:40:42 -0800</creation_ts>
          <short_desc>Add support for processing the autofill field name out of form control elements ultimately to aid input methods</short_desc>
          <delta_ts>2016-03-07 08:52:22 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=155115</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>155083</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ryanhaddad</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1171327</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-03-05 17:40:42 -0800</bug_when>
    <thetext>Add support for processing the autofill field name out of form control elements ultimately to aid input methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171331</commentid>
    <comment_count>1</comment_count>
      <attachid>273114</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-03-05 17:51:54 -0800</bug_when>
    <thetext>Created attachment 273114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171335</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-05 17:53:19 -0800</bug_when>
    <thetext>Attachment 273114 did not pass style-queue:


ERROR: Source/WebCore/html/Autofill.cpp:55:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:56:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:57:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:58:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:59:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:60:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:61:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:62:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:63:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:64:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:65:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:66:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:67:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:68:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:69:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:70:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:71:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:72:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:73:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:74:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:75:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:76:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:77:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:78:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:79:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:80:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:81:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:82:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:83:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:84:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:85:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:86:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:87:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:88:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:89:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:90:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:91:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:92:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:93:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:94:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:95:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:96:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:97:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:98:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:99:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:101:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:102:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:103:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:104:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:105:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:106:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:107:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:108:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:109:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:110:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/Autofill.cpp:237:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebCore/html/Autofill.cpp:260:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebCore/html/Autofill.cpp:285:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebCore/html/Autofill.cpp:293:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebCore/html/Autofill.h:82:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 60 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171343</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-03-05 18:22:26 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/197626</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171366</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-03-05 20:10:06 -0800</bug_when>
    <thetext>This broke several tests:
fast/forms/autocomplete.html
imported/w3c/web-platform-tests/html/semantics/forms/the-form-element/form-autocomplete.html
inspector/model/remote-object.html

Rolling out. In the future, please wait for EWS before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171368</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-05 20:15:27 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 155083</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171370</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-03-05 20:17:28 -0800</bug_when>
    <thetext>Sam is actively working on this, and asked to not roll out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171371</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-03-05 20:23:15 -0800</bug_when>
    <thetext>Additional fix in revision 197629.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171374</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-03-05 20:25:48 -0800</bug_when>
    <thetext>Additional test fixes in revision 197631</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171423</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-03-06 09:41:15 -0800</bug_when>
    <thetext>inspector/model/remote-object.html is sill failing on all bots. It has somewhat checkered recent history, however it seems clearly related to this change.

@@ -1919,7 +1919,7 @@
         &quot;_listeners&quot;: null,
         &quot;_name&quot;: &quot;autocomplete&quot;,
         &quot;_type&quot;: &quot;string&quot;,
-        &quot;_value&quot;: &quot;on&quot;
+        &quot;_value&quot;: &quot;&quot;
       },
       {
         &quot;_listeners&quot;: null,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171595</commentid>
    <comment_count>10</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-03-07 08:52:22 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; inspector/model/remote-object.html is sill failing on all bots. It has
&gt; somewhat checkered recent history, however it seems clearly related to this
&gt; change.
&gt; 
&gt; @@ -1919,7 +1919,7 @@
&gt;          &quot;_listeners&quot;: null,
&gt;          &quot;_name&quot;: &quot;autocomplete&quot;,
&gt;          &quot;_type&quot;: &quot;string&quot;,
&gt; -        &quot;_value&quot;: &quot;on&quot;
&gt; +        &quot;_value&quot;: &quot;&quot;
&gt;        },
&gt;        {
&gt;          &quot;_listeners&quot;: null,

Filed https://bugs.webkit.org/show_bug.cgi?id=155115 to track.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273114</attachid>
            <date>2016-03-05 17:51:54 -0800</date>
            <delta_ts>2016-03-05 18:04:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155079-20160305175140.patch</filename>
            <type>text/plain</type>
            <size>84879</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzYxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE2LTAzLTA1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHByb2Nlc3Np
bmcgdGhlIGF1dG9maWxsIGZpZWxkIG5hbWUgb3V0IG9mIGZvcm0gY29udHJvbCBlbGVtZW50cyB1
bHRpbWF0ZWx5IHRvIGFpZCBpbnB1dCBtZXRob2RzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
MzA0MTE4MD4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1NTA3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGVkIGFkZGl0aW9uYWwgY2FzZXMgdG8gZmFzdC9mb3Jtcy9hdXRvY29tcGxldGUtdG9rZW5z
Lmh0bWwuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgIEFkZCBBdXRvZmlsbC5oL2NwcAorCisgICAgICAgICogaHRtbC9BdXRvZmlsbC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6ZmllbGROYW1lTWFwKToKKyAgICAgICAgKFdlYkNv
cmU6OnRvQXV0b2ZpbGxGaWVsZE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6aXNDb250YWN0VG9r
ZW4pOgorICAgICAgICAoV2ViQ29yZTo6bWF4VG9rZW5zRm9yQXV0b2ZpbGxGaWVsZENhdGVnb3J5
KToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9maWxsRGF0YTo6Y3JlYXRlRnJvbUhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvQXV0b2ZpbGwuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpBdXRvZmlsbERhdGE6OkF1dG9maWxsRGF0YSk6CisgICAgICAgIFJlZmFjdG9y
ZWQgdGhlIGF1dG9maWxsIGRhdGEgcHJvY2Vzc2luZyBhbGdvcml0aG0gaW50byBpdCdzIG93biBm
aWxlIGFuZCBhZGRlZCBzdXBwb3J0CisgICAgICAgIHJldHVybmluZyBub3QganVzdCB0aGUgSURM
LWV4cG9zZWQgYXV0b2ZpbGwgdmFsdWUgYnV0IGFsc28gdGhlIGF1dG9maWxsIGZpZWxkIG5hbWUu
IFRoZQorICAgICAgICBjb2RlIGlzIHN0cnVjdHVyZWQgc2ltcGx5IGVub3VnaCB0aGF0IGlmIHdl
IGZpbmQgYSBuZWVkIGZvciB0aGUgaGludCBzZXQgb3Igc2NvcGUgaW5mb3JtYXRpb24KKyAgICAg
ICAgd2UgY291bGQgcmV0dXJuIGl0IGFzIHdlbGwuCisKKyAgICAgICAgKiBodG1sL0hUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxl
bWVudDo6YXV0b2NvbXBsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldEF1dG9jb21wbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRy
b2xFbGVtZW50OjphdXRvZmlsbE1hbnRsZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNv
bnRyb2xFbGVtZW50OjphdXRvZmlsbERhdGEpOgorICAgICAgICBVc2UgQXV0b2ZpbGxEYXRhIHRv
IGltcGxlbWVudCB0aGVzZS4KKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5oOgorICAgICAgICBFeHBvc2UgYWNjZXNzb3IgZm9yIG1hbnRsZSBhbmQgQXV0b2ZpbGxEYXRh
LgorCisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEZvcm1FbGVtZW50OjphdXRvY29tcGxldGUpOgorICAgICAgICAqIGh0bWwvSFRNTEZv
cm1FbGVtZW50Lmg6CisgICAgICAgIFN3aXRjaCB0byByZXR1cm4gYW4gQXRvbWljU3RyaW5nIGFz
IGl0IHdpbGwgYWx3YXlzCisgICAgICAgIHJldHVybiBvbmUgb2YgdHdvIGtub3duIHZhbHVlcy4K
KworICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6YXV0b2ZpbGxGaWVsZE5hbWUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorICAgICAgICBBZGQgYWNjZXNz
b3Igb2YgdGhlIGZpZWxkIG5hbWUgZm9yIHRlc3RpbmcgcHVycG9zZXMuCisKIDIwMTYtMDMtMDUg
IFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0VTNl0g
U3VwcG9ydCBSZWZsZWN0LmNvbnN0cnVjdApJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlz
aW9uIDE5NzYxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xNjExLDYgKzE2MTEsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaGlzdG9y
eS9QYWdlQ2FjaGUuY3BwCiAKICAgICBodG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAKKyAg
ICBodG1sL0F1dG9maWxsLmNwcAogICAgIGh0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHAKICAg
ICBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9CYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE5NzYxNSkKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtMjcxNyw2ICsyNzE3LDggQEAKIAkJN0FGOUIyMEUxOENGQjVGNDAwQzY0QkVGIC8q
IEpTVlRUUmVnaW9uTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QUY5QjIwQTE4Q0ZCNUYzMDBDNjRCRUYgLyogSlNWVFRSZWdpb25MaXN0LmNw
cCAqLzsgfTsKIAkJN0FGOUIyMEYxOENGQjVGNDAwQzY0QkVGIC8qIEpTVlRUUmVnaW9uTGlzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FGOUIyMEIx
OENGQjVGMzAwQzY0QkVGIC8qIEpTVlRUUmVnaW9uTGlzdC5oICovOyB9OwogCQk3QkU3NDI3Mzgx
RkE5MDZGQkI0RjBGMkMgLyogSlNTVkdHcmFwaGljc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEM0QzAyQkVEODkzNkY4MThFMkY5OSAv
KiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oICovOyB9OworCQk3QzE4NDNGRDFDOEI3MjgzMDAyRUI5
NzMgLyogQXV0b2ZpbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0MxODQzRkIxQzhCNzI4MzAwMkVCOTczIC8qIEF1dG9maWxsLmNwcCAqLzsgfTsK
KwkJN0MxODQzRkUxQzhCNzI4MzAwMkVCOTczIC8qIEF1dG9maWxsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzE4NDNGQzFDOEI3MjgzMDAyRUI5NzMg
LyogQXV0b2ZpbGwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk3QzFFOTcyNzFBOUY5ODM0MDA3QkYwRkIgLyogQXV0b0ZpbGxCdXR0b25FbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMUU5
NzI1MUE5Rjk4MzQwMDdCRjBGQiAvKiBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQuY3BwICovOyB9Owog
CQk3QzFFOTcyODFBOUY5ODM0MDA3QkYwRkIgLyogQXV0b0ZpbGxCdXR0b25FbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzFFOTcyNjFBOUY5
ODM0MDA3QkYwRkIgLyogQXV0b0ZpbGxCdXR0b25FbGVtZW50LmggKi87IH07CiAJCTdDMkJERDNE
MTdDN0Y5OEMwMDM4RkYxNSAvKiBKU0RPTUdsb2JhbE9iamVjdFRhc2suY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MyQkREM0IxN0M3Rjk4QjAwMzhG
RjE1IC8qIEpTRE9NR2xvYmFsT2JqZWN0VGFzay5jcHAgKi87IH07CkBAIC0xMDMzNyw2ICsxMDMz
OSw4IEBACiAJCTdBRjlCMjBBMThDRkI1RjMwMEM2NEJFRiAvKiBKU1ZUVFJlZ2lvbkxpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWVFRSZWdpb25MaXN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0FGOUIyMEIxOENGQjVGMzAwQzY0QkVG
IC8qIEpTVlRUUmVnaW9uTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1ZUVFJlZ2lvbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0MwNDA2MTIx
QzY2RUU5QzAwQUYwNzExIC8qIE5TU2Nyb2xsZXJJbXBTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTlNTY3JvbGxlckltcFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3QzE4NDNGQjFDOEI3MjgzMDAyRUI5NzMgLyogQXV0b2ZpbGwuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0b2ZpbGwuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3QzE4NDNGQzFDOEI3MjgzMDAyRUI5NzMgLyogQXV0b2ZpbGwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0b2ZpbGwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0MxRTk3MjUxQTlGOTgzNDAwN0JGMEZCIC8qIEF1dG9GaWxsQnV0
dG9uRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRv
RmlsbEJ1dHRvbkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzFF
OTcyNjFBOUY5ODM0MDA3QkYwRkIgLyogQXV0b0ZpbGxCdXR0b25FbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dG9GaWxsQnV0dG9uRWxlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QzJCREQzQjE3QzdGOThCMDAzOEZGMTUgLyogSlNET01H
bG9iYWxPYmplY3RUYXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTRE9NR2xvYmFsT2JqZWN0VGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xOTAyNSw2ICsxOTAyOSw4IEBACiAJCQkJQjFBRDRFNzcxM0ExMkE3MjAwODQ2QjI3IC8qIHRy
YWNrICovLAogCQkJCUE1RjZFMTZDMTMyRUQ0NkUwMDhFREFFMyAvKiBBdXRvY2FwaXRhbGl6ZS5j
cHAgKi8sCiAJCQkJQTUwMTkyMEMxMzJFQkYyRTAwOEJGRTU1IC8qIEF1dG9jYXBpdGFsaXplLmgg
Ki8sCisJCQkJN0MxODQzRkIxQzhCNzI4MzAwMkVCOTczIC8qIEF1dG9maWxsLmNwcCAqLywKKwkJ
CQk3QzE4NDNGQzFDOEI3MjgzMDAyRUI5NzMgLyogQXV0b2ZpbGwuaCAqLywKIAkJCQkzNzlFNjFD
NTEyNkNBNUMzMDBCNjNFOEQgLyogQmFzZUJ1dHRvbklucHV0VHlwZS5jcHAgKi8sCiAJCQkJMzc5
RTYxQzYxMjZDQTVDMzAwQjYzRThEIC8qIEJhc2VCdXR0b25JbnB1dFR5cGUuaCAqLywKIAkJCQkz
NzlFNjFDNzEyNkNBNUMzMDBCNjNFOEQgLyogQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAgKi8s
CkBAIC0yNjc2Miw2ICsyNjc2OCw3IEBACiAJCQkJQjU5REQ2OUQxMTkwMkE0MjAwN0U5Njg0IC8q
IEpTU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2QTEx
MTkwMkE1MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MUUwQkFFQjBEQTU1RDRBMDBBOUU0MTcgLyogSlNTdG9yYWdlRXZlbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTdDMTg0M0ZFMUM4QjcyODMwMDJFQjk3MyAvKiBBdXRvZmls
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODlGNjBDREExNTgwOUQ3NjAwNzVFMTU3IC8qIEpTU3Rv
cmFnZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjUwMjZBMTAyQkE5NDMwMDY2RjM5QSAv
KiBKU1N0eWxlTWVkaWEuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTAxMzlCMEMwQkVGMTgwMDQz
ODYwQSAvKiBKU1N0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLApAQCAtMzExNDIsNiArMzExNDks
NyBAQAogCQkJCTkzMzA5RTA0MDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVOb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUwNjA5OUU2NDkyMDA1NkU1ODEgLyogUmVtb3Zl
Tm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NE
NDk0Q0MxQTg2RUIxRDAwMEE4N0VDIC8qIFJlbmRlckF0dGFjaG1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJN0MxODQzRkQxQzhCNzI4MzAwMkVCOTczIC8qIEF1dG9maWxsLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDRUE0ODVGMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJCbG9jay5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzEwRDc2NzE3RDhFRTZFMDA1RTI2MjYgLyogUmVuZGVyQmxv
Y2tGbG93LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUE0ODUyMDk3RDkzMDIwMDk0QzlFNCAv
KiBSZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0F1dG9maWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0F1dG9maWxsLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvQXV0
b2ZpbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzE2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1dG9maWxsLmgiCisKKyNpbmNsdWRlICJI
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworZW51bSBjbGFzcyBBdXRvZmlsbENhdGVnb3J5IHsKKyAgICBPZmYsCisgICAg
QXV0b21hdGljLAorICAgIE5vcm1hbCwKKyAgICBDb250YWN0LAorfTsKKworc3RydWN0IEF1dG9m
aWxsSW5mbyB7CisgICAgQXV0b2ZpbGxGaWVsZE5hbWUgZmllbGROYW1lOworICAgIEF1dG9maWxs
Q2F0ZWdvcnkgY2F0ZWdvcnk7Cit9OworCitzdGF0aWMgSGFzaE1hcDxBdG9taWNTdHJpbmcsIEF1
dG9maWxsSW5mbz4mIGZpZWxkTmFtZU1hcCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEhhc2hNYXA8QXRvbWljU3RyaW5nLCBBdXRvZmlsbEluZm8+PiBtYXA7CisgICAgaWYgKG1hcC5n
ZXQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoIm9u
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxsSW5mb3sgQXV0
b2ZpbGxGaWVsZE5hbWU6Ok5vbmUsIEF1dG9maWxsQ2F0ZWdvcnk6Ok9mZiB9KTsKKyAgICAgICAg
bWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoIm9mZiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmllbGROYW1lOjpOb25lLCAgQXV0
b2ZpbGxDYXRlZ29yeTo6QXV0b21hdGljIH0pOworICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21p
Y1N0cmluZygibmFtZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRv
ZmlsbEluZm97IEF1dG9maWxsRmllbGROYW1lOjpOYW1lLCBBdXRvZmlsbENhdGVnb3J5OjpOb3Jt
YWwgfSk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJob25vcmlmaWMtcHJl
Zml4IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxsSW5mb3sg
QXV0b2ZpbGxGaWVsZE5hbWU6Okhvbm9yaWZpY1ByZWZpeCwgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9y
bWFsIH0pOworICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0cmluZygiZ2l2ZW4tbmFtZSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9m
aWxsRmllbGROYW1lOjpHaXZlbk5hbWUsIEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCB9KTsKKyAg
ICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoImFkZGl0aW9uYWwtbmFtZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmll
bGROYW1lOjpBZGRpdGlvbmFsTmFtZSwgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsIH0pOworICAg
ICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0cmluZygiZmFtaWx5LW5hbWUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxJbmZveyBBdXRvZmlsbEZpZWxkTmFt
ZTo6RmFtaWx5TmFtZSwgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsIH0pOworICAgICAgICBtYXAu
Z2V0KCkuYWRkKEF0b21pY1N0cmluZygiaG9ub3JpZmljLXN1ZmZpeCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmllbGROYW1lOjpI
b25vcmlmaWNTdWZmaXgsIEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCB9KTsKKyAgICAgICAgbWFw
LmdldCgpLmFkZChBdG9taWNTdHJpbmcoIm5pY2tuYW1lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxsSW5mb3sgQXV0b2ZpbGxGaWVsZE5hbWU6Ok5pY2tuYW1l
LCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwgfSk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQoQXRv
bWljU3RyaW5nKCJ1c2VybmFtZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
LCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmllbGROYW1lOjpVc2VybmFtZSwgQXV0b2ZpbGxDYXRl
Z29yeTo6Tm9ybWFsIH0pOworICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0cmluZygibmV3
LXBhc3N3b3JkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxs
SW5mb3sgQXV0b2ZpbGxGaWVsZE5hbWU6Ok5ld1Bhc3N3b3JkLCBBdXRvZmlsbENhdGVnb3J5OjpO
b3JtYWwgfSk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJjdXJyZW50LXBh
c3N3b3JkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxsSW5m
b3sgQXV0b2ZpbGxGaWVsZE5hbWU6OkN1cnJlbnRQYXNzd29yZCwgQXV0b2ZpbGxDYXRlZ29yeTo6
Tm9ybWFsIH0pOworICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0cmluZygib3JnYW5pemF0
aW9uLXRpdGxlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxs
SW5mb3sgQXV0b2ZpbGxGaWVsZE5hbWU6Ok9yZ2FuaXphdGlvblRpdGxlLCBBdXRvZmlsbENhdGVn
b3J5OjpOb3JtYWwgfSk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJvcmdh
bml6YXRpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxJ
bmZveyBBdXRvZmlsbEZpZWxkTmFtZTo6T3JnYW5pemF0aW9uLCBBdXRvZmlsbENhdGVnb3J5OjpO
b3JtYWwgfSk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJzdHJlZXQtYWRk
cmVzcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97
IEF1dG9maWxsRmllbGROYW1lOjpTdHJlZXRBZGRyZXNzLCBBdXRvZmlsbENhdGVnb3J5OjpOb3Jt
YWwgfSk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJhZGRyZXNzLWxpbmUx
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxsSW5mb3sgQXV0
b2ZpbGxGaWVsZE5hbWU6OkFkZHJlc3NMaW5lMSwgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsIH0p
OworICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0cmluZygiYWRkcmVzcy1saW5lMiIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxs
RmllbGROYW1lOjpBZGRyZXNzTGluZTIsIEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCB9KTsKKyAg
ICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoImFkZHJlc3MtbGluZTMiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxJbmZveyBBdXRvZmlsbEZpZWxk
TmFtZTo6QWRkcmVzc0xpbmUzLCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwgfSk7CisgICAgICAg
IG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJhZGRyZXNzLWxldmVsNCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmllbGROYW1l
OjpBZGRyZXNzTGV2ZWw0LCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwgfSk7CisgICAgICAgIG1h
cC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJhZGRyZXNzLWxldmVsMyIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmllbGROYW1lOjpB
ZGRyZXNzTGV2ZWwzLCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwgfSk7CisgICAgICAgIG1hcC5n
ZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJhZGRyZXNzLWxldmVsMiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmllbGROYW1lOjpBZGRy
ZXNzTGV2ZWwyLCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwgfSk7CisgICAgICAgIG1hcC5nZXQo
KS5hZGQoQXRvbWljU3RyaW5nKCJhZGRyZXNzLWxldmVsMSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmllbGROYW1lOjpBZGRyZXNz
TGV2ZWwxLCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwgfSk7CisgICAgICAgIG1hcC5nZXQoKS5h
ZGQoQXRvbWljU3RyaW5nKCJjb3VudHJ5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCksIEF1dG9maWxsSW5mb3sgQXV0b2ZpbGxGaWVsZE5hbWU6OkNvdW50cnksIEF1dG9maWxs
Q2F0ZWdvcnk6Ok5vcm1hbCB9KTsKKyAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmco
ImNvdW50cnktbmFtZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRv
ZmlsbEluZm97IEF1dG9maWxsRmllbGROYW1lOjpDb3VudHJ5TmFtZSwgQXV0b2ZpbGxDYXRlZ29y
eTo6Tm9ybWFsIH0pOworICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0cmluZygicG9zdGFs
LWNvZGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxJbmZv
eyBBdXRvZmlsbEZpZWxkTmFtZTo6UG9zdGFsQ29kZSwgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFs
IH0pOworICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0cmluZygiY2MtbmFtZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmll
bGROYW1lOjpDY05hbWUsIEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCB9KTsKKyAgICAgICAgbWFw
LmdldCgpLmFkZChBdG9taWNTdHJpbmcoImNjLWdpdmVuLW5hbWUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxJbmZveyBBdXRvZmlsbEZpZWxkTmFtZTo6Q2NH
aXZlbk5hbWUsIEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCB9KTsKKyAgICAgICAgbWFwLmdldCgp
LmFkZChBdG9taWNTdHJpbmcoImNjLWFkZGl0aW9uYWwtbmFtZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmllbGROYW1lOjpDY0Fk
ZGl0aW9uYWxOYW1lLCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwgfSk7CisgICAgICAgIG1hcC5n
ZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJjYy1mYW1pbHktbmFtZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmllbGROYW1lOjpDY0Zh
bWlseU5hbWUsIEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCB9KTsKKyAgICAgICAgbWFwLmdldCgp
LmFkZChBdG9taWNTdHJpbmcoImNjLW51bWJlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmllbGROYW1lOjpDY051bWJlciwgQXV0
b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsIH0pOworICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0
cmluZygiY2MtZXhwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9m
aWxsSW5mb3sgQXV0b2ZpbGxGaWVsZE5hbWU6OkNjRXhwLCBBdXRvZmlsbENhdGVnb3J5OjpOb3Jt
YWwgfSk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJjYy1leHAtbW9udGgi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxJbmZveyBBdXRv
ZmlsbEZpZWxkTmFtZTo6Q2NFeHBNb250aCwgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsIH0pOwor
ICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0cmluZygiY2MtZXhwLXllYXIiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxJbmZveyBBdXRvZmlsbEZpZWxk
TmFtZTo6Q2NFeHBZZWFyLCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwgfSk7CisgICAgICAgIG1h
cC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJjYy1jc2MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxJbmZveyBBdXRvZmlsbEZpZWxkTmFtZTo6Q2NDc2MsIEF1
dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCB9KTsKKyAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNT
dHJpbmcoImNjLXR5cGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0
b2ZpbGxJbmZveyBBdXRvZmlsbEZpZWxkTmFtZTo6Q2NUeXBlLCBBdXRvZmlsbENhdGVnb3J5OjpO
b3JtYWwgfSk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJ0cmFuc2FjdGlv
bi1jdXJyZW5jeSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmls
bEluZm97IEF1dG9maWxsRmllbGROYW1lOjpUcmFuc2FjdGlvbkN1cnJlbmN5LCBBdXRvZmlsbENh
dGVnb3J5OjpOb3JtYWwgfSk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJ0
cmFuc2FjdGlvbi1hbW91bnQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwg
QXV0b2ZpbGxJbmZveyBBdXRvZmlsbEZpZWxkTmFtZTo6VHJhbnNhY3Rpb25BbW91bnQsIEF1dG9m
aWxsQ2F0ZWdvcnk6Ok5vcm1hbCB9KTsKKyAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJp
bmcoImxhbmd1YWdlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9m
aWxsSW5mb3sgQXV0b2ZpbGxGaWVsZE5hbWU6Okxhbmd1YWdlLCBBdXRvZmlsbENhdGVnb3J5OjpO
b3JtYWwgfSk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJiZGF5IiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxsSW5mb3sgQXV0b2ZpbGxG
aWVsZE5hbWU6OkJkYXksIEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCB9KTsKKyAgICAgICAgbWFw
LmdldCgpLmFkZChBdG9taWNTdHJpbmcoImJkYXktZGF5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxsSW5mb3sgQXV0b2ZpbGxGaWVsZE5hbWU6OkJkYXlEYXks
IEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCB9KTsKKyAgICAgICAgbWFwLmdldCgpLmFkZChBdG9t
aWNTdHJpbmcoImJkYXktbW9udGgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSwgQXV0b2ZpbGxJbmZveyBBdXRvZmlsbEZpZWxkTmFtZTo6QmRheU1vbnRoLCBBdXRvZmlsbENh
dGVnb3J5OjpOb3JtYWwgfSk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJi
ZGF5LXllYXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxJ
bmZveyBBdXRvZmlsbEZpZWxkTmFtZTo6QmRheVllYXIsIEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1h
bCB9KTsKKyAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoInNleCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmllbGRO
YW1lOjpTZXgsIEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCB9KTsKKyAgICAgICAgbWFwLmdldCgp
LmFkZChBdG9taWNTdHJpbmcoInVybCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmllbGROYW1lOjpVUkwsIEF1dG9maWxsQ2F0ZWdv
cnk6Ok5vcm1hbCB9KTsKKyAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoInBob3Rv
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxsSW5mb3sgQXV0
b2ZpbGxGaWVsZE5hbWU6OlBob3RvLCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwgfSk7CisKKyAg
ICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoInRlbCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmllbGROYW1lOjpUZWws
IEF1dG9maWxsQ2F0ZWdvcnk6OkNvbnRhY3QgfSk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQoQXRv
bWljU3RyaW5nKCJ0ZWwtY291bnRyeS1jb2RlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCksIEF1dG9maWxsSW5mb3sgQXV0b2ZpbGxGaWVsZE5hbWU6OlRlbENvdW50cnlDb2Rl
LCBBdXRvZmlsbENhdGVnb3J5OjpDb250YWN0IH0pOworICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0
b21pY1N0cmluZygidGVsLW5hdGlvbmFsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCksIEF1dG9maWxsSW5mb3sgQXV0b2ZpbGxGaWVsZE5hbWU6OlRlbE5hdGlvbmFsLCBBdXRv
ZmlsbENhdGVnb3J5OjpDb250YWN0IH0pOworICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0
cmluZygidGVsLWFyZWEtY29kZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
LCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmllbGROYW1lOjpUZWxBcmVhQ29kZSwgQXV0b2ZpbGxD
YXRlZ29yeTo6Q29udGFjdCB9KTsKKyAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmco
InRlbC1sb2NhbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmls
bEluZm97IEF1dG9maWxsRmllbGROYW1lOjpUZWxMb2NhbCwgQXV0b2ZpbGxDYXRlZ29yeTo6Q29u
dGFjdCB9KTsKKyAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoInRlbC1sb2NhbC1w
cmVmaXgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxJbmZv
eyBBdXRvZmlsbEZpZWxkTmFtZTo6VGVsTG9jYWxQcmVmaXgsIEF1dG9maWxsQ2F0ZWdvcnk6OkNv
bnRhY3QgfSk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJ0ZWwtbG9jYWwt
c3VmZml4IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxsSW5m
b3sgQXV0b2ZpbGxGaWVsZE5hbWU6OlRlbExvY2FsU3VmZml4LCBBdXRvZmlsbENhdGVnb3J5OjpD
b250YWN0IH0pOworICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0cmluZygidGVsLWV4dGVu
c2lvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97
IEF1dG9maWxsRmllbGROYW1lOjpUZWxFeHRlbnNpb24sIEF1dG9maWxsQ2F0ZWdvcnk6OkNvbnRh
Y3QgfSk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJlbWFpbCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbEluZm97IEF1dG9maWxsRmll
bGROYW1lOjpFbWFpbCwgQXV0b2ZpbGxDYXRlZ29yeTo6Q29udGFjdCB9KTsKKyAgICAgICAgbWFw
LmdldCgpLmFkZChBdG9taWNTdHJpbmcoImltcHAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSwgQXV0b2ZpbGxJbmZveyBBdXRvZmlsbEZpZWxkTmFtZTo6SW1wcCwgQXV0b2Zp
bGxDYXRlZ29yeTo6Q29udGFjdCB9KTsKKyAgICB9CisKKyAgICByZXR1cm4gbWFwOworfQorCitB
dXRvZmlsbEZpZWxkTmFtZSB0b0F1dG9maWxsRmllbGROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYg
dmFsdWUpCit7CisgICAgYXV0byBtYXAgPSBmaWVsZE5hbWVNYXAoKTsKKyAgICBhdXRvIGl0ID0g
bWFwLmZpbmQodmFsdWUpOworICAgIGlmIChpdCA9PSBtYXAuZW5kKCkpCisgICAgICAgIHJldHVy
biBBdXRvZmlsbEZpZWxkTmFtZTo6Tm9uZTsKKyAgICByZXR1cm4gaXQtPnZhbHVlLmZpZWxkTmFt
ZTsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzQ29udGFjdFRva2VuKGNvbnN0IEF0b21pY1N0
cmluZyYgdG9rZW4pCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4g
aG9tZSgiaG9tZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHdvcmsoIndvcmsiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bWljU3RyaW5nPiBtb2JpbGUoIm1vYmlsZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGZheCgiZmF4
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21pY1N0cmluZz4gcGFnZXIoInBhZ2VyIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisKKyAgICByZXR1cm4gdG9rZW4gPT0gaG9tZSB8fCB0b2tlbiA9
PSB3b3JrIHx8IHRva2VuID09IG1vYmlsZSB8fCB0b2tlbiA9PSBmYXggfHwgdG9rZW4gPT0gcGFn
ZXI7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBtYXhUb2tlbnNGb3JBdXRvZmlsbEZpZWxkQ2F0ZWdv
cnkoQXV0b2ZpbGxDYXRlZ29yeSBjYXRlZ29yeSkKK3sKKyAgICBzd2l0Y2ggKGNhdGVnb3J5KSB7
CisgICAgY2FzZSBBdXRvZmlsbENhdGVnb3J5OjpBdXRvbWF0aWM6CisgICAgY2FzZSBBdXRvZmls
bENhdGVnb3J5OjpPZmY6CisgICAgICAgIHJldHVybiAxOworCisgICAgY2FzZSBBdXRvZmlsbENh
dGVnb3J5OjpOb3JtYWw6CisgICAgICAgIHJldHVybiAzOworCisgICAgY2FzZSBBdXRvZmlsbENh
dGVnb3J5OjpDb250YWN0OgorICAgICAgICByZXR1cm4gNDsKKyAgICB9CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CisKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvbXVsdGlwYWdlL2Zvcm1zLmh0bWwjcHJvY2Vzc2luZy1tb2RlbC0zCitBdXRvZmls
bERhdGEgQXV0b2ZpbGxEYXRhOjpjcmVhdGVGcm9tSFRNTEZvcm1Db250cm9sRWxlbWVudChjb25z
dCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50JiBlbGVtZW50KQoreworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IG9uKCJvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG9mZigi
b2ZmIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisKKyAgICAvLyBMYWJl
bDogRGVmYXVsdAorICAgIC8vIDI2LiBMZXQgdGhlIGVsZW1lbnQncyBJREwtZXhwb3NlZCBhdXRv
ZmlsbCB2YWx1ZSBiZSB0aGUgZW1wdHkgc3RyaW5nLCBhbmQgaXRzIGF1dG9maWxsIGhpbnQgc2V0
IGFuZCBhdXRvZmlsbCBzY29wZSBiZSBlbXB0eS4KKyAgICAvLyAyNy4gSWYgdGhlIGVsZW1lbnQn
cyBhdXRvY29tcGxldGUgYXR0cmlidXRlIGlzIHdlYXJpbmcgdGhlIGF1dG9maWxsIGFuY2hvciBt
YW50bGUsIHRoZW4gbGV0IHRoZSBlbGVtZW50J3MgYXV0b2ZpbGwgZmllbGQgbmFtZSBiZSB0aGUg
ZW1wdHkgc3RyaW5nIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAyOC4gTGV0IGZvcm0g
YmUgdGhlIGVsZW1lbnQncyBmb3JtIG93bmVyLCBpZiBhbnksIG9yIG51bGwgb3RoZXJ3aXNlLgor
ICAgIC8vIDI5LiBJZiBmb3JtIGlzIG5vdCBudWxsIGFuZCBmb3JtJ3MgYXV0b2NvbXBsZXRlIGF0
dHJpYnV0ZSBpcyBpbiB0aGUgb2ZmIHN0YXRlLCB0aGVuIGxldCB0aGUgZWxlbWVudCdzIGF1dG9m
aWxsIGZpZWxkIG5hbWUgYmUgIm9mZiIuIE90aGVyd2lzZSwgbGV0IHRoZSBlbGVtZW50J3MgYXV0
b2ZpbGwgZmllbGQgbmFtZSBiZSAib24iLgorICAgIGF1dG8gZGVmYXVsdExhYmVsID0gWyZdICgp
IC0+IEF1dG9maWxsRGF0YSB7CisgICAgICAgIGlmIChlbGVtZW50LmF1dG9maWxsTWFudGxlKCkg
PT0gQXV0b2ZpbGxNYW50bGU6OkFuY2hvcikKKyAgICAgICAgICAgIHJldHVybiB7IGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCkgfTsKKyAgICAgICAgCisgICAgICAgIGF1dG8gZm9ybSA9IGVs
ZW1lbnQuZm9ybSgpOworICAgICAgICBpZiAoZm9ybSAmJiBmb3JtLT5hdXRvY29tcGxldGUoKSA9
PSBvZmYpCisgICAgICAgICAgICByZXR1cm4geyBvZmYsIGVtcHR5U3RyaW5nKCkgfTsKKyAgICAg
ICAgcmV0dXJuIHsgb24sIGVtcHR5U3RyaW5nKCkgfTsKKyAgICB9OworCisKKyAgICBjb25zdCBB
dG9taWNTdHJpbmcmIGF0dHJpYnV0ZVZhbHVlID0gZWxlbWVudC5mYXN0R2V0QXR0cmlidXRlKEhU
TUxOYW1lczo6YXV0b2NvbXBsZXRlQXR0cik7CisKKyAgICAvLyAxLiBJZiB0aGUgZWxlbWVudCBo
YXMgbm8gYXV0b2NvbXBsZXRlIGF0dHJpYnV0ZSwgdGhlbiBqdW1wIHRvIHRoZSBzdGVwIGxhYmVs
ZWQgZGVmYXVsdC4KKyAgICBpZiAoYXR0cmlidXRlVmFsdWUgPT0gbnVsbEF0b20pCisgICAgICAg
IHJldHVybiBkZWZhdWx0TGFiZWwoKTsKKworICAgIC8vIDIuIExldCB0b2tlbnMgYmUgdGhlIHJl
c3VsdCBvZiBzcGxpdHRpbmcgdGhlIGF0dHJpYnV0ZSdzIHZhbHVlIG9uIHNwYWNlcy4KKyAgICBT
cGFjZVNwbGl0U3RyaW5nIHRva2VucyhhdHRyaWJ1dGVWYWx1ZSwgdHJ1ZSk7CisKKyAgICAvLyAz
LiBJZiB0b2tlbnMgaXMgZW1wdHksIHRoZW4ganVtcCB0byB0aGUgc3RlcCBsYWJlbGVkIGRlZmF1
bHQuCisgICAgaWYgKHRva2Vucy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBkZWZhdWx0TGFi
ZWwoKTsKKyAgICAKKyAgICAvLyA0LiBMZXQgaW5kZXggYmUgdGhlIGluZGV4IG9mIHRoZSBsYXN0
IHRva2VuIGluIHRva2VucworICAgIHVuc2lnbmVkIGluZGV4ID0gdG9rZW5zLnNpemUoKSAtIDE7
CisKKyAgICAvLyA1LiBJZiB0aGUgaW5kZXh0aCB0b2tlbiBpbiB0b2tlbnMgaXMgbm90IGFuIEFT
Q0lJIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2ggZm9yIG9uZSBvZiB0aGUKKyAgICAvLyB0b2tlbnMg
Z2l2ZW4gaW4gdGhlIGZpcnN0IGNvbHVtbiBvZiB0aGUgZm9sbG93aW5nIHRhYmxlLCBvciBpZiB0
aGUgbnVtYmVyIG9mIHRva2VucyBpbgorICAgIC8vIHRva2VucyBpcyBncmVhdGVyIHRoYW4gdGhl
IG1heGltdW0gbnVtYmVyIGdpdmVuIGluIHRoZSBjZWxsIGluIHRoZSBzZWNvbmQgY29sdW1uIG9m
IHRoYXQKKyAgICAvLyB0b2tlbidzIHJvdywgdGhlbiBqdW1wIHRvIHRoZSBzdGVwIGxhYmVsZWQg
ZGVmYXVsdC4gT3RoZXJ3aXNlLCBsZXQgZmllbGQgYmUgdGhlIHN0cmluZyBnaXZlbgorICAgIC8v
IGluIHRoZSBjZWxsIG9mIHRoZSBmaXJzdCBjb2x1bW4gb2YgdGhlIG1hdGNoaW5nIHJvdywgYW5k
IGxldCBjYXRlZ29yeSBiZSB0aGUgdmFsdWUgb2YgdGhlCisgICAgLy8gY2VsbCBpbiB0aGUgdGhp
cmQgY29sdW1uIG9mIHRoYXQgc2FtZSByb3cuCisgICAgYXV0byYgbWFwID0gZmllbGROYW1lTWFw
KCk7CisKKyAgICBhdXRvIGl0ID0gbWFwLmZpbmQodG9rZW5zW2luZGV4XSk7CisgICAgaWYgKGl0
ID09IG1hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRMYWJlbCgpOworICAgIAorICAg
IGF1dG8gY2F0ZWdvcnkgPSBpdC0+dmFsdWUuY2F0ZWdvcnk7CisKKyAgICBpZiAodG9rZW5zLnNp
emUoKSA+IG1heFRva2Vuc0ZvckF1dG9maWxsRmllbGRDYXRlZ29yeShjYXRlZ29yeSkpCisgICAg
ICAgIHJldHVybiBkZWZhdWx0TGFiZWwoKTsKKworICAgIGNvbnN0IGF1dG8mIGZpZWxkID0gdG9r
ZW5zW2luZGV4XTsKKworICAgIC8vIDYuIElmIGNhdGVnb3J5IGlzIE9mZiBvciBBdXRvbWF0aWMg
YnV0IHRoZSBlbGVtZW50J3MgYXV0b2NvbXBsZXRlIGF0dHJpYnV0ZSBpcyB3ZWFyaW5nIHRoZQor
ICAgIC8vIGF1dG9maWxsIGFuY2hvciBtYW50bGUsIHRoZW4ganVtcCB0byB0aGUgc3RlcCBsYWJl
bGVkIGRlZmF1bHQuCisgICAgYXV0byBtYW50bGUgPSBlbGVtZW50LmF1dG9maWxsTWFudGxlKCk7
CisgICAgaWYgKChjYXRlZ29yeSA9PSBBdXRvZmlsbENhdGVnb3J5OjpPZmYgfHwgY2F0ZWdvcnkg
PT0gQXV0b2ZpbGxDYXRlZ29yeTo6QXV0b21hdGljKSAmJiBtYW50bGUgPT0gQXV0b2ZpbGxNYW50
bGU6OkFuY2hvcikKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRMYWJlbCgpOworCisgICAgLy8gNy4g
SWYgY2F0ZWdvcnkgaXMgT2ZmLCBsZXQgdGhlIGVsZW1lbnQncyBhdXRvZmlsbCBmaWVsZCBuYW1l
IGJlIHRoZSBzdHJpbmcgIm9mZiIsIGxldCBpdHMKKyAgICAvLyBhdXRvZmlsbCBoaW50IHNldCBi
ZSBlbXB0eSwgYW5kIGxldCBpdHMgSURMLWV4cG9zZWQgYXV0b2ZpbGwgdmFsdWUgYmUgdGhlIHN0
cmluZyAib2ZmIi4KKyAgICAvLyBUaGVuLCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoY2F0
ZWdvcnkgPT0gQXV0b2ZpbGxDYXRlZ29yeTo6T2ZmKQorICAgICAgICByZXR1cm4geyBvZmYsIG9m
Zi5nZXQoKS5zdHJpbmcoKSB9OworCisgICAgLy8gOC4gSWYgY2F0ZWdvcnkgaXMgQXV0b21hdGlj
LCBsZXQgdGhlIGVsZW1lbnQncyBhdXRvZmlsbCBmaWVsZCBuYW1lIGJlIHRoZSBzdHJpbmcgIm9u
IiwKKyAgICAvLyBsZXQgaXRzIGF1dG9maWxsIGhpbnQgc2V0IGJlIGVtcHR5LCBhbmQgbGV0IGl0
cyBJREwtZXhwb3NlZCBhdXRvZmlsbCB2YWx1ZSBiZSB0aGUgc3RyaW5nCisgICAgLy8gIm9uIi4g
VGhlbiwgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKGNhdGVnb3J5ID09IEF1dG9maWxsQ2F0
ZWdvcnk6Ok9mZikKKyAgICAgICAgcmV0dXJuIHsgb24sIG9uLmdldCgpLnN0cmluZygpIH07CisK
KyAgICAvLyA5LiBMZXQgc2NvcGUgdG9rZW5zIGJlIGFuIGVtcHR5IGxpc3QuCisgICAgLy8gMTAu
IExldCBoaW50IHRva2VucyBiZSBhbiBlbXB0eSBzZXQuCisKKyAgICAvLyBOT1RFOiBXZSBhcmUg
aWdub3JpbmcgdGhlc2Ugc3RlcHMgYXMgd2UgZG9uJ3QgY3VycmVudGx5IG1ha2UgdXNlIG9mIHNj
b3BlIHRva2VucyBvciBoaW50IHRva2VucyBhbnl3aGVyZS4KKworICAgIC8vIDExLiBMZXQgSURM
IHZhbHVlIGhhdmUgdGhlIHNhbWUgdmFsdWUgYXMgZmllbGQuCisgICAgU3RyaW5nIGlkbFZhbHVl
ID0gZmllbGQ7CisKKyAgICAvLyAxMiwgSWYgdGhlIGluZGV4dGggdG9rZW4gaW4gdG9rZW5zIGlz
IHRoZSBmaXJzdCBlbnRyeSwgdGhlbiBza2lwIHRvIHRoZSBzdGVwIGxhYmVsZWQgZG9uZS4KKyAg
ICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuIHsgZmllbGQsIGlkbFZhbHVlIH07CisK
KyAgICAvLyAxMy4gRGVjcmVtZW50IGluZGV4IGJ5IG9uZQorICAgIGluZGV4LS07CisKKyAgICAv
LyAxNC4gSWYgY2F0ZWdvcnkgaXMgQ29udGFjdCBhbmQgdGhlIGluZGV4dGggdG9rZW4gaW4gdG9r
ZW5zIGlzIGFuIEFTQ0lJIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2gKKyAgICAvLyBmb3Igb25lIG9m
IHRoZSBzdHJpbmdzIGluIHRoZSBmb2xsb3dpbmcgbGlzdCwgdGhlbiBydW4gdGhlIHN1YnN0ZXBz
IHRoYXQgZm9sbG93OgorICAgIGNvbnN0IGF1dG8mIGNvbnRhY3RUb2tlbiA9IHRva2Vuc1tpbmRl
eF07CisgICAgaWYgKGNhdGVnb3J5ID09IEF1dG9maWxsQ2F0ZWdvcnk6OkNvbnRhY3QgJiYgaXND
b250YWN0VG9rZW4oY29udGFjdFRva2VuKSkgeworICAgICAgICAvLyAxLiBMZXQgY29udGFjdCBi
ZSB0aGUgbWF0Y2hpbmcgc3RyaW5nIGZyb20gdGhlIGxpc3QgYWJvdmUuCisgICAgICAgIGNvbnN0
IGF1dG8mIGNvbnRhY3QgPSBjb250YWN0VG9rZW47CisKKyAgICAgICAgLy8gMi4gSW5zZXJ0IGNv
bnRhY3QgYXQgdGhlIHN0YXJ0IG9mIHNjb3BlIHRva2Vucy4KKyAgICAgICAgLy8gMy4gQWRkIGNv
bnRhY3QgdG8gaGludCB0b2tlbnMuCisKKyAgICAgICAgLy8gTk9URTogV2UgYXJlIGlnbm9yaW5n
IHRoZXNlIHN0ZXBzIGFzIHdlIGRvbid0IGN1cnJlbnRseSBtYWtlIHVzZSBvZiBzY29wZSB0b2tl
bnMgb3IgaGludCB0b2tlbnMgYW55d2hlcmUuCisKKyAgICAgICAgLy8gNC4gTGV0IElETCB2YWx1
ZSBiZSB0aGUgY29uY2F0ZW5hdGlvbiBvZiBjb250YWN0LCBhIFUrMDAyMCBTUEFDRSBjaGFyYWN0
ZXIsIGFuZCB0aGUgcHJldmlvdXMKKyAgICAgICAgLy8gdmFsdWUgb2YgSURMIHZhbHVlICh3aGlj
aCBhdCB0aGlzIHBvaW50IHdpbGwgYWx3YXlzIGJlIGZpZWxkKS4KKyAgICAgICAgaWRsVmFsdWUg
PSBXVEY6Om1ha2VTdHJpbmcoY29udGFjdCwgIiAiLCBpZGxWYWx1ZSk7CisKKyAgICAgICAgLy8g
NS4gSWYgdGhlIGluZGV4dGggZW50cnkgaW4gdG9rZW5zIGlzIHRoZSBmaXJzdCBlbnRyeSwgdGhl
biBza2lwIHRvIHRoZSBzdGVwIGxhYmVsZWQgZG9uZS4KKyAgICAgICAgaWYgKGluZGV4ID09IDAp
CisgICAgICAgICAgICByZXR1cm4geyBmaWVsZCwgaWRsVmFsdWUgfTsKKworICAgICAgICAvLyA2
LiBEZWNyZW1lbnQgaW5kZXggYnkgb25lLgorICAgICAgICBpbmRleC0tOworICAgIH0KKworICAg
IC8vIDE1LiBJZiB0aGUgaW5kZXh0aCB0b2tlbiBpbiB0b2tlbnMgaXMgYW4gQVNDSUkgY2FzZS1p
bnNlbnNpdGl2ZSBtYXRjaCBmb3Igb25lIG9mIHRoZSBzdHJpbmdzCisgICAgLy8gaW4gdGhlIGZv
bGxvd2luZyBsaXN0LCB0aGVuIHJ1biB0aGUgc3Vic3RlcHMgdGhhdCBmb2xsb3c6CisgICAgY29u
c3QgYXV0byYgbW9kZVRva2VuID0gdG9rZW5zW2luZGV4XTsKKyAgICBpZiAoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShtb2RlVG9rZW4sICJzaGlwcGluZyIpIHx8IGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UobW9kZVRva2VuLCAiYmlsbGluZyIpKSB7CisgICAgICAgIC8vIDEuIExldCBtb2RlIGJlIHRo
ZSBtYXRjaGluZyBzdHJpbmcgZnJvbSB0aGUgbGlzdCBhYm92ZS4KKyAgICAgICAgY29uc3QgYXV0
byYgbW9kZSA9IG1vZGVUb2tlbjsKKworICAgICAgICAvLyAyLiBJbnNlcnQgbW9kZSBhdCB0aGUg
c3RhcnQgb2Ygc2NvcGUgdG9rZW5zLgorICAgICAgICAvLyAzLiBBZGQgbW9kZSB0byBoaW50IHRv
a2Vucy4KKworICAgICAgICAvLyBOT1RFOiBXZSBhcmUgaWdub3JpbmcgdGhlc2Ugc3RlcHMgYXMg
d2UgZG9uJ3QgY3VycmVudGx5IG1ha2UgdXNlIG9mIHNjb3BlIHRva2VucyBvciBoaW50IHRva2Vu
cyBhbnl3aGVyZS4KKworICAgICAgICAvLyA0LiBMZXQgSURMIHZhbHVlIGJlIHRoZSBjb25jYXRl
bmF0aW9uIG9mIG1vZGUsIGEgVSswMDIwIFNQQUNFIGNoYXJhY3RlciwgYW5kIHRoZSBwcmV2aW91
cworICAgICAgICAvLyB2YWx1ZSBvZiBJREwgdmFsdWUgKHdoaWNoIGF0IHRoaXMgcG9pbnQgd2ls
bCBlaXRoZXIgYmUgZmllbGQgb3IgdGhlIGNvbmNhdGVuYXRpb24gb2YgY29udGFjdCwKKyAgICAg
ICAgLy8gYSBzcGFjZSwgYW5kIGZpZWxkKS4KKyAgICAgICAgaWRsVmFsdWUgPSBXVEY6Om1ha2VT
dHJpbmcobW9kZSwgIiAiLCBpZGxWYWx1ZSk7CisKKyAgICAgICAgLy8gNS4gSWYgdGhlIGluZGV4
dGggZW50cnkgaW4gdG9rZW5zIGlzIHRoZSBmaXJzdCBlbnRyeSwgdGhlbiBza2lwIHRvIHRoZSBz
dGVwIGxhYmVsZWQgZG9uZS4KKyAgICAgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgICAgICBy
ZXR1cm4geyBmaWVsZCwgaWRsVmFsdWUgfTsKKworICAgICAgICAvLyA2LiBEZWNyZW1lbnQgaW5k
ZXggYnkgb25lLgorICAgICAgICBpbmRleC0tOworICAgIH0KKworICAgIC8vIDE2LiBJZiB0aGUg
aW5kZXh0aCBlbnRyeSBpbiB0b2tlbnMgaXMgbm90IHRoZSBmaXJzdCBlbnRyeSwgdGhlbiBqdW1w
IHRvIHRoZSBzdGVwIGxhYmVsZWQgZGVmYXVsdC4KKyAgICBpZiAoaW5kZXggIT0gMCkKKyAgICAg
ICAgcmV0dXJuIGRlZmF1bHRMYWJlbCgpOworCisgICAgLy8gMTcuIElmIHRoZSBmaXJzdCBlaWdo
dCBjaGFyYWN0ZXJzIG9mIHRoZSBpbmRleHRoIHRva2VuIGluIHRva2VucyBhcmUgbm90IGFuIEFT
Q0lJIGNhc2UtaW5zZW5zaXRpdmUKKyAgICAvLyBtYXRjaCBmb3IgdGhlIHN0cmluZyAic2VjdGlv
bi0iLCB0aGVuIGp1bXAgdG8gdGhlIHN0ZXAgbGFiZWxlZCBkZWZhdWx0LgorICAgIGNvbnN0IGF1
dG8mIHNlY3Rpb25Ub2tlbiA9IHRva2Vuc1tpbmRleF07CisgICAgaWYgKCFzZWN0aW9uVG9rZW4u
c3RhcnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCJzZWN0aW9uLSIpKQorICAgICAgICByZXR1cm4g
ZGVmYXVsdExhYmVsKCk7CisKKyAgICAvLyAxOC4gTGV0IHNlY3Rpb24gYmUgdGhlIGluZGV4dGgg
dG9rZW4gaW4gdG9rZW5zLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLgorICAgIGNvbnN0
IGF1dG8mIHNlY3Rpb24gPSBzZWN0aW9uVG9rZW47CisKKyAgICAvLyAxOS4gSW5zZXJ0IHNlY3Rp
b24gYXQgdGhlIHN0YXJ0IG9mIHNjb3BlIHRva2Vucy4KKworICAgIC8vIE5PVEU6IFdlIGFyZSBp
Z25vcmluZyB0aGlzIHN0ZXAgYXMgd2UgZG9uJ3QgY3VycmVudGx5IG1ha2UgdXNlIG9mIHNjb3Bl
IHRva2VucyBvciBoaW50IHRva2VucyBhbnl3aGVyZS4KKworICAgIC8vIDIwLiBMZXQgSURMIHZh
bHVlIGJlIHRoZSBjb25jYXRlbmF0aW9uIG9mIHNlY3Rpb24sIGEgVSswMDIwIFNQQUNFIGNoYXJh
Y3RlciwgYW5kIHRoZSBwcmV2aW91cworICAgIC8vIHZhbHVlIG9mIElETCB2YWx1ZS4KKyAgICBp
ZGxWYWx1ZSA9IFdURjo6bWFrZVN0cmluZyhzZWN0aW9uLCAiICIsIGlkbFZhbHVlKTsKKworICAg
IHJldHVybiB7IGZpZWxkLCBpZGxWYWx1ZSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9maWxsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9BdXRvZmlsbC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9BdXRvZmlsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTE4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBBdXRvZmlsbF9oCisjZGVmaW5lIEF1dG9maWxsX2gKKworI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgQXV0b2ZpbGxNYW50bGUg
eworICAgIEV4cGVjdGF0aW9uLAorICAgIEFuY2hvcgorfTsKKworZW51bSBjbGFzcyBBdXRvZmls
bEZpZWxkTmFtZSB7CisgICAgTm9uZSwKKyAgICBOYW1lLAorICAgIEhvbm9yaWZpY1ByZWZpeCwK
KyAgICBHaXZlbk5hbWUsCisgICAgQWRkaXRpb25hbE5hbWUsCisgICAgRmFtaWx5TmFtZSwKKyAg
ICBIb25vcmlmaWNTdWZmaXgsCisgICAgTmlja25hbWUsCisgICAgVXNlcm5hbWUsCisgICAgTmV3
UGFzc3dvcmQsCisgICAgQ3VycmVudFBhc3N3b3JkLAorICAgIE9yZ2FuaXphdGlvblRpdGxlLAor
ICAgIE9yZ2FuaXphdGlvbiwKKyAgICBTdHJlZXRBZGRyZXNzLAorICAgIEFkZHJlc3NMaW5lMSwK
KyAgICBBZGRyZXNzTGluZTIsCisgICAgQWRkcmVzc0xpbmUzLAorICAgIEFkZHJlc3NMZXZlbDQs
CisgICAgQWRkcmVzc0xldmVsMywKKyAgICBBZGRyZXNzTGV2ZWwyLAorICAgIEFkZHJlc3NMZXZl
bDEsCisgICAgQ291bnRyeSwKKyAgICBDb3VudHJ5TmFtZSwKKyAgICBQb3N0YWxDb2RlLAorICAg
IENjTmFtZSwKKyAgICBDY0dpdmVuTmFtZSwKKyAgICBDY0FkZGl0aW9uYWxOYW1lLAorICAgIENj
RmFtaWx5TmFtZSwKKyAgICBDY051bWJlciwKKyAgICBDY0V4cCwKKyAgICBDY0V4cE1vbnRoLAor
ICAgIENjRXhwWWVhciwKKyAgICBDY0NzYywKKyAgICBDY1R5cGUsCisgICAgVHJhbnNhY3Rpb25D
dXJyZW5jeSwKKyAgICBUcmFuc2FjdGlvbkFtb3VudCwKKyAgICBMYW5ndWFnZSwKKyAgICBCZGF5
LAorICAgIEJkYXlEYXksCisgICAgQmRheU1vbnRoLAorICAgIEJkYXlZZWFyLAorICAgIFNleCwK
KyAgICBVUkwsCisgICAgUGhvdG8sCisgICAgVGVsLAorICAgIFRlbENvdW50cnlDb2RlLAorICAg
IFRlbE5hdGlvbmFsLAorICAgIFRlbEFyZWFDb2RlLAorICAgIFRlbExvY2FsLAorICAgIFRlbExv
Y2FsUHJlZml4LAorICAgIFRlbExvY2FsU3VmZml4LAorICAgIFRlbEV4dGVuc2lvbiwKKyAgICBF
bWFpbCwKKyAgICBJbXBwCit9OworCitXRUJDT1JFX0VYUE9SVCBBdXRvZmlsbEZpZWxkTmFtZSB0
b0F1dG9maWxsRmllbGROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpOworCitjbGFzcyBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50OworCitjbGFzcyBBdXRvZmlsbERhdGEgeworcHVibGljOgorICAgIHN0
YXRpYyBBdXRvZmlsbERhdGEgY3JlYXRlRnJvbUhUTUxGb3JtQ29udHJvbEVsZW1lbnQoY29uc3Qg
SFRNTEZvcm1Db250cm9sRWxlbWVudCYpOworCisgICAgQXV0b2ZpbGxEYXRhKGNvbnN0IEF0b21p
Y1N0cmluZyYgZmllbGROYW1lLCBjb25zdCBTdHJpbmcmIGlkbEV4cG9zZWRWYWx1ZSkKKyAgICAg
ICAgOiBmaWVsZE5hbWUoZmllbGROYW1lKQorICAgICAgICAsIGlkbEV4cG9zZWRWYWx1ZShpZGxF
eHBvc2VkVmFsdWUpCisgICAgeworICAgIH0KKworICAgIC8vIFdlIGNvdWxkIGFkZCBzdXBwb3J0
IGZvciBoaW50IHRva2VucyBhbmQgc2NvcGUgdG9rZW5zIGlmIHRob3NlIGV2ZXIgYmVjYW1lIHVz
ZWZ1bCB0byBhbnlvbmUuCisKKyAgICBBdG9taWNTdHJpbmcgZmllbGROYW1lOworICAgIFN0cmlu
ZyBpZGxFeHBvc2VkVmFsdWU7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gQXV0
b2ZpbGxfaApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxOTc2MTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgog
CisjaW5jbHVkZSAiQXV0b2ZpbGwuaCIKICNpbmNsdWRlICJDb250cm9sU3RhdGVzLmgiCiAjaW5j
bHVkZSAiRWxlbWVudEFuY2VzdG9ySXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudC5oIgpAQCAt
NjExLDE2NyArNjEyLDI4IEBAIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIEhUTUxGb3JtQ29udHJv
bEUKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGlzQ29udGFj
dFRva2VuKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pCitTdHJpbmcgSFRNTEZvcm1Db250cm9s
RWxlbWVudDo6YXV0b2NvbXBsZXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdG9rZW4gPT0gImhv
bWUiIHx8IHRva2VuID09ICJ3b3JrIiB8fCB0b2tlbiA9PSAibW9iaWxlIiB8fCB0b2tlbiA9PSAi
ZmF4IiB8fCB0b2tlbiA9PSAicGFnZXIiOworICAgIHJldHVybiBhdXRvZmlsbERhdGEoKS5pZGxF
eHBvc2VkVmFsdWU7CiB9CiAKLWVudW0gY2xhc3MgQXV0b2ZpbGxDYXRlZ29yeSB7Ci0gICAgSW52
YWxpZCwKLSAgICBPZmYsCi0gICAgQXV0b21hdGljLAotICAgIE5vcm1hbCwKLSAgICBDb250YWN0
LAotfTsKLQotc3RhdGljIGlubGluZSBBdXRvZmlsbENhdGVnb3J5IGNhdGVnb3J5Rm9yQXV0b2Zp
bGxGaWVsZFRva2VuKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pCi17Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEhhc2hNYXA8QXRvbWljU3RyaW5nLCBBdXRvZmlsbENhdGVnb3J5Pj4gbWFw
OwotICAgIGlmIChtYXAuZ2V0KCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQo
QXRvbWljU3RyaW5nKCJvZmYiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwg
QXV0b2ZpbGxDYXRlZ29yeTo6T2ZmKTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJp
bmcoIm9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxsQ2F0
ZWdvcnk6OkF1dG9tYXRpYyk7Ci0KLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmco
Im5hbWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxDYXRl
Z29yeTo6Tm9ybWFsKTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoImhvbm9y
aWZpYy1wcmVmaXgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2Zp
bGxDYXRlZ29yeTo6Tm9ybWFsKTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmco
ImdpdmVuLW5hbWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2Zp
bGxDYXRlZ29yeTo6Tm9ybWFsKTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmco
ImFkZGl0aW9uYWwtbmFtZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBB
dXRvZmlsbENhdGVnb3J5OjpOb3JtYWwpOwotICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0
cmluZygiZmFtaWx5LW5hbWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwg
QXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsKTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNT
dHJpbmcoImhvbm9yaWZpYy1zdWZmaXgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSwgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsKTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChB
dG9taWNTdHJpbmcoIm5pY2tuYW1lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCksIEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQoQXRv
bWljU3RyaW5nKCJ1c2VybmFtZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
LCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwpOwotICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21p
Y1N0cmluZygibmV3LXBhc3N3b3JkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCksIEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQoQXRv
bWljU3RyaW5nKCJjdXJyZW50LXBhc3N3b3JkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCksIEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCk7Ci0gICAgICAgIG1hcC5nZXQoKS5h
ZGQoQXRvbWljU3RyaW5nKCJvcmdhbml6YXRpb24tdGl0bGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsKTsKLSAgICAgICAgbWFw
LmdldCgpLmFkZChBdG9taWNTdHJpbmcoIm9yZ2FuaXphdGlvbiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwpOwotICAgICAgICBt
YXAuZ2V0KCkuYWRkKEF0b21pY1N0cmluZygic3RyZWV0LWFkZHJlc3MiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsKTsKLSAgICAg
ICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoImFkZHJlc3MtbGluZTEiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsKTsKLSAg
ICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoImFkZHJlc3MtbGluZTIiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsKTsK
LSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoImFkZHJlc3MtbGluZTMiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFs
KTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoImFkZHJlc3MtbGV2ZWw0Iiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxsQ2F0ZWdvcnk6Ok5v
cm1hbCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJhZGRyZXNzLWxldmVs
MyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbENhdGVnb3J5
OjpOb3JtYWwpOwotICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0cmluZygiYWRkcmVzcy1s
ZXZlbDIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxDYXRl
Z29yeTo6Tm9ybWFsKTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoImFkZHJl
c3MtbGV2ZWwxIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxs
Q2F0ZWdvcnk6Ok5vcm1hbCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJj
b3VudHJ5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxsQ2F0
ZWdvcnk6Ok5vcm1hbCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJjb3Vu
dHJ5LW5hbWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxD
YXRlZ29yeTo6Tm9ybWFsKTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoInBv
c3RhbC1jb2RlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxs
Q2F0ZWdvcnk6Ok5vcm1hbCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJj
Yy1uYW1lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxsQ2F0
ZWdvcnk6Ok5vcm1hbCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJjYy1n
aXZlbi1uYW1lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxs
Q2F0ZWdvcnk6Ok5vcm1hbCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJj
Yy1hZGRpdGlvbmFsLW5hbWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwg
QXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsKTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNT
dHJpbmcoImNjLWZhbWlseS1uYW1lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCksIEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQoQXRv
bWljU3RyaW5nKCJjYy1udW1iZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSwgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsKTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9t
aWNTdHJpbmcoImNjLWV4cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBB
dXRvZmlsbENhdGVnb3J5OjpOb3JtYWwpOwotICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0
cmluZygiY2MtZXhwLW1vbnRoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCks
IEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWlj
U3RyaW5nKCJjYy1leHAteWVhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
LCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwpOwotICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21p
Y1N0cmluZygiY2MtY3NjIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1
dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3Ry
aW5nKCJjYy10eXBlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9m
aWxsQ2F0ZWdvcnk6Ok5vcm1hbCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5n
KCJ0cmFuc2FjdGlvbi1jdXJyZW5jeSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpLCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwpOwotICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0
b21pY1N0cmluZygidHJhbnNhY3Rpb24tYW1vdW50IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCksIEF1dG9maWxsQ2F0ZWdvcnk6Ok5vcm1hbCk7Ci0gICAgICAgIG1hcC5nZXQo
KS5hZGQoQXRvbWljU3RyaW5nKCJsYW5ndWFnZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpLCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwpOwotICAgICAgICBtYXAuZ2V0KCku
YWRkKEF0b21pY1N0cmluZygiYmRheSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpLCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwpOwotICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0
b21pY1N0cmluZygiYmRheS1kYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSwgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsKTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9t
aWNTdHJpbmcoImJkYXktbW9udGgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSwgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsKTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9t
aWNTdHJpbmcoImJkYXkteWVhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
LCBBdXRvZmlsbENhdGVnb3J5OjpOb3JtYWwpOwotICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21p
Y1N0cmluZygic2V4IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9m
aWxsQ2F0ZWdvcnk6Ok5vcm1hbCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5n
KCJ1cmwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxDYXRl
Z29yeTo6Tm9ybWFsKTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoInBob3Rv
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxsQ2F0ZWdvcnk6
Ok5vcm1hbCk7Ci0KLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoInRlbCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBBdXRvZmlsbENhdGVnb3J5OjpDb250
YWN0KTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNTdHJpbmcoInRlbC1jb3VudHJ5LWNv
ZGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxDYXRlZ29y
eTo6Q29udGFjdCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJ0ZWwtbmF0
aW9uYWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwgQXV0b2ZpbGxDYXRl
Z29yeTo6Q29udGFjdCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQoQXRvbWljU3RyaW5nKCJ0ZWwt
YXJlYS1jb2RlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxs
Q2F0ZWdvcnk6OkNvbnRhY3QpOwotICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0cmluZygi
dGVsLWxvY2FsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksIEF1dG9maWxs
Q2F0ZWdvcnk6OkNvbnRhY3QpOwotICAgICAgICBtYXAuZ2V0KCkuYWRkKEF0b21pY1N0cmluZygi
dGVsLWxvY2FsLXByZWZpeCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLCBB
dXRvZmlsbENhdGVnb3J5OjpDb250YWN0KTsKLSAgICAgICAgbWFwLmdldCgpLmFkZChBdG9taWNT
dHJpbmcoInRlbC1sb2NhbC1zdWZmaXgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSwgQXV0b2ZpbGxDYXRlZ29yeTo6Q29udGFjdCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQo
QXRvbWljU3RyaW5nKCJ0ZWwtZXh0ZW5zaW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCksIEF1dG9maWxsQ2F0ZWdvcnk6OkNvbnRhY3QpOwotICAgICAgICBtYXAuZ2V0KCku
YWRkKEF0b21pY1N0cmluZygiZW1haWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSwgQXV0b2ZpbGxDYXRlZ29yeTo6Q29udGFjdCk7Ci0gICAgICAgIG1hcC5nZXQoKS5hZGQo
QXRvbWljU3RyaW5nKCJpbXBwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCks
IEF1dG9maWxsQ2F0ZWdvcnk6OkNvbnRhY3QpOwotICAgIH0KLQotICAgIHJldHVybiBtYXAuZ2V0
KCkuZ2V0KHRva2VuKTsKLX0KLQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBtYXhUb2tlbnNGb3JB
dXRvZmlsbEZpZWxkQ2F0ZWdvcnkoQXV0b2ZpbGxDYXRlZ29yeSBjYXRlZ29yeSkKLXsKLSAgICBz
d2l0Y2ggKGNhdGVnb3J5KSB7Ci0gICAgY2FzZSBBdXRvZmlsbENhdGVnb3J5OjpJbnZhbGlkOgot
ICAgICAgICByZXR1cm4gMDsKLQotICAgIGNhc2UgQXV0b2ZpbGxDYXRlZ29yeTo6QXV0b21hdGlj
OgotICAgIGNhc2UgQXV0b2ZpbGxDYXRlZ29yeTo6T2ZmOgotICAgICAgICByZXR1cm4gMTsKLQot
ICAgIGNhc2UgQXV0b2ZpbGxDYXRlZ29yeTo6Tm9ybWFsOgotICAgICAgICByZXR1cm4gMzsKLQot
ICAgIGNhc2UgQXV0b2ZpbGxDYXRlZ29yeTo6Q29udGFjdDoKLSAgICAgICAgcmV0dXJuIDQ7Ci0g
ICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAwOwordm9pZCBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRBdXRvY29tcGxldGUoY29uc3QgU3RyaW5nJiB2YWx1ZSkK
K3sKKyAgICBzZXRBdHRyaWJ1dGUoYXV0b2NvbXBsZXRlQXR0ciwgdmFsdWUpOwogfQogCi0vLyBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9mb3Jtcy5odG1sI3Byb2Nlc3Np
bmctbW9kZWwtMwotU3RyaW5nIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmF1dG9jb21wbGV0ZSgp
IGNvbnN0CitBdXRvZmlsbE1hbnRsZSBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjphdXRvZmlsbE1h
bnRsZSgpIGNvbnN0CiB7Ci0gICAgYm9vbCB3ZWFyaW5nQXV0b2ZpbGxBbmNob3JNYW50bGUgPSBp
czxIVE1MSW5wdXRFbGVtZW50PigqdGhpcykgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4o
dGhpcyktPmlzSW5wdXRUeXBlSGlkZGVuKCk7Ci0KLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGF0
dHJpYnV0ZVZhbHVlID0gZmFzdEdldEF0dHJpYnV0ZShhdXRvY29tcGxldGVBdHRyKTsKLSAgICBT
cGFjZVNwbGl0U3RyaW5nIHRva2VucyhhdHRyaWJ1dGVWYWx1ZSwgdHJ1ZSk7Ci0gICAgaWYgKHRv
a2Vucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKHdlYXJpbmdBdXRvZmlsbEFuY2hvck1hbnRs
ZSkKLSAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICAgICAgcmV0dXJuIGZvcm0oKSA/
IGZvcm0oKS0+YXV0b2NvbXBsZXRlKCkgOiBBU0NJSUxpdGVyYWwoIm9uIik7Ci0gICAgfQotCi0g
ICAgc2l6ZV90IGN1cnJlbnRUb2tlbkluZGV4ID0gdG9rZW5zLnNpemUoKSAtIDE7Ci0gICAgY29u
c3QgYXV0byYgZmllbGRUb2tlbiA9IHRva2Vuc1tjdXJyZW50VG9rZW5JbmRleF07Ci0gICAgYXV0
byBjYXRlZ29yeSA9IGNhdGVnb3J5Rm9yQXV0b2ZpbGxGaWVsZFRva2VuKGZpZWxkVG9rZW4pOwot
ICAgIGlmIChjYXRlZ29yeSA9PSBBdXRvZmlsbENhdGVnb3J5OjpJbnZhbGlkKQotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICBpZiAodG9rZW5zLnNpemUoKSA+IG1heFRva2Vuc0ZvckF1
dG9maWxsRmllbGRDYXRlZ29yeShjYXRlZ29yeSkpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsK
LQotICAgIGlmICgoY2F0ZWdvcnkgPT0gQXV0b2ZpbGxDYXRlZ29yeTo6T2ZmIHx8IGNhdGVnb3J5
ID09IEF1dG9maWxsQ2F0ZWdvcnk6OkF1dG9tYXRpYykgJiYgd2VhcmluZ0F1dG9maWxsQW5jaG9y
TWFudGxlKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICBpZiAoY2F0ZWdvcnkgPT0g
QXV0b2ZpbGxDYXRlZ29yeTo6T2ZmKQotICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJvZmYi
KTsKLQotICAgIGlmIChjYXRlZ29yeSA9PSBBdXRvZmlsbENhdGVnb3J5OjpBdXRvbWF0aWMpCi0g
ICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm9uIik7Ci0KLSAgICBTdHJpbmcgcmVzdWx0ID0g
ZmllbGRUb2tlbjsKLSAgICBpZiAoIWN1cnJlbnRUb2tlbkluZGV4LS0pCi0gICAgICAgIHJldHVy
biByZXN1bHQ7Ci0KLSAgICBjb25zdCBhdXRvJiBjb250YWN0VG9rZW4gPSB0b2tlbnNbY3VycmVu
dFRva2VuSW5kZXhdOwotICAgIGlmIChjYXRlZ29yeSA9PSBBdXRvZmlsbENhdGVnb3J5OjpDb250
YWN0ICYmIGlzQ29udGFjdFRva2VuKGNvbnRhY3RUb2tlbikpIHsKLSAgICAgICAgcmVzdWx0ID0g
Y29udGFjdFRva2VuICsgIiAiICsgcmVzdWx0OwotICAgICAgICBpZiAoIWN1cnJlbnRUb2tlbklu
ZGV4LS0pCi0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIGNvbnN0IGF1
dG8mIG1vZGVUb2tlbiA9IHRva2Vuc1tjdXJyZW50VG9rZW5JbmRleF07Ci0gICAgaWYgKG1vZGVU
b2tlbiA9PSAic2hpcHBpbmciIHx8IG1vZGVUb2tlbiA9PSAiYmlsbGluZyIpIHsKLSAgICAgICAg
cmVzdWx0ID0gbW9kZVRva2VuICsgIiAiICsgcmVzdWx0OwotICAgICAgICBpZiAoIWN1cnJlbnRU
b2tlbkluZGV4LS0pCi0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIGlm
IChjdXJyZW50VG9rZW5JbmRleCkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgY29u
c3QgYXV0byYgc2VjdGlvblRva2VuID0gdG9rZW5zW2N1cnJlbnRUb2tlbkluZGV4XTsKLSAgICBp
ZiAoIXNlY3Rpb25Ub2tlbi5zdGFydHNXaXRoKCJzZWN0aW9uLSIpKQotICAgICAgICByZXR1cm4g
U3RyaW5nKCk7Ci0KLSAgICByZXR1cm4gc2VjdGlvblRva2VuICsgIiAiICsgcmVzdWx0OworICAg
IHJldHVybiBpczxIVE1MSW5wdXRFbGVtZW50PigqdGhpcykgJiYgZG93bmNhc3Q8SFRNTElucHV0
RWxlbWVudD4odGhpcyktPmlzSW5wdXRUeXBlSGlkZGVuKCkgPyBBdXRvZmlsbE1hbnRsZTo6QW5j
aG9yIDogQXV0b2ZpbGxNYW50bGU6OkV4cGVjdGF0aW9uOwogfQogCi12b2lkIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ6OnNldEF1dG9jb21wbGV0ZShjb25zdCBTdHJpbmcmIHZhbHVlKQorQXV0b2Zp
bGxEYXRhIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmF1dG9maWxsRGF0YSgpIGNvbnN0CiB7Ci0g
ICAgc2V0QXR0cmlidXRlKGF1dG9jb21wbGV0ZUF0dHIsIHZhbHVlKTsKKyAgICAvLyBGSVhNRTog
V2UgY291bGQgY2FjaGUgdGhlIEF1dG9maWxsRGF0YSBpZiB3ZSB3ZSBoYWQgYW4gZWZmaWNpZW50
IHdheSB0byBpbnZhbGlkYXRlIHRoZSBjYWNoZSB3aGVuCisgICAgLy8gdGhlIGF1dG9maWxsIG1h
bnRsZSBjaGFuZ2VkIChkdWUgdG8gYSB0eXBlIGNoYW5nZSBvbiBhbiA8aW5wdXQ+IGVsZW1lbnQp
IG9yIHRoZSBlbGVtZW50J3MgZm9ybQorICAgIC8vIG93bmVyJ3MgYXV0b2NvbXBsZXRlIGF0dHJp
YnV0ZSBjaGFuZ2VkIG9yIHRoZSBmb3JtIG93bmVyIGl0c2VsZiBjaGFuZ2VkLgorCisgICAgcmV0
dXJuIEF1dG9maWxsRGF0YTo6Y3JlYXRlRnJvbUhUTUxGb3JtQ29udHJvbEVsZW1lbnQoKnRoaXMp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJjb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAkocmV2aXNpb24gMTk3NjE1KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI0LDYgKzI0LDcgQEAKICNpZm5kZWYgSFRNTEZvcm1Db250cm9sRWxlbWVudF9oCiAjZGVmaW5l
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRfaAogCisjaW5jbHVkZSAiQXV0b2ZpbGwuaCIKICNpbmNs
dWRlICJGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJMYWJlbGFibGVFbGVtZW50
LmgiCiAKQEAgLTEyMCw2ICsxMjEsMTAgQEAgcHVibGljOgogICAgIFN0cmluZyBhdXRvY29tcGxl
dGUoKSBjb25zdDsKICAgICB2b2lkIHNldEF1dG9jb21wbGV0ZShjb25zdCBTdHJpbmcmKTsKIAor
ICAgIEF1dG9maWxsTWFudGxlIGF1dG9maWxsTWFudGxlKCkgY29uc3Q7CisKKyAgICBXRUJDT1JF
X0VYUE9SVCBBdXRvZmlsbERhdGEgYXV0b2ZpbGxEYXRhKCkgY29uc3Q7CisKICAgICB1c2luZyBO
b2RlOjpyZWY7CiAgICAgdXNpbmcgTm9kZTo6ZGVyZWY7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5jcHAJKHJldmlzaW9uIDE5NzYxNSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODY1LDEwICs4
NjUsMTAgQEAgdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnNldEF1dG9jb21wbGV0ZShjbwogICAgIHNl
dEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYXV0b2NvbXBsZXRlQXR0ciwgdmFsdWUp
OwogfQogCi1jb25zdCBTdHJpbmcmIEhUTUxGb3JtRWxlbWVudDo6YXV0b2NvbXBsZXRlKCkgY29u
c3QKK2NvbnN0IEF0b21pY1N0cmluZyYgSFRNTEZvcm1FbGVtZW50OjphdXRvY29tcGxldGUoKSBj
b25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IG9uKCJvbiIs
IFN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBTdHJpbmc+IG9mZigib2ZmIiwgU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gb24oIm9uIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21pY1N0cmluZz4gb2ZmKCJvZmYiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKIAogICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGZhc3RHZXRBdHRyaWJ1
dGUoYXV0b2NvbXBsZXRlQXR0ciksICJvZmYiKSA/IG9mZiA6IG9uOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCShyZXZpc2lvbiAxOTc2MTUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2
Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZEF1dG9jb21wbGV0ZSgpIGNvbnN0OwogCiAg
ICAgdm9pZCBzZXRBdXRvY29tcGxldGUoY29uc3QgQXRvbWljU3RyaW5nJik7Ci0gICAgY29uc3Qg
U3RyaW5nJiBhdXRvY29tcGxldGUoKSBjb25zdDsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIGF1
dG9jb21wbGV0ZSgpIGNvbnN0OwogCiAjaWYgRU5BQkxFKElPU19BVVRPQ09SUkVDVF9BTkRfQVVU
T0NBUElUQUxJWkUpCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBhdXRvY29ycmVjdCgpIGNvbnN0
OwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkocmV2aXNpb24gMTk3NjE1
KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2su
aCIKICNpbmNsdWRlICJBbmltYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UuaCIKKyNpbmNsdWRlICJBdXRvZmlsbC5oIgogI2luY2x1ZGUgIkJhY2tG
b3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkSW1hZ2UuaCIKQEAgLTEzNjksNiArMTM3MCwyMSBAQCB2b2lkIEludGVybmFsczo6c2Ny
b2xsRWxlbWVudFRvUmVjdChFbGVtCiAgICAgZnJhbWVWaWV3LT5zY3JvbGxFbGVtZW50VG9SZWN0
KCplbGVtZW50LCBJbnRSZWN0KHgsIHksIHcsIGgpKTsKIH0KIAorU3RyaW5nIEludGVybmFsczo6
YXV0b2ZpbGxGaWVsZE5hbWUoRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7
CisgICAgaWYgKCFlbGVtZW50KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwor
ICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGlmICghaXM8SFRNTEZvcm1Db250cm9s
RWxlbWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9OT0RFX1RZUEVfRVJS
OworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIHJldHVybiBkb3duY2FzdDxIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50PigqZWxlbWVudCkuYXV0b2ZpbGxEYXRhKCkuZmllbGROYW1lOwor
fQorCiB2b2lkIEludGVybmFsczo6cGFpbnRDb250cm9sVGludHMoRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9uIDE5NzYxNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4Myw2ICsxODMs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG93QXV0b0ZpbGxCdXR0b24oRWxlbWVudCosIGNv
bnN0IFN0cmluZyYgYXV0b0ZpbGxCdXR0b25UeXBlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBzY3JvbGxFbGVtZW50VG9SZWN0KEVsZW1lbnQqLCBsb25nIHgsIGxvbmcgeSwgbG9uZyB3LCBs
b25nIGgsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIFN0cmluZyBhdXRvZmlsbEZpZWxkTmFtZShF
bGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAgdm9pZCBwYWludENvbnRyb2xUaW50cyhF
eGNlcHRpb25Db2RlJik7CiAKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlRnJvbUxvY2F0aW9uQW5k
TGVuZ3RoKEVsZW1lbnQqIHNjb3BlLCBpbnQgcmFuZ2VMb2NhdGlvbiwgaW50IHJhbmdlTGVuZ3Ro
LCBFeGNlcHRpb25Db2RlJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CShyZXZpc2lvbiAxOTc2MTUpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw2ICsxNjIsOCBAQCBlbnVtIEF1dG9GaWxsQnV0dG9u
VHlwZSB7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRTaG93QXV0b0ZpbGxCdXR0b24o
RWxlbWVudCBpbnB1dEVsZW1lbnQsIEF1dG9GaWxsQnV0dG9uVHlwZSBhdXRvRmlsbEJ1dHRvblR5
cGUpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIHVuc2lnbmVkIGxvbmcgY291bnRNYXRjaGVzRm9y
VGV4dChET01TdHJpbmcgdGV4dCwgdW5zaWduZWQgbG9uZyBmaW5kT3B0aW9ucywgRE9NU3RyaW5n
IG1hcmtNYXRjaGVzKTsKIAorICAgIFtSYWlzZXNFeGNlcHRpb25dIERPTVN0cmluZyBhdXRvZmls
bEZpZWxkTmFtZShFbGVtZW50IGZvcm1Db250cm9sRWxlbWVudCk7CisKICAgICBbUmFpc2VzRXhj
ZXB0aW9uXSB2b2lkIHBhaW50Q29udHJvbFRpbnRzKCk7CiAKICAgICBbUmFpc2VzRXhjZXB0aW9u
XSB2b2lkIHNjcm9sbEVsZW1lbnRUb1JlY3QoRWxlbWVudCBlbGVtZW50LCBsb25nIHgsIGxvbmcg
eSwgbG9uZyB3LCBsb25nIGgpOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTk3NjI0KQorKysg
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMTYtMDMtMDUgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgcHJvY2Vzc2luZyB0aGUgYXV0b2ZpbGwgZmllbGQgbmFtZSBvdXQgb2YgZm9y
bSBjb250cm9sIGVsZW1lbnRzIHVsdGltYXRlbHkgdG8gYWlkIGlucHV0IG1ldGhvZHMKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzIzMDQxMTgwPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MDc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbjo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6QXNzaXN0ZWROb2RlSW5mb3JtYXRpb246OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL0Fzc2lzdGVkTm9kZUluZm9ybWF0aW9uLmg6CisgICAgICAgIEFkZCBBdXRvZmls
bEZpZWxkTmFtZS4gQ29udmVydCBzb21lIGNvZGVycyB0byB1c2UgZW5jb2RlRW51bS9kZWNvZGVF
bnVtIGluc3RlYWQgb2YgY2FzdGluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHRleHRJbnB1
dFRyYWl0c10pOgorICAgICAgICBNYXAgQXV0b2ZpbGxGaWVsZE5hbWVzIHRvIHRoZSBhc3NvY2lh
dGVkIFVJVGV4dENvbnRlbnRUeXBlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0QXNzaXN0ZWRO
b2RlSW5mb3JtYXRpb24pOgorICAgICAgICBFeHRyYWN0IHRoZSBBdXRvZmlsbEZpZWxkTmFtZXMg
b250byB0aGUgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24gZm9yIDxpbnB1dD4gZWxlbWVudHMgCisg
ICAgICAgIGFuZCA8dGV4dGFyZWE+IGVsZW1lbnRzLgorCiAyMDE2LTAzLTA1ICBUaW1vdGh5IEhh
dGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgdGhlIEF1dG9t
YXRpb24gcHJvdG9jb2wgY29tbWFuZHMgYnkgdHJhY2tpbmcgV2ViUGFnZVByb3h5IG9iamVjdHMK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Fzc2lzdGVkTm9kZUluZm9ybWF0
aW9uLmNwcAkocmV2aXNpb24gMTk3NjE1KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0Fzc2lz
dGVkTm9kZUluZm9ybWF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsOCArNzEsOCBAQCB2
b2lkIEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uOjplbmNvZGUoSVBDCiAgICAgZW5jb2RlciA8PCBo
YXNOZXh0Tm9kZTsKICAgICBlbmNvZGVyIDw8IGhhc1ByZXZpb3VzTm9kZTsKICAgICBlbmNvZGVy
IDw8IGlzQXV0b2NvcnJlY3Q7Ci0gICAgZW5jb2RlciA8PCAodWludDMyX3QpYXV0b2NhcGl0YWxp
emVUeXBlOwotICAgIGVuY29kZXIgPDwgKHVpbnQzMl90KWVsZW1lbnRUeXBlOworICAgIGVuY29k
ZXIuZW5jb2RlRW51bShhdXRvY2FwaXRhbGl6ZVR5cGUpOworICAgIGVuY29kZXIuZW5jb2RlRW51
bShlbGVtZW50VHlwZSk7CiAgICAgZW5jb2RlciA8PCBmb3JtQWN0aW9uOwogICAgIGVuY29kZXIg
PDwgc2VsZWN0T3B0aW9uczsKICAgICBlbmNvZGVyIDw8IHNlbGVjdGVkSW5kZXg7CkBAIC04Myw2
ICs4Myw3IEBAIHZvaWQgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb246OmVuY29kZShJUEMKICAgICBl
bmNvZGVyIDw8IHZhbHVlOwogICAgIGVuY29kZXIgPDwgdmFsdWVBc051bWJlcjsKICAgICBlbmNv
ZGVyIDw8IHRpdGxlOworICAgIGVuY29kZXIuZW5jb2RlRW51bShhdXRvZmlsbEZpZWxkTmFtZSk7
CiB9CiAKIGJvb2wgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb246OmRlY29kZShJUEM6OkFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mIHJlc3VsdCkKQEAgLTEx
MSwxMCArMTEyLDEwIEBAIGJvb2wgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb246OmRlY29kZShJUEMK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc0F1dG9jb3JyZWN0KSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSgodWludDMyX3QmKXJlc3Vs
dC5hdXRvY2FwaXRhbGl6ZVR5cGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3Vs
dC5hdXRvY2FwaXRhbGl6ZVR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKCh1aW50MzJfdCYpcmVzdWx0LmVsZW1lbnRUeXBlKSkKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuZWxlbWVudFR5cGUpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5mb3JtQWN0aW9uKSkKQEAg
LTE0Nyw2ICsxNDgsOSBAQCBib29sIEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uOjpkZWNvZGUoSVBD
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudGl0bGUpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuYXV0b2ZpbGxGaWVs
ZE5hbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KICNl
bmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0Fzc2lzdGVkTm9kZUluZm9ybWF0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Fzc2lzdGVkTm9kZUluZm9y
bWF0aW9uLmgJKHJldmlzaW9uIDE5NzYxNSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3Np
c3RlZE5vZGVJbmZvcm1hdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAj
ZGVmaW5lIEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uX2gKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29k
ZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdXRvZmlsbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
SW50UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXV0b2NhcGl0YWxpemUuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTEzMCw2ICsxMzEsNyBAQCBzdHJ1Y3QgQXNz
aXN0ZWROb2RlSW5mb3JtYXRpb24gewogICAgIFN0cmluZyB2YWx1ZTsKICAgICBkb3VibGUgdmFs
dWVBc051bWJlcjsKICAgICBTdHJpbmcgdGl0bGU7CisgICAgV2ViQ29yZTo6QXV0b2ZpbGxGaWVs
ZE5hbWUgYXV0b2ZpbGxGaWVsZE5hbWUgeyBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6Tm9u
ZSB9OwogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBBc3Npc3RlZE5vZGVJ
bmZvcm1hdGlvbiYpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0JKHJldmlzaW9uIDE5NzYxNSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0yODIyLDYgKzI4MjIsMTA2IEBAIC0gKFVJVGV4dElucHV0VHJh
aXRzICopdGV4dElucHV0VHJhaXRzCiAgICAgICAgICBbX3RyYWl0cyBzZXRLZXlib2FyZFR5cGU6
VUlLZXlib2FyZFR5cGVEZWZhdWx0XTsKICAgICB9CiAKKyNpZiBfX0lQSE9ORV9PU19WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDAwMDAKKyAgICBzd2l0Y2ggKF9hc3Npc3RlZE5vZGVJbmZvcm1h
dGlvbi5hdXRvZmlsbEZpZWxkTmFtZSkgeworICAgIGNhc2UgV2ViQ29yZTo6QXV0b2ZpbGxGaWVs
ZE5hbWU6Ok5hbWU6CisgICAgICAgIFtfdHJhaXRzIHNldFRleHRDb250ZW50VHlwZTpVSVRleHRD
b250ZW50VHlwZU5hbWVdOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkF1dG9m
aWxsRmllbGROYW1lOjpIb25vcmlmaWNQcmVmaXg6CisgICAgICAgIFtfdHJhaXRzIHNldFRleHRD
b250ZW50VHlwZTpVSVRleHRDb250ZW50VHlwZU5hbWVQcmVmaXhdOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFdlYkNvcmU6OkF1dG9maWxsRmllbGROYW1lOjpHaXZlbk5hbWU6CisgICAgICAg
IFtfdHJhaXRzIHNldFRleHRDb250ZW50VHlwZTpVSVRleHRDb250ZW50VHlwZU1pZGRsZU5hbWVd
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkF1dG9maWxsRmllbGROYW1lOjpB
ZGRpdGlvbmFsTmFtZToKKyAgICAgICAgW190cmFpdHMgc2V0VGV4dENvbnRlbnRUeXBlOlVJVGV4
dENvbnRlbnRUeXBlTWlkZGxlTmFtZV07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29y
ZTo6QXV0b2ZpbGxGaWVsZE5hbWU6OkZhbWlseU5hbWU6CisgICAgICAgIFtfdHJhaXRzIHNldFRl
eHRDb250ZW50VHlwZTpVSVRleHRDb250ZW50VHlwZUZhbWlseU5hbWVdOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdlYkNvcmU6OkF1dG9maWxsRmllbGROYW1lOjpIb25vcmlmaWNTdWZmaXg6
CisgICAgICAgIFtfdHJhaXRzIHNldFRleHRDb250ZW50VHlwZTpVSVRleHRDb250ZW50VHlwZU5h
bWVTdWZmaXhdOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkF1dG9maWxsRmll
bGROYW1lOjpOaWNrbmFtZToKKyAgICAgICAgW190cmFpdHMgc2V0VGV4dENvbnRlbnRUeXBlOlVJ
VGV4dENvbnRlbnRUeXBlTmlja25hbWVdOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNv
cmU6OkF1dG9maWxsRmllbGROYW1lOjpPcmdhbml6YXRpb25UaXRsZToKKyAgICAgICAgW190cmFp
dHMgc2V0VGV4dENvbnRlbnRUeXBlOlVJVGV4dENvbnRlbnRUeXBlSm9iVGl0bGVdOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkF1dG9maWxsRmllbGROYW1lOjpPcmdhbml6YXRp
b246CisgICAgICAgIFtfdHJhaXRzIHNldFRleHRDb250ZW50VHlwZTpVSVRleHRDb250ZW50VHlw
ZU9yZ2FuaXphdGlvbk5hbWVdOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkF1
dG9maWxsRmllbGROYW1lOjpTdHJlZXRBZGRyZXNzOgorICAgICAgICBbX3RyYWl0cyBzZXRUZXh0
Q29udGVudFR5cGU6VUlUZXh0Q29udGVudFR5cGVGdWxsU3RyZWV0QWRkcmVzc107CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6QXV0b2ZpbGxGaWVsZE5hbWU6OkFkZHJlc3NMaW5l
MToKKyAgICAgICAgW190cmFpdHMgc2V0VGV4dENvbnRlbnRUeXBlOlVJVGV4dENvbnRlbnRUeXBl
U3RyZWV0QWRkcmVzc0xpbmUxXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpB
dXRvZmlsbEZpZWxkTmFtZTo6QWRkcmVzc0xpbmUyOgorICAgICAgICBbX3RyYWl0cyBzZXRUZXh0
Q29udGVudFR5cGU6VUlUZXh0Q29udGVudFR5cGVTdHJlZXRBZGRyZXNzTGluZTJdOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkF1dG9maWxsRmllbGROYW1lOjpBZGRyZXNzTGV2
ZWwzOgorICAgICAgICBbX3RyYWl0cyBzZXRUZXh0Q29udGVudFR5cGU6VUlUZXh0Q29udGVudFR5
cGVTdWJsb2NhbGl0eV07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6QXV0b2Zp
bGxGaWVsZE5hbWU6OkFkZHJlc3NMZXZlbDI6CisgICAgICAgIFtfdHJhaXRzIHNldFRleHRDb250
ZW50VHlwZTpVSVRleHRDb250ZW50VHlwZUFkZHJlc3NDaXR5XTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6QWRkcmVzc0xldmVsMToKKyAgICAg
ICAgW190cmFpdHMgc2V0VGV4dENvbnRlbnRUeXBlOlVJVGV4dENvbnRlbnRUeXBlQWRkcmVzc1N0
YXRlXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFt
ZTo6Q291bnRyeU5hbWU6CisgICAgICAgIFtfdHJhaXRzIHNldFRleHRDb250ZW50VHlwZTpVSVRl
eHRDb250ZW50VHlwZUNvdW50cnlOYW1lXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJD
b3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6UG9zdGFsQ29kZToKKyAgICAgICAgW190cmFpdHMgc2V0
VGV4dENvbnRlbnRUeXBlOlVJVGV4dENvbnRlbnRUeXBlUG9zdGFsQ29kZV07CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgV2ViQ29yZTo6QXV0b2ZpbGxGaWVsZE5hbWU6OlRlbDoKKyAgICAgICAg
W190cmFpdHMgc2V0VGV4dENvbnRlbnRUeXBlOlVJVGV4dENvbnRlbnRUeXBlVGVsZXBob25lTnVt
YmVyXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFt
ZTo6RW1haWw6CisgICAgICAgIFtfdHJhaXRzIHNldFRleHRDb250ZW50VHlwZTpVSVRleHRDb250
ZW50VHlwZUVtYWlsQWRkcmVzc107CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6
QXV0b2ZpbGxGaWVsZE5hbWU6OlVSTDoKKyAgICAgICAgW190cmFpdHMgc2V0VGV4dENvbnRlbnRU
eXBlOlVJVGV4dENvbnRlbnRUeXBlVVJMXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJD
b3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6Tm9uZToKKyAgICBjYXNlIFdlYkNvcmU6OkF1dG9maWxs
RmllbGROYW1lOjpVc2VybmFtZToKKyAgICBjYXNlIFdlYkNvcmU6OkF1dG9maWxsRmllbGROYW1l
OjpOZXdQYXNzd29yZDoKKyAgICBjYXNlIFdlYkNvcmU6OkF1dG9maWxsRmllbGROYW1lOjpDdXJy
ZW50UGFzc3dvcmQ6CisgICAgY2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6QWRkcmVz
c0xpbmUzOgorICAgIGNhc2UgV2ViQ29yZTo6QXV0b2ZpbGxGaWVsZE5hbWU6OkFkZHJlc3NMZXZl
bDQ6CisgICAgY2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6Q291bnRyeToKKyAgICBj
YXNlIFdlYkNvcmU6OkF1dG9maWxsRmllbGROYW1lOjpDY05hbWU6CisgICAgY2FzZSBXZWJDb3Jl
OjpBdXRvZmlsbEZpZWxkTmFtZTo6Q2NHaXZlbk5hbWU6CisgICAgY2FzZSBXZWJDb3JlOjpBdXRv
ZmlsbEZpZWxkTmFtZTo6Q2NBZGRpdGlvbmFsTmFtZToKKyAgICBjYXNlIFdlYkNvcmU6OkF1dG9m
aWxsRmllbGROYW1lOjpDY0ZhbWlseU5hbWU6CisgICAgY2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZp
ZWxkTmFtZTo6Q2NOdW1iZXI6CisgICAgY2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6
Q2NFeHA6CisgICAgY2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6Q2NFeHBNb250aDoK
KyAgICBjYXNlIFdlYkNvcmU6OkF1dG9maWxsRmllbGROYW1lOjpDY0V4cFllYXI6CisgICAgY2Fz
ZSBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6Q2NDc2M6CisgICAgY2FzZSBXZWJDb3JlOjpB
dXRvZmlsbEZpZWxkTmFtZTo6Q2NUeXBlOgorICAgIGNhc2UgV2ViQ29yZTo6QXV0b2ZpbGxGaWVs
ZE5hbWU6OlRyYW5zYWN0aW9uQ3VycmVuY3k6CisgICAgY2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZp
ZWxkTmFtZTo6VHJhbnNhY3Rpb25BbW91bnQ6CisgICAgY2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZp
ZWxkTmFtZTo6TGFuZ3VhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6
QmRheToKKyAgICBjYXNlIFdlYkNvcmU6OkF1dG9maWxsRmllbGROYW1lOjpCZGF5RGF5OgorICAg
IGNhc2UgV2ViQ29yZTo6QXV0b2ZpbGxGaWVsZE5hbWU6OkJkYXlNb250aDoKKyAgICBjYXNlIFdl
YkNvcmU6OkF1dG9maWxsRmllbGROYW1lOjpCZGF5WWVhcjoKKyAgICBjYXNlIFdlYkNvcmU6OkF1
dG9maWxsRmllbGROYW1lOjpTZXg6CisgICAgY2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFt
ZTo6UGhvdG86CisgICAgY2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6VGVsQ291bnRy
eUNvZGU6CisgICAgY2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6VGVsTmF0aW9uYWw6
CisgICAgY2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6VGVsQXJlYUNvZGU6CisgICAg
Y2FzZSBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6VGVsTG9jYWw6CisgICAgY2FzZSBXZWJD
b3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6VGVsTG9jYWxQcmVmaXg6CisgICAgY2FzZSBXZWJDb3Jl
OjpBdXRvZmlsbEZpZWxkTmFtZTo6VGVsTG9jYWxTdWZmaXg6CisgICAgY2FzZSBXZWJDb3JlOjpB
dXRvZmlsbEZpZWxkTmFtZTo6VGVsRXh0ZW5zaW9uOgorICAgIGNhc2UgV2ViQ29yZTo6QXV0b2Zp
bGxGaWVsZE5hbWU6OkltcHA6CisgICAgICAgIGJyZWFrOworICAgIH07CisjZW5kaWYKKwogICAg
IHJldHVybiBfdHJhaXRzLmdldCgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCShyZXZpc2lvbiAxOTc2MTUp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0J
KHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbXBvcnQgIldlYlBhZ2VQcm94eU1l
c3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAjaW1wb3J0IDxDb3JlVGV4dC9DVEZv
bnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXV0b2ZpbGwuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ2hy
b21lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RhdGFEZXRlY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNv
cmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KQEAgLTI0MjUsNiArMjQyNiw3IEBAIHZvaWQg
V2ViUGFnZTo6Z2V0QXNzaXN0ZWROb2RlSW5mb3JtYXRpb24KICAgICAgICAgaW5mb3JtYXRpb24u
ZWxlbWVudFR5cGUgPSBJbnB1dFR5cGU6OlRleHRBcmVhOwogICAgICAgICBpbmZvcm1hdGlvbi5p
c1JlYWRPbmx5ID0gZWxlbWVudC5pc1JlYWRPbmx5KCk7CiAgICAgICAgIGluZm9ybWF0aW9uLnZh
bHVlID0gZWxlbWVudC52YWx1ZSgpOworICAgICAgICBpbmZvcm1hdGlvbi5hdXRvZmlsbEZpZWxk
TmFtZSA9IFdlYkNvcmU6OnRvQXV0b2ZpbGxGaWVsZE5hbWUoZWxlbWVudC5hdXRvZmlsbERhdGEo
KS5maWVsZE5hbWUpOwogICAgIH0gZWxzZSBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKm1fYXNz
aXN0ZWROb2RlKSkgewogICAgICAgICBIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50ID0gZG93bmNh
c3Q8SFRNTElucHV0RWxlbWVudD4oKm1fYXNzaXN0ZWROb2RlKTsKICAgICAgICAgSFRNTEZvcm1F
bGVtZW50KiBmb3JtID0gZWxlbWVudC5mb3JtKCk7CkBAIC0yNDcyLDYgKzI0NzQsNyBAQCB2b2lk
IFdlYlBhZ2U6OmdldEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uCiAgICAgICAgIGluZm9ybWF0aW9u
LnZhbHVlID0gZWxlbWVudC52YWx1ZSgpOwogICAgICAgICBpbmZvcm1hdGlvbi52YWx1ZUFzTnVt
YmVyID0gZWxlbWVudC52YWx1ZUFzTnVtYmVyKCk7CiAgICAgICAgIGluZm9ybWF0aW9uLnRpdGxl
ID0gZWxlbWVudC50aXRsZSgpOworICAgICAgICBpbmZvcm1hdGlvbi5hdXRvZmlsbEZpZWxkTmFt
ZSA9IFdlYkNvcmU6OnRvQXV0b2ZpbGxGaWVsZE5hbWUoZWxlbWVudC5hdXRvZmlsbERhdGEoKS5m
aWVsZE5hbWUpOwogICAgIH0gZWxzZSBpZiAobV9hc3Npc3RlZE5vZGUtPmhhc0VkaXRhYmxlU3R5
bGUoKSkgewogICAgICAgICBpbmZvcm1hdGlvbi5lbGVtZW50VHlwZSA9IElucHV0VHlwZTo6Q29u
dGVudEVkaXRhYmxlOwogICAgICAgICBpbmZvcm1hdGlvbi5pc0F1dG9jb3JyZWN0ID0gdHJ1ZTsg
ICAvLyBGSVhNRTogU2hvdWxkIHdlIGxvb2sgYXQgdGhlIGF0dHJpYnV0ZT8KSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE5NzYxNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDE2LTAzLTA1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHByb2Nlc3NpbmcgdGhlIGF1dG9maWxsIGZpZWxk
IG5hbWUgb3V0IG9mIGZvcm0gY29udHJvbCBlbGVtZW50cyB1bHRpbWF0ZWx5IHRvIGFpZCBpbnB1
dCBtZXRob2RzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMzA0MTE4MD4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTA3OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9hdXRvY29t
cGxldGUtdG9rZW5zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2F1dG9jb21w
bGV0ZS10b2tlbnMuaHRtbDoKKyAgICAgICAgVXBkYXRlIHRlc3QgdG8gYWxzbyB0ZXN0IGZpZWxk
IG5hbWVzLCBhcyB0aGV5IGFyZSBub3cgZXhwb3NlZCB2aWEgaW50ZXJuYWxzLgorCiAyMDE2LTAz
LTA0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBiYXNp
YyBzdXBwb3J0IGZvciBhdHRyaWJ1dGVDaGFuZ2VkIGxpZmVjeWNsZSBjYWxsYmFjawpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hdXRvY29tcGxldGUtdG9rZW5zLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2F1dG9jb21wbGV0ZS10b2tlbnMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxOTc2MTUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2F1dG9jb21wbGV0ZS10b2tlbnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01LDIw
MiArNSwzOTUgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogCiBW
YWxpZCBrZXl3b3JkczoKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJuYW1lIgorUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAibmFtZSIKIFBBU1Mg
aW5wdXQuYXV0b2NvbXBsZXRlIGlzICJob25vcmlmaWMtcHJlZml4IgorUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAiaG9ub3JpZmljLXByZWZpeCIKIFBB
U1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJnaXZlbi1uYW1lIgorUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAiZ2l2ZW4tbmFtZSIKIFBBU1MgaW5wdXQu
YXV0b2NvbXBsZXRlIGlzICJhZGRpdGlvbmFsLW5hbWUiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMu
YXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJhZGRpdGlvbmFsLW5hbWUiCiBQQVNTIGlucHV0
LmF1dG9jb21wbGV0ZSBpcyAiZmFtaWx5LW5hbWUiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0
b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJmYW1pbHktbmFtZSIKIFBBU1MgaW5wdXQuYXV0b2Nv
bXBsZXRlIGlzICJob25vcmlmaWMtc3VmZml4IgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9m
aWxsRmllbGROYW1lKGlucHV0KSBpcyAiaG9ub3JpZmljLXN1ZmZpeCIKIFBBU1MgaW5wdXQuYXV0
b2NvbXBsZXRlIGlzICJuaWNrbmFtZSIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZp
ZWxkTmFtZShpbnB1dCkgaXMgIm5pY2tuYW1lIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMg
Im9yZ2FuaXphdGlvbi10aXRsZSIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxk
TmFtZShpbnB1dCkgaXMgIm9yZ2FuaXphdGlvbi10aXRsZSIKIFBBU1MgaW5wdXQuYXV0b2NvbXBs
ZXRlIGlzICJ1c2VybmFtZSIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFt
ZShpbnB1dCkgaXMgInVzZXJuYW1lIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgIm5ldy1w
YXNzd29yZCIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkg
aXMgIm5ldy1wYXNzd29yZCIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJjdXJyZW50LXBh
c3N3b3JkIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBp
cyAiY3VycmVudC1wYXNzd29yZCIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJvcmdhbml6
YXRpb24iCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlz
ICJvcmdhbml6YXRpb24iCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAic3RyZWV0LWFkZHJl
c3MiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJz
dHJlZXQtYWRkcmVzcyIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJhZGRyZXNzLWxpbmUx
IgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAiYWRk
cmVzcy1saW5lMSIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJhZGRyZXNzLWxpbmUyIgor
UEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAiYWRkcmVz
cy1saW5lMiIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJhZGRyZXNzLWxpbmUzIgorUEFT
UyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAiYWRkcmVzcy1s
aW5lMyIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJhZGRyZXNzLWxldmVsNCIKK1BBU1Mg
d2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImFkZHJlc3MtbGV2
ZWw0IgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgImFkZHJlc3MtbGV2ZWwzIgorUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAiYWRkcmVzcy1sZXZl
bDMiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiYWRkcmVzcy1sZXZlbDIiCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJhZGRyZXNzLWxldmVs
MiIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJhZGRyZXNzLWxldmVsMSIKK1BBU1Mgd2lu
ZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImFkZHJlc3MtbGV2ZWwx
IgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgImNvdW50cnkiCitQQVNTIHdpbmRvdy5pbnRl
cm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJjb3VudHJ5IgogUEFTUyBpbnB1dC5h
dXRvY29tcGxldGUgaXMgImNvdW50cnktbmFtZSIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRv
ZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImNvdW50cnktbmFtZSIKIFBBU1MgaW5wdXQuYXV0b2Nv
bXBsZXRlIGlzICJwb3N0YWwtY29kZSIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZp
ZWxkTmFtZShpbnB1dCkgaXMgInBvc3RhbC1jb2RlIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUg
aXMgImNjLW5hbWUiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5w
dXQpIGlzICJjYy1uYW1lIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgImNjLWdpdmVuLW5h
bWUiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJj
Yy1naXZlbi1uYW1lIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgImNjLWFkZGl0aW9uYWwt
bmFtZSIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMg
ImNjLWFkZGl0aW9uYWwtbmFtZSIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJjYy1mYW1p
bHktbmFtZSIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkg
aXMgImNjLWZhbWlseS1uYW1lIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgImNjLW51bWJl
ciIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImNj
LW51bWJlciIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJjYy1leHAiCitQQVNTIHdpbmRv
dy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJjYy1leHAiCiBQQVNTIGlu
cHV0LmF1dG9jb21wbGV0ZSBpcyAiY2MtZXhwLW1vbnRoIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxz
LmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAiY2MtZXhwLW1vbnRoIgogUEFTUyBpbnB1dC5h
dXRvY29tcGxldGUgaXMgImNjLWV4cC15ZWFyIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9m
aWxsRmllbGROYW1lKGlucHV0KSBpcyAiY2MtZXhwLXllYXIiCiBQQVNTIGlucHV0LmF1dG9jb21w
bGV0ZSBpcyAiY2MtY3NjIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1l
KGlucHV0KSBpcyAiY2MtY3NjIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgImNjLXR5cGUi
CitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJjYy10
eXBlIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInRyYW5zYWN0aW9uLWN1cnJlbmN5Igor
UEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidHJhbnNh
Y3Rpb24tY3VycmVuY3kiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAidHJhbnNhY3Rpb24t
YW1vdW50IgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBp
cyAidHJhbnNhY3Rpb24tYW1vdW50IgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgImxhbmd1
YWdlIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAi
bGFuZ3VhZ2UiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiYmRheSIKK1BBU1Mgd2luZG93
LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImJkYXkiCiBQQVNTIGlucHV0
LmF1dG9jb21wbGV0ZSBpcyAiYmRheS1kYXkiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2Zp
bGxGaWVsZE5hbWUoaW5wdXQpIGlzICJiZGF5LWRheSIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRl
IGlzICJiZGF5LW1vbnRoIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1l
KGlucHV0KSBpcyAiYmRheS1tb250aCIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJiZGF5
LXllYXIiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlz
ICJiZGF5LXllYXIiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAic2V4IgorUEFTUyB3aW5k
b3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAic2V4IgogUEFTUyBpbnB1
dC5hdXRvY29tcGxldGUgaXMgInVybCIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZp
ZWxkTmFtZShpbnB1dCkgaXMgInVybCIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJwaG90
byIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgInBo
b3RvIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInRlbCIKK1BBU1Mgd2luZG93LmludGVy
bmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgInRlbCIKIFBBU1MgaW5wdXQuYXV0b2Nv
bXBsZXRlIGlzICJ0ZWwtY291bnRyeS1jb2RlIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9m
aWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsLWNvdW50cnktY29kZSIKIFBBU1MgaW5wdXQuYXV0
b2NvbXBsZXRlIGlzICJ0ZWwtbmF0aW9uYWwiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2Zp
bGxGaWVsZE5hbWUoaW5wdXQpIGlzICJ0ZWwtbmF0aW9uYWwiCiBQQVNTIGlucHV0LmF1dG9jb21w
bGV0ZSBpcyAidGVsLWFyZWEtY29kZSIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZp
ZWxkTmFtZShpbnB1dCkgaXMgInRlbC1hcmVhLWNvZGUiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0
ZSBpcyAidGVsLWxvY2FsIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1l
KGlucHV0KSBpcyAidGVsLWxvY2FsIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInRlbC1s
b2NhbC1wcmVmaXgiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5w
dXQpIGlzICJ0ZWwtbG9jYWwtcHJlZml4IgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInRl
bC1sb2NhbC1zdWZmaXgiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUo
aW5wdXQpIGlzICJ0ZWwtbG9jYWwtc3VmZml4IgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMg
InRlbC1leHRlbnNpb24iCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUo
aW5wdXQpIGlzICJ0ZWwtZXh0ZW5zaW9uIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgImVt
YWlsIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAi
ZW1haWwiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiaW1wcCIKK1BBU1Mgd2luZG93Lmlu
dGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImltcHAiCiAKIENvbnRhY3Qgc2Nv
cGU6CiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiaG9tZSB0ZWwiCitQQVNTIHdpbmRvdy5p
bnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJ0ZWwiCiBQQVNTIGlucHV0LmF1
dG9jb21wbGV0ZSBpcyAiaG9tZSB0ZWwtY291bnRyeS1jb2RlIgorUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsLWNvdW50cnktY29kZSIKIFBBU1Mg
aW5wdXQuYXV0b2NvbXBsZXRlIGlzICJob21lIHRlbC1uYXRpb25hbCIKK1BBU1Mgd2luZG93Lmlu
dGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgInRlbC1uYXRpb25hbCIKIFBBU1Mg
aW5wdXQuYXV0b2NvbXBsZXRlIGlzICJob21lIHRlbC1hcmVhLWNvZGUiCitQQVNTIHdpbmRvdy5p
bnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJ0ZWwtYXJlYS1jb2RlIgogUEFT
UyBpbnB1dC5hdXRvY29tcGxldGUgaXMgImhvbWUgdGVsLWxvY2FsIgorUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsLWxvY2FsIgogUEFTUyBpbnB1
dC5hdXRvY29tcGxldGUgaXMgImhvbWUgdGVsLWxvY2FsLXByZWZpeCIKK1BBU1Mgd2luZG93Lmlu
dGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgInRlbC1sb2NhbC1wcmVmaXgiCiBQ
QVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiaG9tZSB0ZWwtbG9jYWwtc3VmZml4IgorUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsLWxvY2FsLXN1
ZmZpeCIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJob21lIHRlbC1leHRlbnNpb24iCitQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJ0ZWwtZXh0
ZW5zaW9uIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgImhvbWUgZW1haWwiCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJlbWFpbCIKIFBBU1Mg
aW5wdXQuYXV0b2NvbXBsZXRlIGlzICJob21lIGltcHAiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMu
YXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJpbXBwIgogUEFTUyBpbnB1dC5hdXRvY29tcGxl
dGUgaXMgIndvcmsgdGVsIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1l
KGlucHV0KSBpcyAidGVsIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgIndvcmsgdGVsLWNv
dW50cnktY29kZSIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1
dCkgaXMgInRlbC1jb3VudHJ5LWNvZGUiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAid29y
ayB0ZWwtbmF0aW9uYWwiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUo
aW5wdXQpIGlzICJ0ZWwtbmF0aW9uYWwiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAid29y
ayB0ZWwtYXJlYS1jb2RlIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1l
KGlucHV0KSBpcyAidGVsLWFyZWEtY29kZSIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJ3
b3JrIHRlbC1sb2NhbCIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShp
bnB1dCkgaXMgInRlbC1sb2NhbCIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJ3b3JrIHRl
bC1sb2NhbC1wcmVmaXgiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUo
aW5wdXQpIGlzICJ0ZWwtbG9jYWwtcHJlZml4IgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMg
IndvcmsgdGVsLWxvY2FsLXN1ZmZpeCIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZp
ZWxkTmFtZShpbnB1dCkgaXMgInRlbC1sb2NhbC1zdWZmaXgiCiBQQVNTIGlucHV0LmF1dG9jb21w
bGV0ZSBpcyAid29yayB0ZWwtZXh0ZW5zaW9uIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9m
aWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsLWV4dGVuc2lvbiIKIFBBU1MgaW5wdXQuYXV0b2Nv
bXBsZXRlIGlzICJ3b3JrIGVtYWlsIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmll
bGROYW1lKGlucHV0KSBpcyAiZW1haWwiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAid29y
ayBpbXBwIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBp
cyAiaW1wcCIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJtb2JpbGUgdGVsIgorUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsIgogUEFTUyBp
bnB1dC5hdXRvY29tcGxldGUgaXMgIm1vYmlsZSB0ZWwtY291bnRyeS1jb2RlIgorUEFTUyB3aW5k
b3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsLWNvdW50cnktY29k
ZSIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJtb2JpbGUgdGVsLW5hdGlvbmFsIgorUEFT
UyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsLW5hdGlv
bmFsIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgIm1vYmlsZSB0ZWwtYXJlYS1jb2RlIgor
UEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsLWFy
ZWEtY29kZSIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJtb2JpbGUgdGVsLWxvY2FsIgor
UEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsLWxv
Y2FsIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgIm1vYmlsZSB0ZWwtbG9jYWwtcHJlZml4
IgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVs
LWxvY2FsLXByZWZpeCIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJtb2JpbGUgdGVsLWxv
Y2FsLXN1ZmZpeCIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1
dCkgaXMgInRlbC1sb2NhbC1zdWZmaXgiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAibW9i
aWxlIHRlbC1leHRlbnNpb24iCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5h
bWUoaW5wdXQpIGlzICJ0ZWwtZXh0ZW5zaW9uIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMg
Im1vYmlsZSBlbWFpbCIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShp
bnB1dCkgaXMgImVtYWlsIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgIm1vYmlsZSBpbXBw
IgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAiaW1w
cCIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJmYXggdGVsIgorUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsIgogUEFTUyBpbnB1dC5hdXRv
Y29tcGxldGUgaXMgImZheCB0ZWwtY291bnRyeS1jb2RlIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxz
LmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsLWNvdW50cnktY29kZSIKIFBBU1MgaW5w
dXQuYXV0b2NvbXBsZXRlIGlzICJmYXggdGVsLW5hdGlvbmFsIgorUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsLW5hdGlvbmFsIgogUEFTUyBpbnB1
dC5hdXRvY29tcGxldGUgaXMgImZheCB0ZWwtYXJlYS1jb2RlIgorUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsLWFyZWEtY29kZSIKIFBBU1MgaW5w
dXQuYXV0b2NvbXBsZXRlIGlzICJmYXggdGVsLWxvY2FsIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxz
LmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsLWxvY2FsIgogUEFTUyBpbnB1dC5hdXRv
Y29tcGxldGUgaXMgImZheCB0ZWwtbG9jYWwtcHJlZml4IgorUEFTUyB3aW5kb3cuaW50ZXJuYWxz
LmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsLWxvY2FsLXByZWZpeCIKIFBBU1MgaW5w
dXQuYXV0b2NvbXBsZXRlIGlzICJmYXggdGVsLWxvY2FsLXN1ZmZpeCIKK1BBU1Mgd2luZG93Lmlu
dGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgInRlbC1sb2NhbC1zdWZmaXgiCiBQ
QVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiZmF4IHRlbC1leHRlbnNpb24iCitQQVNTIHdpbmRv
dy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJ0ZWwtZXh0ZW5zaW9uIgog
UEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgImZheCBlbWFpbCIKK1BBU1Mgd2luZG93LmludGVy
bmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImVtYWlsIgogUEFTUyBpbnB1dC5hdXRv
Y29tcGxldGUgaXMgImZheCBpbXBwIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmll
bGROYW1lKGlucHV0KSBpcyAiaW1wcCIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJwYWdl
ciB0ZWwiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlz
ICJ0ZWwiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAicGFnZXIgdGVsLWNvdW50cnktY29k
ZSIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgInRl
bC1jb3VudHJ5LWNvZGUiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAicGFnZXIgdGVsLW5h
dGlvbmFsIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBp
cyAidGVsLW5hdGlvbmFsIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInBhZ2VyIHRlbC1h
cmVhLWNvZGUiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQp
IGlzICJ0ZWwtYXJlYS1jb2RlIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInBhZ2VyIHRl
bC1sb2NhbCIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkg
aXMgInRlbC1sb2NhbCIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJwYWdlciB0ZWwtbG9j
YWwtcHJlZml4IgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0
KSBpcyAidGVsLWxvY2FsLXByZWZpeCIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJwYWdl
ciB0ZWwtbG9jYWwtc3VmZml4IgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGRO
YW1lKGlucHV0KSBpcyAidGVsLWxvY2FsLXN1ZmZpeCIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRl
IGlzICJwYWdlciB0ZWwtZXh0ZW5zaW9uIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxs
RmllbGROYW1lKGlucHV0KSBpcyAidGVsLWV4dGVuc2lvbiIKIFBBU1MgaW5wdXQuYXV0b2NvbXBs
ZXRlIGlzICJwYWdlciBlbWFpbCIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxk
TmFtZShpbnB1dCkgaXMgImVtYWlsIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInBhZ2Vy
IGltcHAiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlz
ICJpbXBwIgogCiBNb2RlOgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInNoaXBwaW5nIHN0
cmVldC1hZGRyZXNzIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlu
cHV0KSBpcyAic3RyZWV0LWFkZHJlc3MiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAic2hp
cHBpbmcgYWRkcmVzcy1saW5lMSIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxk
TmFtZShpbnB1dCkgaXMgImFkZHJlc3MtbGluZTEiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBp
cyAic2hpcHBpbmcgYWRkcmVzcy1saW5lMiIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmls
bEZpZWxkTmFtZShpbnB1dCkgaXMgImFkZHJlc3MtbGluZTIiCiBQQVNTIGlucHV0LmF1dG9jb21w
bGV0ZSBpcyAic2hpcHBpbmcgYWRkcmVzcy1saW5lMyIKK1BBU1Mgd2luZG93LmludGVybmFscy5h
dXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImFkZHJlc3MtbGluZTMiCiBQQVNTIGlucHV0LmF1
dG9jb21wbGV0ZSBpcyAic2hpcHBpbmcgYWRkcmVzcy1sZXZlbDQiCitQQVNTIHdpbmRvdy5pbnRl
cm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJhZGRyZXNzLWxldmVsNCIKIFBBU1Mg
aW5wdXQuYXV0b2NvbXBsZXRlIGlzICJzaGlwcGluZyBhZGRyZXNzLWxldmVsMyIKK1BBU1Mgd2lu
ZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImFkZHJlc3MtbGV2ZWwz
IgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInNoaXBwaW5nIGFkZHJlc3MtbGV2ZWwyIgor
UEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAiYWRkcmVz
cy1sZXZlbDIiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAic2hpcHBpbmcgYWRkcmVzcy1s
ZXZlbDEiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlz
ICJhZGRyZXNzLWxldmVsMSIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJzaGlwcGluZyBj
b3VudHJ5IgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBp
cyAiY291bnRyeSIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJzaGlwcGluZyBjb3VudHJ5
LW5hbWUiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlz
ICJjb3VudHJ5LW5hbWUiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAic2hpcHBpbmcgcG9z
dGFsLWNvZGUiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQp
IGlzICJwb3N0YWwtY29kZSIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJiaWxsaW5nIHN0
cmVldC1hZGRyZXNzIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlu
cHV0KSBpcyAic3RyZWV0LWFkZHJlc3MiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiYmls
bGluZyBhZGRyZXNzLWxpbmUxIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGRO
YW1lKGlucHV0KSBpcyAiYWRkcmVzcy1saW5lMSIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlz
ICJiaWxsaW5nIGFkZHJlc3MtbGluZTIiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxG
aWVsZE5hbWUoaW5wdXQpIGlzICJhZGRyZXNzLWxpbmUyIgogUEFTUyBpbnB1dC5hdXRvY29tcGxl
dGUgaXMgImJpbGxpbmcgYWRkcmVzcy1saW5lMyIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRv
ZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImFkZHJlc3MtbGluZTMiCiBQQVNTIGlucHV0LmF1dG9j
b21wbGV0ZSBpcyAiYmlsbGluZyBhZGRyZXNzLWxldmVsNCIKK1BBU1Mgd2luZG93LmludGVybmFs
cy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImFkZHJlc3MtbGV2ZWw0IgogUEFTUyBpbnB1
dC5hdXRvY29tcGxldGUgaXMgImJpbGxpbmcgYWRkcmVzcy1sZXZlbDMiCitQQVNTIHdpbmRvdy5p
bnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJhZGRyZXNzLWxldmVsMyIKIFBB
U1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJiaWxsaW5nIGFkZHJlc3MtbGV2ZWwyIgorUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAiYWRkcmVzcy1sZXZl
bDIiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiYmlsbGluZyBhZGRyZXNzLWxldmVsMSIK
K1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImFkZHJl
c3MtbGV2ZWwxIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgImJpbGxpbmcgY291bnRyeSIK
K1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImNvdW50
cnkiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiYmlsbGluZyBjb3VudHJ5LW5hbWUiCitQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJjb3VudHJ5
LW5hbWUiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiYmlsbGluZyBwb3N0YWwtY29kZSIK
K1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgInBvc3Rh
bC1jb2RlIgogCiBTZWN0aW9uOgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInNlY3Rpb24t
cGFyZW50IG5hbWUiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5w
dXQpIGlzICJuYW1lIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInNlY3Rpb24tcGFyZW50
IGhvbm9yaWZpYy1wcmVmaXgiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5h
bWUoaW5wdXQpIGlzICJob25vcmlmaWMtcHJlZml4IgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUg
aXMgInNlY3Rpb24tcGFyZW50IGdpdmVuLW5hbWUiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0
b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJnaXZlbi1uYW1lIgogUEFTUyBpbnB1dC5hdXRvY29t
cGxldGUgaXMgInNlY3Rpb24tcGFyZW50IGFkZGl0aW9uYWwtbmFtZSIKK1BBU1Mgd2luZG93Lmlu
dGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImFkZGl0aW9uYWwtbmFtZSIKIFBB
U1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJzZWN0aW9uLXBhcmVudCBmYW1pbHktbmFtZSIKK1BB
U1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImZhbWlseS1u
YW1lIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInNlY3Rpb24tcGFyZW50IGhvbm9yaWZp
Yy1zdWZmaXgiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQp
IGlzICJob25vcmlmaWMtc3VmZml4IgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInNlY3Rp
b24tcGFyZW50IG5pY2tuYW1lIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGRO
YW1lKGlucHV0KSBpcyAibmlja25hbWUiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAic2Vj
dGlvbi1wYXJlbnQgb3JnYW5pemF0aW9uLXRpdGxlIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1
dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAib3JnYW5pemF0aW9uLXRpdGxlIgogUEFTUyBpbnB1
dC5hdXRvY29tcGxldGUgaXMgInNlY3Rpb24tcGFyZW50IHVzZXJuYW1lIgorUEFTUyB3aW5kb3cu
aW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidXNlcm5hbWUiCiBQQVNTIGlu
cHV0LmF1dG9jb21wbGV0ZSBpcyAic2VjdGlvbi1wYXJlbnQgbmV3LXBhc3N3b3JkIgorUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAibmV3LXBhc3N3b3Jk
IgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInNlY3Rpb24tcGFyZW50IGN1cnJlbnQtcGFz
c3dvcmQiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlz
ICJjdXJyZW50LXBhc3N3b3JkIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInNlY3Rpb24t
cGFyZW50IG9yZ2FuaXphdGlvbiIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxk
TmFtZShpbnB1dCkgaXMgIm9yZ2FuaXphdGlvbiIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlz
ICJzZWN0aW9uLXBhcmVudCBzdHJlZXQtYWRkcmVzcyIKK1BBU1Mgd2luZG93LmludGVybmFscy5h
dXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgInN0cmVldC1hZGRyZXNzIgogUEFTUyBpbnB1dC5h
dXRvY29tcGxldGUgaXMgInNlY3Rpb24tcGFyZW50IGFkZHJlc3MtbGluZTEiCitQQVNTIHdpbmRv
dy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJhZGRyZXNzLWxpbmUxIgog
UEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInNlY3Rpb24tcGFyZW50IGFkZHJlc3MtbGluZTIi
CitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJhZGRy
ZXNzLWxpbmUyIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInNlY3Rpb24tcGFyZW50IGFk
ZHJlc3MtbGluZTMiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5w
dXQpIGlzICJhZGRyZXNzLWxpbmUzIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInNlY3Rp
b24tcGFyZW50IGFkZHJlc3MtbGV2ZWw0IgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxs
RmllbGROYW1lKGlucHV0KSBpcyAiYWRkcmVzcy1sZXZlbDQiCiBQQVNTIGlucHV0LmF1dG9jb21w
bGV0ZSBpcyAic2VjdGlvbi1wYXJlbnQgYWRkcmVzcy1sZXZlbDMiCitQQVNTIHdpbmRvdy5pbnRl
cm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJhZGRyZXNzLWxldmVsMyIKIFBBU1Mg
aW5wdXQuYXV0b2NvbXBsZXRlIGlzICJzZWN0aW9uLXBhcmVudCBhZGRyZXNzLWxldmVsMiIKK1BB
U1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImFkZHJlc3Mt
bGV2ZWwyIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInNlY3Rpb24tcGFyZW50IGFkZHJl
c3MtbGV2ZWwxIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0
KSBpcyAiYWRkcmVzcy1sZXZlbDEiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAic2VjdGlv
bi1wYXJlbnQgY291bnRyeSIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFt
ZShpbnB1dCkgaXMgImNvdW50cnkiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAic2VjdGlv
bi1wYXJlbnQgY291bnRyeS1uYW1lIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmll
bGROYW1lKGlucHV0KSBpcyAiY291bnRyeS1uYW1lIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUg
aXMgInNlY3Rpb24tcGFyZW50IHBvc3RhbC1jb2RlIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1
dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAicG9zdGFsLWNvZGUiCiBQQVNTIGlucHV0LmF1dG9j
b21wbGV0ZSBpcyAic2VjdGlvbi1wYXJlbnQgY2MtbmFtZSIKK1BBU1Mgd2luZG93LmludGVybmFs
cy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImNjLW5hbWUiCiBQQVNTIGlucHV0LmF1dG9j
b21wbGV0ZSBpcyAic2VjdGlvbi1wYXJlbnQgY2MtZ2l2ZW4tbmFtZSIKK1BBU1Mgd2luZG93Lmlu
dGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImNjLWdpdmVuLW5hbWUiCiBQQVNT
IGlucHV0LmF1dG9jb21wbGV0ZSBpcyAic2VjdGlvbi1wYXJlbnQgY2MtYWRkaXRpb25hbC1uYW1l
IgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAiY2Mt
YWRkaXRpb25hbC1uYW1lIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInNlY3Rpb24tcGFy
ZW50IGNjLWZhbWlseS1uYW1lIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGRO
YW1lKGlucHV0KSBpcyAiY2MtZmFtaWx5LW5hbWUiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBp
cyAic2VjdGlvbi1wYXJlbnQgY2MtbnVtYmVyIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9m
aWxsRmllbGROYW1lKGlucHV0KSBpcyAiY2MtbnVtYmVyIgogUEFTUyBpbnB1dC5hdXRvY29tcGxl
dGUgaXMgInNlY3Rpb24tcGFyZW50IGNjLWV4cCIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRv
ZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImNjLWV4cCIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRl
IGlzICJzZWN0aW9uLXBhcmVudCBjYy1leHAtbW9udGgiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMu
YXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJjYy1leHAtbW9udGgiCiBQQVNTIGlucHV0LmF1
dG9jb21wbGV0ZSBpcyAic2VjdGlvbi1wYXJlbnQgY2MtZXhwLXllYXIiCitQQVNTIHdpbmRvdy5p
bnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJjYy1leHAteWVhciIKIFBBU1Mg
aW5wdXQuYXV0b2NvbXBsZXRlIGlzICJzZWN0aW9uLXBhcmVudCBjYy1jc2MiCitQQVNTIHdpbmRv
dy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJjYy1jc2MiCiBQQVNTIGlu
cHV0LmF1dG9jb21wbGV0ZSBpcyAic2VjdGlvbi1wYXJlbnQgY2MtdHlwZSIKK1BBU1Mgd2luZG93
LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImNjLXR5cGUiCiBQQVNTIGlu
cHV0LmF1dG9jb21wbGV0ZSBpcyAic2VjdGlvbi1wYXJlbnQgdHJhbnNhY3Rpb24tY3VycmVuY3ki
CitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJ0cmFu
c2FjdGlvbi1jdXJyZW5jeSIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJzZWN0aW9uLXBh
cmVudCB0cmFuc2FjdGlvbi1hbW91bnQiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxG
aWVsZE5hbWUoaW5wdXQpIGlzICJ0cmFuc2FjdGlvbi1hbW91bnQiCiBQQVNTIGlucHV0LmF1dG9j
b21wbGV0ZSBpcyAic2VjdGlvbi1wYXJlbnQgbGFuZ3VhZ2UiCitQQVNTIHdpbmRvdy5pbnRlcm5h
bHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJsYW5ndWFnZSIKIFBBU1MgaW5wdXQuYXV0
b2NvbXBsZXRlIGlzICJzZWN0aW9uLXBhcmVudCBiZGF5IgorUEFTUyB3aW5kb3cuaW50ZXJuYWxz
LmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAiYmRheSIKIFBBU1MgaW5wdXQuYXV0b2NvbXBs
ZXRlIGlzICJzZWN0aW9uLXBhcmVudCBiZGF5LWRheSIKK1BBU1Mgd2luZG93LmludGVybmFscy5h
dXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImJkYXktZGF5IgogUEFTUyBpbnB1dC5hdXRvY29t
cGxldGUgaXMgInNlY3Rpb24tcGFyZW50IGJkYXktbW9udGgiCitQQVNTIHdpbmRvdy5pbnRlcm5h
bHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJiZGF5LW1vbnRoIgogUEFTUyBpbnB1dC5h
dXRvY29tcGxldGUgaXMgInNlY3Rpb24tcGFyZW50IGJkYXkteWVhciIKK1BBU1Mgd2luZG93Lmlu
dGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgImJkYXkteWVhciIKIFBBU1MgaW5w
dXQuYXV0b2NvbXBsZXRlIGlzICJzZWN0aW9uLXBhcmVudCBzZXgiCitQQVNTIHdpbmRvdy5pbnRl
cm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJzZXgiCiBQQVNTIGlucHV0LmF1dG9j
b21wbGV0ZSBpcyAic2VjdGlvbi1wYXJlbnQgdXJsIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1
dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidXJsIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUg
aXMgInNlY3Rpb24tcGFyZW50IHBob3RvIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxs
RmllbGROYW1lKGlucHV0KSBpcyAicGhvdG8iCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAi
c2VjdGlvbi1wYXJlbnQgdGVsIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGRO
YW1lKGlucHV0KSBpcyAidGVsIgogUEFTUyBpbnB1dC5hdXRvY29tcGxldGUgaXMgInNlY3Rpb24t
cGFyZW50IHRlbC1jb3VudHJ5LWNvZGUiCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxG
aWVsZE5hbWUoaW5wdXQpIGlzICJ0ZWwtY291bnRyeS1jb2RlIgogUEFTUyBpbnB1dC5hdXRvY29t
cGxldGUgaXMgInNlY3Rpb24tcGFyZW50IHRlbC1uYXRpb25hbCIKK1BBU1Mgd2luZG93LmludGVy
bmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgInRlbC1uYXRpb25hbCIKIFBBU1MgaW5w
dXQuYXV0b2NvbXBsZXRlIGlzICJzZWN0aW9uLXBhcmVudCB0ZWwtYXJlYS1jb2RlIgorUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAidGVsLWFyZWEtY29k
ZSIKIFBBU1MgaW5wdXQuYXV0b2NvbXBsZXRlIGlzICJzZWN0aW9uLXBhcmVudCB0ZWwtbG9jYWwi
CitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJ0ZWwt
bG9jYWwiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAic2VjdGlvbi1wYXJlbnQgdGVsLWxv
Y2FsLXByZWZpeCIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1
dCkgaXMgInRlbC1sb2NhbC1wcmVmaXgiCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAic2Vj
dGlvbi1wYXJlbnQgdGVsLWxvY2FsLXN1ZmZpeCIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRv
ZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgInRlbC1sb2NhbC1zdWZmaXgiCiBQQVNTIGlucHV0LmF1
dG9jb21wbGV0ZSBpcyAic2VjdGlvbi1wYXJlbnQgdGVsLWV4dGVuc2lvbiIKK1BBU1Mgd2luZG93
LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCkgaXMgInRlbC1leHRlbnNpb24iCiBQ
QVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAic2VjdGlvbi1wYXJlbnQgZW1haWwiCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQpIGlzICJlbWFpbCIKIFBBU1Mg
aW5wdXQuYXV0b2NvbXBsZXRlIGlzICJzZWN0aW9uLXBhcmVudCBpbXBwIgorUEFTUyB3aW5kb3cu
aW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAiaW1wcCIKIAogSW52YWxpZCBj
b21iaW5hdGlvbnM6CiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiIgorUEFTUyB3aW5kb3cu
aW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAib24iCiBQQVNTIGlucHV0LmF1
dG9jb21wbGV0ZSBpcyAiIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1l
KGlucHV0KSBpcyAib24iCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiIgorUEFTUyB3aW5k
b3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAib24iCiBQQVNTIGlucHV0
LmF1dG9jb21wbGV0ZSBpcyAiIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGRO
YW1lKGlucHV0KSBpcyAib24iCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiIgorUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAib24iCiBQQVNTIGlu
cHV0LmF1dG9jb21wbGV0ZSBpcyAiIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmll
bGROYW1lKGlucHV0KSBpcyAib24iCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiIgorUEFT
UyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAib24iCiBQQVNT
IGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxs
RmllbGROYW1lKGlucHV0KSBpcyAib24iCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiIgor
UEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAib24iCiBQ
QVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAiIgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9m
aWxsRmllbGROYW1lKGlucHV0KSBpcyAib24iCiBQQVNTIGlucHV0LmF1dG9jb21wbGV0ZSBpcyAi
IgorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KSBpcyAib24i
CitQQVNTIGlucHV0SW5BdXRvY29tcGxldGVPZmZGb3JtLmF1dG9jb21wbGV0ZSBpcyAiIgorUEFT
UyB3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0SW5BdXRvY29tcGxldGVP
ZmZGb3JtKSBpcyAib2ZmIgorUEFTUyBpbnB1dEluQXV0b2NvbXBsZXRlT2ZmRm9ybS5hdXRvY29t
cGxldGUgaXMgIiIKK1BBU1Mgd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1
dEluQXV0b2NvbXBsZXRlT2ZmRm9ybSkgaXMgIm9uIgogCiBOb24tYXV0b2NvbXBsZXRlYWJsZSBj
b250cm9sczoKIFBBU1MgYnV0dG9uLmF1dG9jb21wbGV0ZSBpcyAiaW52YWxpZCIKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvYXV0b2NvbXBsZXRlLXRva2Vucy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvYXV0b2NvbXBsZXRlLXRva2Vucy5odG1sCShyZXZp
c2lvbiAxOTc2MTUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2F1dG9jb21wbGV0ZS10b2tl
bnMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsOCBAQAogICAgICAgICAgICAga2V5
d29yZHMuZm9yRWFjaChrZXl3b3JkID0+IHsKICAgICAgICAgICAgICAgICBpbnB1dC5hdXRvY29t
cGxldGUgPSBrZXl3b3JkOwogICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
aW5wdXQuYXV0b2NvbXBsZXRlJywga2V5d29yZCk7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
d2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCknLCBrZXl3b3JkKTsKICAg
ICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICBkZWJ1ZygnJyk7CkBAIC0zNCw2ICszNiw4IEBA
CiAgICAgICAgICAgICAgICAgY29udGFjdFRva2Vucy5mb3JFYWNoKGNvbnRhY3RUb2tlbiA9PiB7
CiAgICAgICAgICAgICAgICAgICAgIGlucHV0LmF1dG9jb21wbGV0ZSA9IHNjb3BlVG9rZW4gKyAi
ICIgKyBjb250YWN0VG9rZW47CiAgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygnaW5wdXQuYXV0b2NvbXBsZXRlJywgc2NvcGVUb2tlbiArICIgIiArIGNvbnRhY3RUb2tl
bik7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuaW50ZXJuYWxzLmF1
dG9maWxsRmllbGROYW1lKGlucHV0KScsIGNvbnRhY3RUb2tlbik7CiAgICAgICAgICAgICAgICAg
fSkKICAgICAgICAgICAgIH0pOwogCkBAIC00NSw2ICs0OSw4IEBACiAgICAgICAgICAgICAgICAg
YWRkcmVzc1Rva2Vucy5mb3JFYWNoKGFkZHJlc3NUb2tlbiA9PiB7CiAgICAgICAgICAgICAgICAg
ICAgIGlucHV0LmF1dG9jb21wbGV0ZSA9IG1vZGVUb2tlbiArICIgIiArIGFkZHJlc3NUb2tlbjsK
ICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC5hdXRvY29t
cGxldGUnLCBtb2RlVG9rZW4gKyAiICIgKyBhZGRyZXNzVG9rZW4pOworICAgICAgICAgICAgICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1
dCknLCBhZGRyZXNzVG9rZW4pOwogICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICB9KTsK
IApAQCAtNTQsNiArNjAsOCBAQAogICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9ICJzZWN0aW9u
LXBhcmVudCAiICsga2V5d29yZDsKICAgICAgICAgICAgICAgICBpbnB1dC5hdXRvY29tcGxldGUg
PSB2YWx1ZTsKICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LmF1
dG9jb21wbGV0ZScsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFs
cykKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuaW50
ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KScsIGtleXdvcmQpOwogICAgICAgICAgICAg
fSk7CiAKICAgICAgICAgICAgIGRlYnVnKCcnKTsKQEAgLTYxLDM2ICs2OSw3MSBAQAogICAgICAg
ICAgICAgYXV0b2NvbXBsZXRlYWJsZUNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7CiAgICAg
ICAgICAgICAgICAgIGNvbnRyb2wuYXV0b2NvbXBsZXRlID0gJ2ludmFsaWQnOwogICAgICAgICAg
ICAgICAgICBzaG91bGRCZUVtcHR5U3RyaW5nKCdpbnB1dC5hdXRvY29tcGxldGUnKTsKKyAgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUo
aW5wdXQpJywgIm9uIik7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIC8vIFR3byBub3Jt
YWwgdG9rZW5zCiAgICAgICAgICAgICBpbnB1dC5hdXRvY29tcGxldGUgPSAibmFtZSBuYW1lIjsK
ICAgICAgICAgICAgIHNob3VsZEJlRW1wdHlTdHJpbmcoJ2lucHV0LmF1dG9jb21wbGV0ZScpOwor
ICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0
KScsICJvbiIpOwogCiAgICAgICAgICAgICBpbnB1dC5hdXRvY29tcGxldGUgPSAibmFtZSBiZGF5
IjsKICAgICAgICAgICAgIHNob3VsZEJlRW1wdHlTdHJpbmcoJ2lucHV0LmF1dG9jb21wbGV0ZScp
OworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlu
cHV0KScsICJvbiIpOwogCiAgICAgICAgICAgICAvLyBDb250YWN0IHNjb3BlIHRva2VuICsgbm9u
LWNvbnRhY3QgdG9rZW4uCiAgICAgICAgICAgICBpbnB1dC5hdXRvY29tcGxldGUgPSAicGFnZXIg
YmRheSI7CiAgICAgICAgICAgICBzaG91bGRCZUVtcHR5U3RyaW5nKCdpbnB1dC5hdXRvY29tcGxl
dGUnKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFt
ZShpbnB1dCknLCAib24iKTsKIAogICAgICAgICAgICAgLy8gVHdvIGNvbnRhY3Qgc2NvcGUgdG9r
ZW5zLgogICAgICAgICAgICAgaW5wdXQuYXV0b2NvbXBsZXRlID0gImhvbWUgd29yayB0ZWwiOwog
ICAgICAgICAgICAgc2hvdWxkQmVFbXB0eVN0cmluZygnaW5wdXQuYXV0b2NvbXBsZXRlJyk7Cisg
ICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5hbWUoaW5wdXQp
JywgIm9uIik7CiAKICAgICAgICAgICAgIC8vIFR3byBtb2RlIHRva2Vucy4KICAgICAgICAgICAg
IGlucHV0LmF1dG9jb21wbGV0ZSA9ICJzaGlwcGluZyBiaWxsaW5nIHRlbCI7CiAgICAgICAgICAg
ICBzaG91bGRCZUVtcHR5U3RyaW5nKCdpbnB1dC5hdXRvY29tcGxldGUnKTsKKyAgICAgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygnd2luZG93LmludGVybmFscy5hdXRvZmlsbEZpZWxkTmFtZShpbnB1dCknLCAib24iKTsK
IAogICAgICAgICAgICAgLy8gVHdvIHNlY3Rpb24gdG9rZW5zLgogICAgICAgICAgICAgaW5wdXQu
YXV0b2NvbXBsZXRlID0gInNlY3Rpb24tYSBzZWN0aW9uLWIgdGVsIjsKICAgICAgICAgICAgIHNo
b3VsZEJlRW1wdHlTdHJpbmcoJ2lucHV0LmF1dG9jb21wbGV0ZScpOworICAgICAgICAgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd3aW5kb3cuaW50ZXJuYWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0KScsICJvbiIpOwogCiAg
ICAgICAgICAgICAvLyBBbnl0aGluZyArIG9uL29mZi4KICAgICAgICAgICAgIGlucHV0LmF1dG9j
b21wbGV0ZSA9ICJ0ZWwgb24iOwogICAgICAgICAgICAgc2hvdWxkQmVFbXB0eVN0cmluZygnaW5w
dXQuYXV0b2NvbXBsZXRlJyk7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5pbnRlcm5hbHMuYXV0
b2ZpbGxGaWVsZE5hbWUoaW5wdXQpJywgIm9uIik7CiAKICAgICAgICAgICAgIGlucHV0LmF1dG9j
b21wbGV0ZSA9ICJ0ZWwgb2ZmIjsKICAgICAgICAgICAgIHNob3VsZEJlRW1wdHlTdHJpbmcoJ2lu
cHV0LmF1dG9jb21wbGV0ZScpOworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuaW50ZXJuYWxzLmF1
dG9maWxsRmllbGROYW1lKGlucHV0KScsICJvbiIpOworCisgICAgICAgICAgICAvLyBUZXN0IGR5
bmFtaWNhbGx5IGNoYW5naW5nIHRoZSBmb3JtIG93bmVyJ3MgYXV0b2NvbXBsZXRlIGF0dHJpYnV0
ZQorICAgICAgICAgICAgLy8gdG8gZW5zdXJlIHRoZSBmaWVsZCBuYW1lIGNvcnJlY3RseSByZWZs
ZWN0cyBpdC4KKyAgICAgICAgICAgIHZhciBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
Zm9ybSIpOworICAgICAgICAgICAgdmFyIGlucHV0SW5BdXRvY29tcGxldGVPZmZGb3JtID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKKyAgICAgICAgICAgIGZvcm0uYXBwZW5kQ2hp
bGQoaW5wdXRJbkF1dG9jb21wbGV0ZU9mZkZvcm0pOworICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChmb3JtKTsKKyAgICAgICAgICAgIGZvcm0uYXV0b2NvbXBsZXRlID0gIm9m
ZiI7CisgICAgICAgICAgICBpbnB1dEluQXV0b2NvbXBsZXRlT2ZmRm9ybS5hdXRvY29tcGxldGUg
PSAiIjsKKyAgICAgICAgICAgIHNob3VsZEJlRW1wdHlTdHJpbmcoJ2lucHV0SW5BdXRvY29tcGxl
dGVPZmZGb3JtLmF1dG9jb21wbGV0ZScpOworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuaW50ZXJu
YWxzLmF1dG9maWxsRmllbGROYW1lKGlucHV0SW5BdXRvY29tcGxldGVPZmZGb3JtKScsICJvZmYi
KTsKKworICAgICAgICAgICAgZm9ybS5hdXRvY29tcGxldGUgPSAib24iOworICAgICAgICAgICAg
c2hvdWxkQmVFbXB0eVN0cmluZygnaW5wdXRJbkF1dG9jb21wbGV0ZU9mZkZvcm0uYXV0b2NvbXBs
ZXRlJyk7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5pbnRlcm5hbHMuYXV0b2ZpbGxGaWVsZE5h
bWUoaW5wdXRJbkF1dG9jb21wbGV0ZU9mZkZvcm0pJywgIm9uIik7CiAKICAgICAgICAgICAgIGRl
YnVnKCcnKTsKICAgICAgICAgICAgIGRlYnVnKCdOb24tYXV0b2NvbXBsZXRlYWJsZSBjb250cm9s
czonKTsK
</data>
<flag name="review"
          id="297718"
          type_id="1"
          status="+"
          setter="enrica"
    />
          </attachment>
      

    </bug>

</bugzilla>