<?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>15422</bug_id>
          
          <creation_ts>2007-10-08 00:28:50 -0700</creation_ts>
          <short_desc>Implement getComputedStyle support for SVG CSS properties</short_desc>
          <delta_ts>2007-10-08 13:48:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>15348</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>58079</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-08 00:28:50 -0700</bug_when>
    <thetext>Implement getComputedStyle support for SVG CSS properties

the attached patch does just that (and thus works around the issue seen in bug 15348).  This is not a complete implementation of getComputedStyle for SVG, but it&apos;s close enough to get us started (and make the inspector work).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58082</commentid>
    <comment_count>1</comment_count>
      <attachid>16586</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-08 00:37:00 -0700</bug_when>
    <thetext>Created attachment 16586
fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58084</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-08 00:49:37 -0700</bug_when>
    <thetext>Wow.  Being able to use the inspector makes the Sun Labs Lively Kernel much more interesting! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58101</commentid>
    <comment_count>3</comment_count>
      <attachid>16586</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2007-10-08 09:38:38 -0700</bug_when>
    <thetext>Comment on attachment 16586
fix

Nice patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58105</commentid>
    <comment_count>4</comment_count>
      <attachid>16586</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-10-08 10:20:56 -0700</bug_when>
    <thetext>Comment on attachment 16586
fix

This needs layouttests.  r-</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58116</commentid>
    <comment_count>5</comment_count>
      <attachid>16591</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-08 12:57:24 -0700</bug_when>
    <thetext>Created attachment 16591
improved patch (including added test case) (size due to search-replace changes)

I implemented a couple more getComputedStyle properties to get rid to so many error logs in the console.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58119</commentid>
    <comment_count>6</comment_count>
      <attachid>16591</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-10-08 13:20:31 -0700</bug_when>
    <thetext>Comment on attachment 16591
improved patch (including added test case) (size due to search-replace changes)

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58121</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-08 13:48:36 -0700</bug_when>
    <thetext>landed on feature-branch as r26109.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16586</attachid>
            <date>2007-10-08 00:37:00 -0700</date>
            <delta_ts>2007-10-08 12:57:24 -0700</delta_ts>
            <desc>fix</desc>
            <filename>fix.patch</filename>
            <type>text/plain</type>
            <size>82752</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI2MTAz
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDAgQEAKKzIwMDctMTAt
MDggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBnZXRDb21wdXRlZFN0eWxlIHN1
cHBvcnQgZm9yIFNWRyBDU1MgdmFsdWVzCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NDIyCisgICAgICAgIAorICAgICAgICBUaGlzIGFsc28gdW5pZmll
cyBTVkcgYW5kIG5vbi1TVkcgQ1NTIGhhc2ggbG9va3Vwcy4gQSB1bmlmaWVkIGhhc2gKKyAgICAg
ICAgc29sdmVzIGNvcnJlY3RuZXNzIHByb2JsZW1zIGFzIHdlbGwgYXMgb2ZmZXJzIGltcHJvdmVk
IHNwZWVkLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogdW5pZnkgU1ZHIGFuZCBu
b24tU1ZHIENTUyBoYXNoIGZpbGVzCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOiByZW1vdmUgb2xkIFNWRyBDU1MgaGFzaCBmaWxlcworICAgICAgICAqIGNzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlD
U1NWYWx1ZSk6IGNhbGwgZ2V0UHJvcGVydHlDU1NWYWx1ZQorICAgICAgICAqIGNzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uaDogYWRkIGdldFByb3BlcnR5Q1NTVmFsdWUKKyAgICAgICAg
KiBjc3MvQ1NTR3JhbW1hci55OgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5
bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm9wZXJ0eUlEKToKKyAgICAg
ICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKiBrc3ZnMi9jc3MvQ1NTUHJvcGVy
dHlOYW1lcy5pbjogcmVtb3ZlIGZvbnQtc2l6ZS1hZGp1c3QKKyAgICAgICAgKiBrc3ZnMi9jc3Mv
U1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFNWR1Byb3BlcnR5Q1NTVmFsdWUp
OiBhZGRlZC4KKyAgICAgICAgKiBrc3ZnMi9jc3MvU1ZHQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VTVkdWYWx1ZSk6CisgICAgICAgICoga3N2ZzIvY3Nz
L1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxl
Y3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSk6CisgICAgICAgICoga3N2ZzIvc2NyaXB0cy9jc3NtYWtl
cHJvcHM6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvc2NyaXB0cy9jc3NtYWtldmFsdWVzOiBS
ZW1vdmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjptYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxl
ZEVsZW1lbnQ6OmNzc1Byb3BlcnR5SWRGb3JTVkdBdHRyaWJ1dGVOYW1lKTogcmVtb3ZlIGZvbnQt
c2l6ZS1hZGp1c3QKKwogMjAwNy0xMC0wNyAgTmlrb2xhcyBaaW1tZXJtYW5uICA8emltbWVybWFu
bkBrZGUub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMuCkluZGV4OiBEZXJpdmVkU291
cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIERlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI2
MTAxKQorKysgRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtNTYyLDIwICs1
NjIsMzggQEAgYWxsIDogXAogICAgIGtqc19ldmVudHMubHV0LmggXAogICAgIGtqc19uYXZpZ2F0
b3IubHV0LmggXAogICAgIGtqc193aW5kb3cubHV0LmggXAotICAgIGtzdmdjc3Nwcm9wZXJ0aWVz
LmggXAotICAgIGtzdmdjc3N2YWx1ZXMuaCBcCiAgICAgdG9rZW5pemVyLmNwcCBcCiAgICAgV2Vi
Q29yZS5leHAgXAogIwogCiAjIENTUyBwcm9wZXJ0eSBuYW1lcyBhbmQgdmFsdWUga2V5d29yZHMK
IAotQ1NTUHJvcGVydHlOYW1lcy5oIDogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gY3NzL21ha2Vw
cm9wLnBsCi0JY2F0ICQ8ID4gQ1NTUHJvcGVydHlOYW1lcy5pbgoraWZlcSAoJChmaW5kc3RyaW5n
IEVOQUJMRV9TVkcsJChGRUFUVVJFX0RFRklORVMpKSwgRU5BQkxFX1NWRykKKworQ1NTUHJvcGVy
dHlOYW1lcy5pbiA6IGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluIGtzdmcyL2Nzcy9DU1NQcm9wZXJ0
eU5hbWVzLmluCisJaWYgc29ydCAkPCAkKFdlYkNvcmUpL2tzdmcvY3NzL0NTU1Byb3BlcnR5TmFt
ZXMuaW4gfCB1bmlxIC1kIHwgZ3JlcCAtRSAnXlteI10nOyB0aGVuIGVjaG8gJ0R1cGxpY2F0ZSB2
YWx1ZSEnOyBleGl0IDE7IGZpCisJY2F0ICQ8ICQoV2ViQ29yZSkva3N2ZzIvY3NzL0NTU1Byb3Bl
cnR5TmFtZXMuaW4gPiBDU1NQcm9wZXJ0eU5hbWVzLmluCisKK0NTU1ZhbHVlS2V5d29yZHMuaW4g
OiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBrc3ZnMi9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgor
CSMgTG93ZXIgY2FzZSBhbGwgdGhlIHZhbHVlcywgYXMgQ1NTIHZhbHVlcyBhcmUgY2FzZS1pbnNl
bnNpdGl2ZQorCXBlcmwgLW5lICdwcmludCBsYycgJChXZWJDb3JlKS9rc3ZnMi9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbiA+IFNWR0NTU1ZhbHVlS2V5d29yZHMuaW4KKwlpZiBzb3J0ICQ8IFNWR0NT
U1ZhbHVlS2V5d29yZHMuaW4gfCB1bmlxIC1kIHwgZ3JlcCAtRSAnXlteI10nOyB0aGVuIGVjaG8g
J0R1cGxpY2F0ZSB2YWx1ZSEnOyBleGl0IDE7IGZpCisJY2F0ICQ8IFNWR0NTU1ZhbHVlS2V5d29y
ZHMuaW4gPiBDU1NWYWx1ZUtleXdvcmRzLmluCisKK2Vsc2UKKworQ1NTUHJvcGVydHlOYW1lcy5p
biA6IGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisJY3AgJDwgQ1NTUHJvcGVydHlOYW1lcy5pbgor
CitDU1NWYWx1ZUtleXdvcmRzLmluIDogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKwljcCAkPCBD
U1NWYWx1ZUtleXdvcmRzLmluCisKK2VuZGlmIAorCitDU1NQcm9wZXJ0eU5hbWVzLmggOiBDU1NQ
cm9wZXJ0eU5hbWVzLmluIGNzcy9tYWtlcHJvcC5wbAogCXBlcmwgIiQoV2ViQ29yZSkvY3NzL21h
a2Vwcm9wLnBsIgogCi1DU1NWYWx1ZUtleXdvcmRzLmggOiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
biBjc3MvbWFrZXZhbHVlcy5wbAotCWNhdCAkPCA+IENTU1ZhbHVlS2V5d29yZHMuaW4KK0NTU1Zh
bHVlS2V5d29yZHMuaCA6IENTU1ZhbHVlS2V5d29yZHMuaW4gY3NzL21ha2V2YWx1ZXMucGwKIAlw
ZXJsICIkKFdlYkNvcmUpL2Nzcy9tYWtldmFsdWVzLnBsIgogCiAjIERPQ1RZUEUgc3RyaW5ncwpA
QCAtNjcwLDIwICs2ODgsNiBAQCBYTGlua05hbWVzLmNwcCA6IGtzdmcyL3NjcmlwdHMvbWFrZV9u
YW1lCiAJcGVybCAkPCAtLWF0dHJzICQoV2ViQ29yZSkva3N2ZzIvbWlzYy94bGlua2F0dHJzLmlu
IFwKICAgICAgICAgICAgIC0tbmFtZXNwYWNlIFhMaW5rIC0tY3BwTmFtZXNwYWNlIFdlYkNvcmUg
LS1uYW1lc3BhY2VVUkkgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIC0tb3V0cHV0IC4K
IAotIyBTVkcgQ1NTIHByb3BlcnR5IG5hbWVzIGFuZCB2YWx1ZSBrZXl3b3JkcwotCi1rc3ZnY3Nz
cHJvcGVydGllcy5oIDoga3N2ZzIvc2NyaXB0cy9jc3NtYWtlcHJvcHMgY3NzL0NTU1Byb3BlcnR5
TmFtZXMuaW4ga3N2ZzIvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KLQlpZiBzb3J0ICQoV2ViQ29y
ZSkvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gJChXZWJDb3JlKS9rc3ZnMi9jc3MvQ1NTUHJvcGVy
dHlOYW1lcy5pbiB8IHVuaXEgLWQgfCBncmVwIC1FICdeW14jXSc7IHRoZW4gZWNobyAnRHVwbGlj
YXRlIHZhbHVlISc7IGV4aXQgMTsgZmkKLQljYXQgJChXZWJDb3JlKS9rc3ZnMi9jc3MvQ1NTUHJv
cGVydHlOYW1lcy5pbiA+IGtzdmdjc3Nwcm9wZXJ0aWVzLmluCi0JJChXZWJDb3JlKS9rc3ZnMi9z
Y3JpcHRzL2Nzc21ha2Vwcm9wcyAtbiBTVkcgLWYga3N2Z2Nzc3Byb3BlcnRpZXMuaW4KLQota3N2
Z2Nzc3ZhbHVlcy5oIDoga3N2ZzIvc2NyaXB0cy9jc3NtYWtldmFsdWVzIGNzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluIGtzdmcyL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCi0JaWYgc29ydCAkKFdlYkNv
cmUpL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluICQoV2ViQ29yZSkva3N2ZzIvY3NzL0NTU1ZhbHVl
S2V5d29yZHMuaW4gfCB1bmlxIC1kIHwgZ3JlcCAtRSAnXlteI10nOyB0aGVuIGVjaG8gJ0R1cGxp
Y2F0ZSB2YWx1ZSEnOyBleGl0IDE7IGZpCi0JIyBMb3dlciBjYXNlIGFsbCB0aGUgdmFsdWVzLCBh
cyBDU1MgdmFsdWVzIGFyZSBjYXNlLWluc2Vuc2l0aXZlCi0JcGVybCAtbmUgJ3ByaW50IGxjJyAk
KFdlYkNvcmUpL2tzdmcyL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluID4ga3N2Z2Nzc3ZhbHVlcy5p
bgotCSQoV2ViQ29yZSkva3N2ZzIvc2NyaXB0cy9jc3NtYWtldmFsdWVzIC1uIFNWRyAtZiBrc3Zn
Y3NzdmFsdWVzLmluCi0KLQogIyBBZGQgU1ZHIFN5bWJvbHMgdG8gdGhlIFdlYkNvcmUgZXhwb3J0
ZWQgc3ltYm9scyBmaWxlCiAKIFdlYkNvcmUuZXhwIDogV2ViQ29yZS5iYXNlLmV4cCBXZWJDb3Jl
LlNWRy5leHAKQEAgLTcwMCwxMiArNzA0LDYgQEAgU1ZHTmFtZXMuY3BwIDoKIFhMaW5rTmFtZXMu
Y3BwIDoKIAllY2hvID4gWExpbmtOYW1lcy5jcHAKIAota3N2Z2Nzc3Byb3BlcnRpZXMuaCA6Ci0J
ZWNobyA+IGtzdmdjc3Nwcm9wZXJ0aWVzLmgKLQota3N2Z2Nzc3ZhbHVlcy5oIDoKLQllY2hvID4g
a3N2Z2Nzc3ZhbHVlcy5oCi0KIFdlYkNvcmUuZXhwIDogV2ViQ29yZS5iYXNlLmV4cAogCWNwICQo
V2ViQ29yZSkvV2ViQ29yZS5iYXNlLmV4cCBXZWJDb3JlLmV4cAogCkluZGV4OiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNjEwMSkKKysrIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzk0LDExICszOTQsOSBAQAogCQk2NTY1
ODFGMzA5RDE1MDhEMDAwRTYxRDcgLyoga2pzX2V2ZW50cy5sdXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NjU4MURDMDlEMTUwOEQwMDBFNjFENyAv
KiBranNfZXZlbnRzLmx1dC5oICovOyB9OwogCQk2NTY1ODFGNTA5RDE1MDhEMDAwRTYxRDcgLyog
a2pzX25hdmlnYXRvci5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDY1NjU4MURFMDlEMTUwOEQwMDBFNjFENyAvKiBranNfbmF2aWdhdG9yLmx1dC5o
ICovOyB9OwogCQk2NTY1ODFGODA5RDE1MDhEMDAwRTYxRDcgLyoga2pzX3dpbmRvdy5sdXQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NjU4MUUxMDlE
MTUwOEQwMDBFNjFENyAvKiBranNfd2luZG93Lmx1dC5oICovOyB9OwotCQk2NTY1ODFGQjA5RDE1
MDhEMDAwRTYxRDcgLyoga3N2Z2Nzc3Byb3BlcnRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NjU4MUU0MDlEMTUwOEQwMDBFNjFENyAvKiBrc3Zn
Y3NzcHJvcGVydGllcy5oICovOyB9OwogCQk2NTY1ODFGRTA5RDE1MDhEMDAwRTYxRDcgLyogU1ZH
RWxlbWVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDY1NjU4MUU3MDlEMTUwOEQwMDBFNjFENyAvKiBTVkdFbGVtZW50RmFjdG9yeS5oICov
OyB9OwogCQk2NTY1ODIwMDA5RDE1MDhEMDAwRTYxRDcgLyogU1ZHTmFtZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NjU4MUU5MDlEMTUwOEQwMDBF
NjFENyAvKiBTVkdOYW1lcy5oICovOyB9OwogCQk2NTY1ODIwMjA5RDE1MDhEMDAwRTYxRDcgLyog
WExpbmtOYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNjU2NTgxRUIwOUQxNTA4RDAwMEU2MUQ3IC8qIFhMaW5rTmFtZXMuaCAqLzsgfTsKLQkJNjU2
NTgyMTMwOUQxNTExMTAwMEU2MUQ3IC8qIGtzdmdjc3N2YWx1ZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NjU4MjBGMDlEMTUxMTEwMDBFNjFENyAv
KiBrc3ZnY3NzdmFsdWVzLmggKi87IH07CiAJCTY1NkI4NEUwMEFFQTFEMzEwMEEwOTVCNCAvKiBS
ZXNvdXJjZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2NTZCODREQzBBRUExRDMxMDBBMDk1QjQgLyogUmVzb3VyY2VIYW5kbGUuY3BwICov
OyB9OwogCQk2NTZCODRFMjBBRUExRDMxMDBBMDk1QjQgLyogUmVzb3VyY2VIYW5kbGVDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkI4NERF
MEFFQTFEMzEwMEEwOTVCNCAvKiBSZXNvdXJjZUhhbmRsZUNsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTY1NkI4NEUzMEFFQTFEMzEwMEEw
OTVCNCAvKiBSZXNvdXJjZUhhbmRsZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTZCODRERjBBRUExRDMxMDBBMDk1QjQgLyogUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oICovOyB9OwpAQCAtMTg0Miw2ICsxODQwLDcgQEAKIAkJQTg0RUJE
NzgwQ0I4Qzg5MjAwMDc5NjA5IC8qIEpTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg0RUJENzcwQ0I4Qzg5MjAw
MDc5NjA5IC8qIEpTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwICovOyB9OwogCQlBODRFQkQ4MzBD
QjhDOTc3MDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg0RUJEODEwQ0I4Qzk3NzAwMDc5NjA5IC8qIEpT
U3R5bGVTaGVldExpc3QuaCAqLzsgfTsKIAkJQTg0RUJEODQwQ0I4Qzk3NzAwMDc5NjA5IC8qIEpT
U3R5bGVTaGVldExpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTg0RUJEODIwQ0I4Qzk3NzAwMDc5NjA5IC8qIEpTU3R5bGVTaGVldExpc3QuY3Bw
ICovOyB9OworCQlBODRFQzEzOTBDQjlGREJDMDAwNzk2MDkgLyogU1ZHQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4NEVDMTM4MENCOUZEQkMwMDA3OTYwOSAvKiBTVkdDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwICovOyB9OwogCQlBODY2MjlDRjA5REEyQjQ3MDA5NjMzQTUgLyogSlNVSUV2
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODY2
MjlDOTA5REEyQjQ3MDA5NjMzQTUgLyogSlNVSUV2ZW50LmggKi87IH07CiAJCUE4NjYyOUQwMDlE
QTJCNDgwMDk2MzNBNSAvKiBKU1VJRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTg2NjI5Q0EwOURBMkI0NzAwOTYzM0E1IC8qIEpTVUlFdmVu
dC5jcHAgKi87IH07CiAJCUE4NjYyOUQxMDlEQTJCNDgwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NjYyOUNC
MDlEQTJCNDcwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQuaCAqLzsgfTsKQEAgLTQ0MTMsMjAgKzQ0
MTIsMTIgQEAKIAkJNjU2NTgxREMwOUQxNTA4RDAwMEU2MUQ3IC8qIGtqc19ldmVudHMubHV0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBranNfZXZlbnRzLmx1dC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODFERTA5RDE1MDhEMDAwRTYxRDcgLyoga2pz
X25hdmlnYXRvci5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGtqc19u
YXZpZ2F0b3IubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MUUxMDlE
MTUwOEQwMDBFNjFENyAvKiBranNfd2luZG93Lmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0ga2pzX3dpbmRvdy5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNjU2NTgxRTIwOUQxNTA4RDAwMEU2MUQ3IC8qIGtzdmdjc3Nwcm9wZXJ0aWVzLmMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBrc3ZnY3NzcHJvcGVydGllcy5jOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk2NTY1ODFFMzA5RDE1MDhEMDAwRTYxRDcgLyoga3N2Z2Nz
c3Byb3BlcnRpZXMuZ3BlcmYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGtzdmdjc3Nwcm9wZXJ0
aWVzLmdwZXJmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2NTY1ODFFNDA5RDE1MDhE
MDAwRTYxRDcgLyoga3N2Z2Nzc3Byb3BlcnRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IGtzdmdjc3Nwcm9wZXJ0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTY1NjU4MUU1MDlEMTUwOEQwMDBFNjFENyAvKiBrc3ZnY3NzcHJvcGVydGllcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0ga3N2Z2Nzc3Byb3BlcnRpZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTY1NjU4MUU2MDlEMTUwOEQwMDBFNjFENyAvKiBTVkdFbGVtZW50RmFj
dG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRWxlbWVu
dEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODFFNzA5RDE1
MDhEMDAwRTYxRDcgLyogU1ZHRWxlbWVudEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNWR0VsZW1lbnRGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTY1NjU4MUU4MDlEMTUwOEQwMDBFNjFENyAvKiBTVkdOYW1lcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTmFtZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2NTY1ODFFOTA5RDE1MDhEMDAwRTYxRDcgLyogU1ZHTmFtZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR05hbWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MUVBMDlEMTUwOEQwMDBFNjFENyAvKiBYTGlua05hbWVz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYTGlua05hbWVzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxRUIwOUQxNTA4RDAwMEU2MUQ3
IC8qIFhMaW5rTmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhMaW5r
TmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNjU2NTgyMEQwOUQxNTExMTAw
MEU2MUQ3IC8qIGtzdmdjc3N2YWx1ZXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0
aCA9IGtzdmdjc3N2YWx1ZXMuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNjU2NTgy
MEUwOUQxNTExMTAwMEU2MUQ3IC8qIGtzdmdjc3N2YWx1ZXMuZ3BlcmYgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IGtzdmdjc3N2YWx1ZXMuZ3BlcmY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTY1NjU4MjBGMDlEMTUxMTEwMDBFNjFENyAvKiBrc3ZnY3NzdmFsdWVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBrc3ZnY3NzdmFsdWVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTY1NjU4MjEwMDlEMTUxMTEwMDBFNjFENyAvKiBrc3ZnY3NzdmFsdWVz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBrc3ZnY3NzdmFsdWVzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2NTZCODREQzBBRUExRDMxMDBBMDk1QjQgLyogUmVzb3VyY2VI
YW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNl
SGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2Qjg0REUwQUVBMUQz
MTAwQTA5NUI0IC8qIFJlc291cmNlSGFuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZXNvdXJjZUhhbmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2NTZCODRERjBBRUExRDMxMDBBMDk1QjQgLyogUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTc5OCw2ICs1Nzg5LDcg
QEAKIAkJQTg0RUJENzcwQ0I4Qzg5MjAwMDc5NjA5IC8qIEpTU3R5bGVTaGVldExpc3RDdXN0b20u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHlsZVNoZWV0TGlz
dEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NEVCRDgxMENCOEM5
NzcwMDA3OTYwOSAvKiBKU1N0eWxlU2hlZXRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTU3R5bGVTaGVldExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTg0RUJEODIwQ0I4Qzk3NzAwMDc5NjA5IC8qIEpTU3R5bGVTaGVldExpc3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHlsZVNoZWV0TGlzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4NEVDMTM4MENCOUZEQkMwMDA3OTYwOSAvKiBT
VkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg1RDdBMkYwODc5RUJBOTAwNkE5MTcyIC8qIFF1YXJ0
ekNvcmUuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBRdWFydHpDb3JlLmZyYW1ld29yazsg
cGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1F1YXJ0ekNvcmUuZnJhbWV3b3JrOyBz
b3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQlBODY2MjlDOTA5REEyQjQ3MDA5NjMzQTUg
LyogSlNVSUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1VJRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg2NjI5Q0EwOURBMkI0NzAwOTYz
M0E1IC8qIEpTVUlFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNVSUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgxMzYsMTQg
KzgxMjgsNiBAQAogCQkJCTY1NjU4MURDMDlEMTUwOEQwMDBFNjFENyAvKiBranNfZXZlbnRzLmx1
dC5oICovLAogCQkJCTY1NjU4MURFMDlEMTUwOEQwMDBFNjFENyAvKiBranNfbmF2aWdhdG9yLmx1
dC5oICovLAogCQkJCTY1NjU4MUUxMDlEMTUwOEQwMDBFNjFENyAvKiBranNfd2luZG93Lmx1dC5o
ICovLAotCQkJCTY1NjU4MUUyMDlEMTUwOEQwMDBFNjFENyAvKiBrc3ZnY3NzcHJvcGVydGllcy5j
ICovLAotCQkJCTY1NjU4MUUzMDlEMTUwOEQwMDBFNjFENyAvKiBrc3ZnY3NzcHJvcGVydGllcy5n
cGVyZiAqLywKLQkJCQk2NTY1ODFFNDA5RDE1MDhEMDAwRTYxRDcgLyoga3N2Z2Nzc3Byb3BlcnRp
ZXMuaCAqLywKLQkJCQk2NTY1ODFFNTA5RDE1MDhEMDAwRTYxRDcgLyoga3N2Z2Nzc3Byb3BlcnRp
ZXMuaW4gKi8sCi0JCQkJNjU2NTgyMEQwOUQxNTExMTAwMEU2MUQ3IC8qIGtzdmdjc3N2YWx1ZXMu
YyAqLywKLQkJCQk2NTY1ODIwRTA5RDE1MTExMDAwRTYxRDcgLyoga3N2Z2Nzc3ZhbHVlcy5ncGVy
ZiAqLywKLQkJCQk2NTY1ODIwRjA5RDE1MTExMDAwRTYxRDcgLyoga3N2Z2Nzc3ZhbHVlcy5oICov
LAotCQkJCTY1NjU4MjEwMDlEMTUxMTEwMDBFNjFENyAvKiBrc3ZnY3NzdmFsdWVzLmluICovLAog
CQkJCTY1NjU4MUU2MDlEMTUwOEQwMDBFNjFENyAvKiBTVkdFbGVtZW50RmFjdG9yeS5jcHAgKi8s
CiAJCQkJNjU2NTgxRTcwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR0VsZW1lbnRGYWN0b3J5LmggKi8s
CiAJCQkJNjU2NTgxRTgwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR05hbWVzLmNwcCAqLywKQEAgLTk5
MTksNiArOTkwMyw3IEBACiAJCQkJQThDMEY3MDAwODk3MDFGMTAwQkE1MTE0IC8qIFNWR1JlbmRl
clN0eWxlLmggKi8sCiAJCQkJQThDMEY3MDEwODk3MDFGMTAwQkE1MTE0IC8qIFNWR1JlbmRlclN0
eWxlRGVmcy5jcHAgKi8sCiAJCQkJQThDMEY3MDIwODk3MDFGMTAwQkE1MTE0IC8qIFNWR1JlbmRl
clN0eWxlRGVmcy5oICovLAorCQkJCUE4NEVDMTM4MENCOUZEQkMwMDA3OTYwOSAvKiBTVkdDU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwICovLAogCQkJKTsKIAkJCXBhdGggPSBjc3M7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTE4MjYsMTEgKzExODExLDkgQEAKIAkJCQk2
NTY1ODFGMzA5RDE1MDhEMDAwRTYxRDcgLyoga2pzX2V2ZW50cy5sdXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTY1NjU4MUY1MDlEMTUwOEQwMDBFNjFENyAvKiBranNfbmF2aWdhdG9yLmx1dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxRjgwOUQxNTA4RDAwMEU2MUQ3IC8qIGtqc193aW5kb3cu
bHV0LmggaW4gSGVhZGVycyAqLywKLQkJCQk2NTY1ODFGQjA5RDE1MDhEMDAwRTYxRDcgLyoga3N2
Z2Nzc3Byb3BlcnRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NjU4MUZFMDlEMTUwOEQwMDBF
NjFENyAvKiBTVkdFbGVtZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgyMDAw
OUQxNTA4RDAwMEU2MUQ3IC8qIFNWR05hbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTY1ODIw
MjA5RDE1MDhEMDAwRTYxRDcgLyogWExpbmtOYW1lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNjU2
NTgyMTMwOUQxNTExMTAwMEU2MUQ3IC8qIGtzdmdjc3N2YWx1ZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTY1MEY1M0RDMDlEMTVEREEwMEM5QjBDOCAvKiBDU1NHcmFtbWFyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk2NURGMzFEQjA5RDFDMTIzMDAwQkUzMjUgLyogSlNBdHRyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk2NURGMzFGNDA5RDFDQzYwMDAwQkUzMjUgLyogSlNDaGFyYWN0ZXJEYXRhLmggaW4g
SGVhZGVycyAqLywKQEAgLTE0NzA1LDYgKzE0Njg4LDcgQEAKIAkJCQlCQzY0QjREQjBDQjQyOThB
MDA1RjJCNjIgLyogQ1NTRm9udFNlbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NEVC
RDc4MENCOEM4OTIwMDA3OTYwOSAvKiBKU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4NEVCRDg0MENCOEM5NzcwMDA3OTYwOSAvKiBKU1N0eWxlU2hlZXRMaXN0
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4NEVDMTM5MENCOUZEQkMwMDA3OTYwOSAvKiBTVkdD
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBjc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAkocmV2aXNpb24gMjYxMDEpCisrKyBjc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTcyLDYgKzE3Miw1
MCBAQCBzdGF0aWMgY29uc3QgaW50IGNvbXB1dGVkUHJvcGVydGllc1tdID0gCiAgICAgQ1NTX1BS
T1BfX1dFQktJVF9CT1JERVJfQk9UVE9NX1JJR0hUX1JBRElVUywKICAgICBDU1NfUFJPUF9fV0VC
S0lUX0JPUkRFUl9UT1BfTEVGVF9SQURJVVMsCiAgICAgQ1NTX1BST1BfX1dFQktJVF9CT1JERVJf
VE9QX1JJR0hUX1JBRElVUworICAgIAorI2lmIEVOQUJMRShTVkcpCisgICAgLAorICAgIENTU19Q
Uk9QX0NMSVBfUEFUSCwKKyAgICBDU1NfUFJPUF9DTElQX1JVTEUsCisgICAgQ1NTX1BST1BfTUFT
SywKKyAgICBDU1NfUFJPUF9FTkFCTEVfQkFDS0dST1VORCwKKyAgICBDU1NfUFJPUF9GSUxURVIs
CisgICAgQ1NTX1BST1BfRkxPT0RfQ09MT1IsCisgICAgQ1NTX1BST1BfRkxPT0RfT1BBQ0lUWSwK
KyAgICBDU1NfUFJPUF9MSUdIVElOR19DT0xPUiwKKyAgICBDU1NfUFJPUF9TVE9QX0NPTE9SLAor
ICAgIENTU19QUk9QX1NUT1BfT1BBQ0lUWSwKKyAgICBDU1NfUFJPUF9QT0lOVEVSX0VWRU5UUywK
KyAgICBDU1NfUFJPUF9DT0xPUl9JTlRFUlBPTEFUSU9OLAorICAgIENTU19QUk9QX0NPTE9SX0lO
VEVSUE9MQVRJT05fRklMVEVSUywKKyAgICBDU1NfUFJPUF9DT0xPUl9QUk9GSUxFLAorICAgIENT
U19QUk9QX0NPTE9SX1JFTkRFUklORywKKyAgICBDU1NfUFJPUF9GSUxMLAorICAgIENTU19QUk9Q
X0ZJTExfT1BBQ0lUWSwKKyAgICBDU1NfUFJPUF9GSUxMX1JVTEUsCisgICAgQ1NTX1BST1BfSU1B
R0VfUkVOREVSSU5HLAorICAgIENTU19QUk9QX01BUktFUl9FTkQsCisgICAgQ1NTX1BST1BfTUFS
S0VSX01JRCwKKyAgICBDU1NfUFJPUF9NQVJLRVJfU1RBUlQsCisgICAgQ1NTX1BST1BfU0hBUEVf
UkVOREVSSU5HLAorICAgIENTU19QUk9QX1NUUk9LRSwKKyAgICBDU1NfUFJPUF9TVFJPS0VfREFT
SEFSUkFZLAorICAgIENTU19QUk9QX1NUUk9LRV9EQVNIT0ZGU0VULAorICAgIENTU19QUk9QX1NU
Uk9LRV9MSU5FQ0FQLAorICAgIENTU19QUk9QX1NUUk9LRV9MSU5FSk9JTiwKKyAgICBDU1NfUFJP
UF9TVFJPS0VfTUlURVJMSU1JVCwKKyAgICBDU1NfUFJPUF9TVFJPS0VfT1BBQ0lUWSwKKyAgICBD
U1NfUFJPUF9TVFJPS0VfV0lEVEgsCisgICAgQ1NTX1BST1BfVEVYVF9SRU5ERVJJTkcsCisgICAg
Q1NTX1BST1BfQUxJR05NRU5UX0JBU0VMSU5FLAorICAgIENTU19QUk9QX0JBU0VMSU5FX1NISUZU
LAorICAgIENTU19QUk9QX0RPTUlOQU5UX0JBU0VMSU5FLAorICAgIENTU19QUk9QX0dMWVBIX09S
SUVOVEFUSU9OX0hPUklaT05UQUwsCisgICAgQ1NTX1BST1BfR0xZUEhfT1JJRU5UQVRJT05fVkVS
VElDQUwsCisgICAgQ1NTX1BST1BfS0VSTklORywKKyAgICBDU1NfUFJPUF9URVhUX0FOQ0hPUiwK
KyAgICBDU1NfUFJPUF9XUklUSU5HX01PREUKKyNlbmRpZgogfTsKIAogY29uc3QgdW5zaWduZWQg
bnVtQ29tcHV0ZWRQcm9wZXJ0aWVzID0gc2l6ZW9mKGNvbXB1dGVkUHJvcGVydGllcykgLyBzaXpl
b2YoY29tcHV0ZWRQcm9wZXJ0aWVzWzBdKTsKQEAgLTE2NTQsNiArMTY5OCwxMCBAQCBQYXNzUmVm
UHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjCiAgICAgICAgIGNhc2UgQ1NTX1BST1Bf
X1dFQktJVF9URVhUX1NUUk9LRToKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGUgYWJvdmUgYXJl
IHVuaW1wbGVtZW50ZWQuCiAgICAgICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoU1ZHKQorICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGdldFNWR1Byb3BlcnR5Q1NTVmFsdWUo
cHJvcGVydHlJRCwgRG9Ob3RVcGRhdGVMYXlvdXQpOworI2VuZGlmCiAgICAgfQogCiAgICAgTE9H
X0VSUk9SKCJ1bmltcGxlbWVudGVkIHByb3BlcnR5SUQ6ICVkIiwgcHJvcGVydHlJRCk7CkluZGV4
OiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oCShyZXZpc2lvbiAyNjEwMSkKKysrIGNzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsOSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uPiBtYWtlTXV0YWJsZSgpOwogCiAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZ2V0UHJvcGVy
dHlDU1NWYWx1ZShpbnQgcHJvcGVydHlJRCwgRVVwZGF0ZUxheW91dCkgY29uc3Q7CisjaWYgRU5B
QkxFKFNWRykKKyAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBnZXRTVkdQcm9wZXJ0eUNTU1ZhbHVl
KGludCBwcm9wZXJ0eUlELCBFVXBkYXRlTGF5b3V0KSBjb25zdDsKKyNlbmRpZgogCiAgICAgUGFz
c1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gY29weUluaGVyaXRhYmxlUHJvcGVy
dGllcygpIGNvbnN0OwogCkluZGV4OiBjc3MvQ1NTR3JhbW1hci55Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNz
cy9DU1NHcmFtbWFyLnkJKHJldmlzaW9uIDI2MTAxKQorKysgY3NzL0NTU0dyYW1tYXIueQkod29y
a2luZyBjb3B5KQpAQCAtNDAsMTEgKzQwLDYgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNs
dWRlIDxzdHJpbmcuaD4KIAotI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAia3N2Z2Nzc3Byb3Bl
cnRpZXMuaCIKLSNpbmNsdWRlICJrc3ZnY3NzdmFsdWVzLmgiCi0jZW5kaWYKLQogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCkBAIC0xMDAyLDEw
ICs5OTcsNiBAQCBwcm9wZXJ0eToKICAgICAgICAgY29uc3QgY2hhciogcyA9IHN0ci5hc2NpaSgp
OwogICAgICAgICBpbnQgbCA9IHN0ci5sZW5ndGgoKTsKICAgICAgICAgJCQgPSBnZXRQcm9wZXJ0
eUlEKHMsIGwpOwotI2lmIEVOQUJMRShTVkcpCi0gICAgICAgIGlmICgkJCA9PSAwKQotICAgICAg
ICAgICAgJCQgPSBTVkc6OmdldFNWR0NTU1Byb3BlcnR5SUQocywgbCk7Ci0jZW5kaWYKICAgICB9
CiAgIDsKIApAQCAtMTA1OCwxMCArMTA0OSw2IEBAIHRlcm06CiAgIHwgSURFTlQgbWF5YmVfc3Bh
Y2UgewogICAgICAgRGVwcmVjYXRlZFN0cmluZyBzdHIgPSBkZXByZWNhdGVkU3RyaW5nKCQxKTsK
ICAgICAgICQkLmlkID0gZ2V0VmFsdWVJRChzdHIubG93ZXIoKS5sYXRpbjEoKSwgc3RyLmxlbmd0
aCgpKTsKLSNpZiBFTkFCTEUoU1ZHKQotICAgICAgaWYgKCQkLmlkID09IDApCi0gICAgICAgICAg
JCQuaWQgPSBTVkc6OmdldFNWR0NTU1ZhbHVlSUQoc3RyLmxvd2VyKCkubGF0aW4xKCksIHN0ci5s
ZW5ndGgoKSk7Ci0jZW5kaWYKICAgICAgICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0lERU5UOwogICAgICAgJCQuc3RyaW5nID0gJDE7CiAgIH0KSW5kZXg6IGNzcy9DU1NQYXJzZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGNzcy9DU1NQYXJzZXIuY3BwCShyZXZpc2lvbiAyNjEwMSkKKysr
IGNzcy9DU1NQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDg3LDYgKzE0ODcsMTEgQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgIGNhc2UgQ1NTX1BS
T1BfVEVYVF9PVkVSTElORToKICAgICBjYXNlIENTU19QUk9QX1RFWFRfVU5ERVJMSU5FOgogICAg
ICAgICByZXR1cm4gZmFsc2U7CisjaWYgRU5BQkxFKFNWRykKKyAgICBkZWZhdWx0OgorICAgICAg
ICBpZiAocGFyc2VTVkdWYWx1ZShwcm9wSWQsIGltcG9ydGFudCkpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmICh2YWxpZF9wcmltaXRpdmUpIHsKQEAg
LTE1MDcsMTAgKzE1MTIsNiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElk
LCBiCiAgICAgICAgIH0KICAgICAgICAgZGVsZXRlIHBhcnNlZFZhbHVlOwogICAgIH0KLSNpZiBF
TkFCTEUoU1ZHKQotICAgIGlmIChwYXJzZVNWR1ZhbHVlKHByb3BJZCwgaW1wb3J0YW50KSkKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKSW5kZXg6
IGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjc3MvQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDI2MTAxKQorKysgY3NzL0NTU1N0eWxlRGVjbGFyYXRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiQ1NTUHJv
cGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJEZXByZWNhdGVk
VmFsdWVMaXN0LmgiCi0jaW5jbHVkZSAia3N2Z2Nzc3Byb3BlcnRpZXMuaCIKICNpbmNsdWRlIDxj
dHlwZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MSwxMiArNTAsNyBAQCBzdGF0aWMg
aW50IHByb3BlcnR5SUQoY29uc3QgU3RyaW5nJiBzKQogICAgICAgICBidWZmZXJbaV0gPSB0b2xv
d2VyKGMpOwogICAgIH0KIAotICAgIGludCBwcm9wSUQgPSBnZXRQcm9wZXJ0eUlEKGJ1ZmZlciwg
bGVuKTsKLSNpZiBFTkFCTEUoU1ZHKQotICAgIGlmICghcHJvcElEKQotICAgICAgICBwcm9wSUQg
PSBTVkc6OmdldFNWR0NTU1Byb3BlcnR5SUQoYnVmZmVyLCBsZW4pOwotI2VuZGlmCi0gICAgcmV0
dXJuIHByb3BJRDsKKyAgICByZXR1cm4gZ2V0UHJvcGVydHlJRChidWZmZXIsIGxlbik7CiB9CiAK
IENTU1N0eWxlRGVjbGFyYXRpb246OkNTU1N0eWxlRGVjbGFyYXRpb24oQ1NTUnVsZSogcGFyZW50
KQpJbmRleDogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gMjYxMDEpCisrKyBjc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzNzgsMTEgKzQzNzgsMTIgQEAgdm9pZCBDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9U
RVhUX0RFQ09SQVRJT05TX0lOX0VGRkVDVDoKICAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfVEVY
VF9TVFJPS0U6CiAgICAgICAgIHJldHVybjsKLSAgICB9CiAjaWYgRU5BQkxFKFNWRykKLSAgICAv
LyBUcnkgdGhlIFNWRyBwcm9wZXJ0aWVzCi0gICAgYXBwbHlTVkdQcm9wZXJ0eShpZCwgdmFsdWUp
OworICAgIGRlZmF1bHQ6CisgICAgICAgIC8vIFRyeSB0aGUgU1ZHIHByb3BlcnRpZXMKKyAgICAg
ICAgYXBwbHlTVkdQcm9wZXJ0eShpZCwgdmFsdWUpOwogI2VuZGlmCisgICAgfQogfQogCiB2b2lk
IENTU1N0eWxlU2VsZWN0b3I6Om1hcEJhY2tncm91bmRBdHRhY2htZW50KEJhY2tncm91bmRMYXll
ciogbGF5ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKSW5kZXg6IGtzdmcyL2Nzcy9DU1NQcm9wZXJ0eU5h
bWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCShyZXZp
c2lvbiAyNjEwMSkKKysrIGtzdmcyL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCSh3b3JraW5nIGNv
cHkpCkBAIC0yMiw3ICsyMiw3IEBAIGNvbG9yLXJlbmRlcmluZwogZmlsbAogZmlsbC1vcGFjaXR5
CiBmaWxsLXJ1bGUKLWZvbnQtc2l6ZS1hZGp1c3QKKyNmb250LXNpemUtYWRqdXN0CiBpbWFnZS1y
ZW5kZXJpbmcKIG1hcmtlcgogbWFya2VyLWVuZApJbmRleDoga3N2ZzIvY3NzL1NWR0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvY3NzL1NWR0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDApCisrKyBrc3ZnMi9jc3MvU1ZH
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwy
NzkgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtp
dC5vcmc+CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1
ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgorCisjaW5jbHVkZSAiQ1NTUHJvcGVy
dHlOYW1lcy5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKyNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KyAgICAKK1Bhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6
Z2V0U1ZHUHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvcGVydHlJRCwgRVVwZGF0ZUxheW91dCB1cGRh
dGVMYXlvdXQpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IG1fbm9kZS5nZXQoKTsKKyAgICBp
ZiAoIW5vZGUpCisgICAgICAgIHJldHVybiAwOworICAgIAorICAgIC8vIE1ha2Ugc3VyZSBvdXIg
bGF5b3V0IGlzIHVwIHRvIGRhdGUgYmVmb3JlIHdlIGFsbG93IGEgcXVlcnkgb24gdGhlc2UgYXR0
cmlidXRlcy4KKyAgICBpZiAodXBkYXRlTGF5b3V0KQorICAgICAgICBub2RlLT5kb2N1bWVudCgp
LT51cGRhdGVMYXlvdXQoKTsKKyAgICAgICAgCisgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gbm9k
ZS0+Y29tcHV0ZWRTdHlsZSgpOworICAgIGlmICghc3R5bGUpCisgICAgICAgIHJldHVybiAwOwor
ICAgIAorICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9IHN0eWxlLT5zdmdTdHls
ZSgpOworICAgIGlmICghc3ZnU3R5bGUpCisgICAgICAgIHJldHVybiAwOworICAgIAorICAgIHN3
aXRjaCAoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4ocHJvcGVydHlJRCkpIHsKKyAgICAgICAg
Y2FzZSBDU1NfUFJPUF9DTElQX1JVTEU6IHsKKyAgICAgICAgICAgIGlmIChzdmdTdHlsZS0+Y2xp
cFJ1bGUoKSA9PSBSVUxFX05PTlpFUk8pCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQ
cmltaXRpdmVWYWx1ZShDU1NfVkFMX05PTlpFUk8pOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9FVkVOT0REKTsK
KyAgICAgICAgfQorICAgICAgICBjYXNlIENTU19QUk9QX0ZMT09EX09QQUNJVFk6CisgICAgICAg
ICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHN2Z1N0eWxlLT5mbG9vZE9wYWNpdHko
KSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOworICAgICAgICBjYXNlIENTU19QUk9Q
X1NUT1BfT1BBQ0lUWToKKyAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUo
c3ZnU3R5bGUtPnN0b3BPcGFjaXR5KCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsK
KyAgICAgICAgY2FzZSBDU1NfUFJPUF9QT0lOVEVSX0VWRU5UUzogeworICAgICAgICAgICAgc3dp
dGNoIChzdmdTdHlsZS0+cG9pbnRlckV2ZW50cygpKSB7CisgICAgICAgICAgICBjYXNlIFBFX05P
TkU6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFM
X05PTkUpOworICAgICAgICAgICAgY2FzZSBQRV9TVFJPS0U6CisgICAgICAgICAgICAgICAgcmV0
dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX1NUUk9LRSk7CisgICAgICAgICAgICBj
YXNlIFBFX0ZJTEw6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1
ZShDU1NfVkFMX0ZJTEwpOworICAgICAgICAgICAgY2FzZSBQRV9QQUlOVEVEOgorICAgICAgICAg
ICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9QQUlOVEVEKTsKKyAg
ICAgICAgICAgIGNhc2UgUEVfVklTSUJMRToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENT
U1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfVklTSUJMRSk7CisgICAgICAgICAgICBjYXNlIFBFX1ZJ
U0lCTEVfU1RST0tFOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFs
dWUoQ1NTX1ZBTF9WSVNJQkxFU1RST0tFKTsKKyAgICAgICAgICAgIGNhc2UgUEVfVklTSUJMRV9G
SUxMOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZB
TF9WSVNJQkxFRklMTCk7CisgICAgICAgICAgICBjYXNlIFBFX1ZJU0lCTEVfUEFJTlRFRDoKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfVklTSUJM
RVBBSU5URUQpOworICAgICAgICAgICAgY2FzZSBQRV9BTEw6CisgICAgICAgICAgICAgICAgcmV0
dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0FMTCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICAgICAgY2FzZSBDU1NfUFJPUF9DT0xPUl9JTlRFUlBPTEFUSU9OOiB7Cisg
ICAgICAgICAgICBpZiAoc3ZnU3R5bGUtPmNvbG9ySW50ZXJwb2xhdGlvbigpID09IENJX0FVVE8p
CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0FV
VE8pOworICAgICAgICAgICAgZWxzZSBpZiAoc3ZnU3R5bGUtPmNvbG9ySW50ZXJwb2xhdGlvbigp
ID09IENJX1NSR0IpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1
ZShDU1NfVkFMX1NSR0IpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVy
biBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9MSU5FQVJSR0IpOworICAgICAgICB9Cisg
ICAgICAgIGNhc2UgQ1NTX1BST1BfQ09MT1JfSU5URVJQT0xBVElPTl9GSUxURVJTOiB7CisgICAg
ICAgICAgICBpZiAoc3ZnU3R5bGUtPmNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMoKSA9PSBDSV9B
VVRPKQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZB
TF9BVVRPKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHN2Z1N0eWxlLT5jb2xvckludGVycG9sYXRp
b25GaWx0ZXJzKCkgPT0gQ0lfU1JHQikKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1By
aW1pdGl2ZVZhbHVlKENTU19WQUxfU1JHQik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0xJTkVBUlJHQik7Cisg
ICAgICAgIH0KKyAgICAgICAgY2FzZSBDU1NfUFJPUF9GSUxMX09QQUNJVFk6CisgICAgICAgICAg
ICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHN2Z1N0eWxlLT5maWxsT3BhY2l0eSgpLCBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CisgICAgICAgIGNhc2UgQ1NTX1BST1BfRklM
TF9SVUxFOiB7CisgICAgICAgICAgICBpZiAoc3ZnU3R5bGUtPmZpbGxSdWxlKCkgPT0gUlVMRV9O
T05aRVJPKQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NT
X1ZBTF9OT05aRVJPKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4g
bmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfRVZFTk9ERCk7CisgICAgICAgIH0KKyAgICAg
ICAgY2FzZSBDU1NfUFJPUF9DT0xPUl9SRU5ERVJJTkc6IHsKKyAgICAgICAgICAgIGlmIChzdmdT
dHlsZS0+Y29sb3JSZW5kZXJpbmcoKSA9PSBDUl9BVVRPKQorICAgICAgICAgICAgICAgIHJldHVy
biBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9BVVRPKTsKKyAgICAgICAgICAgIGVsc2Ug
aWYgKHN2Z1N0eWxlLT5jb2xvclJlbmRlcmluZygpID09IENSX09QVElNSVpFU1BFRUQpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX09QVElNSVpF
U1BFRUQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NT
UHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9PUFRJTUlaRVFVQUxJVFkpOworICAgICAgICB9CisgICAg
ICAgIGNhc2UgQ1NTX1BST1BfSU1BR0VfUkVOREVSSU5HOiB7CisgICAgICAgICAgICBpZiAoc3Zn
U3R5bGUtPmltYWdlUmVuZGVyaW5nKCkgPT0gSVJfQVVUTykKKyAgICAgICAgICAgICAgICByZXR1
cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQVVUTyk7CisgICAgICAgICAgICBlbHNl
IGlmIChzdmdTdHlsZS0+aW1hZ2VSZW5kZXJpbmcoKSA9PSBJUl9PUFRJTUlaRVNQRUVEKQorICAg
ICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9PUFRJTUla
RVNQRUVEKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENT
U1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfT1BUSU1JWkVRVUFMSVRZKTsKKyAgICAgICAgfQorICAg
ICAgICBjYXNlIENTU19QUk9QX1NIQVBFX1JFTkRFUklORzogeworICAgICAgICAgICAgaWYgKHN2
Z1N0eWxlLT5zaGFwZVJlbmRlcmluZygpID09IFNSX0FVVE8pCisgICAgICAgICAgICAgICAgcmV0
dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0FVVE8pOworICAgICAgICAgICAgZWxz
ZSBpZiAoc3ZnU3R5bGUtPnNoYXBlUmVuZGVyaW5nKCkgPT0gU1JfT1BUSU1JWkVTUEVFRCkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfT1BUSU1J
WkVTUEVFRCk7CisgICAgICAgICAgICBlbHNlIGlmIChzdmdTdHlsZS0+c2hhcGVSZW5kZXJpbmco
KSA9PSBTUl9DUklTUEVER0VTKQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0
aXZlVmFsdWUoQ1NTX1ZBTF9DUklTUEVER0VTKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfR0VPTUVUUklDUFJF
Q0lTSU9OKTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIENTU19QUk9QX1NUUk9LRV9MSU5FQ0FQ
OiB7CisgICAgICAgICAgICBpZiAoc3ZnU3R5bGUtPmNhcFN0eWxlKCkgPT0gQnV0dENhcCkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQlVUVCk7
CisgICAgICAgICAgICBlbHNlIGlmIChzdmdTdHlsZS0+Y2FwU3R5bGUoKSA9PSBSb3VuZENhcCkK
KyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfUk9V
TkQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJp
bWl0aXZlVmFsdWUoQ1NTX1ZBTF9TUVVBUkUpOworICAgICAgICB9CisgICAgICAgIGNhc2UgQ1NT
X1BST1BfU1RST0tFX0xJTkVKT0lOOiB7CisgICAgICAgICAgICBpZiAoc3ZnU3R5bGUtPmpvaW5T
dHlsZSgpID09IE1pdGVySm9pbikKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1p
dGl2ZVZhbHVlKENTU19WQUxfTUlURVIpOworICAgICAgICAgICAgZWxzZSBpZiAoc3ZnU3R5bGUt
PmpvaW5TdHlsZSgpID09IFJvdW5kSm9pbikKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENT
U1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfUk9VTkQpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9CRVZFTCk7Cisg
ICAgICAgIH0KKyAgICAgICAgY2FzZSBDU1NfUFJPUF9TVFJPS0VfTUlURVJMSU1JVDoKKyAgICAg
ICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoc3ZnU3R5bGUtPnN0cm9rZU1pdGVy
TGltaXQoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOworICAgICAgICBjYXNlIENT
U19QUk9QX1NUUk9LRV9PUEFDSVRZOgorICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRp
dmVWYWx1ZShzdmdTdHlsZS0+c3Ryb2tlT3BhY2l0eSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X05VTUJFUik7CisgICAgICAgIGNhc2UgQ1NTX1BST1BfVEVYVF9SRU5ERVJJTkc6IHsKKyAgICAg
ICAgICAgIHN3aXRjaCAoc3ZnU3R5bGUtPnRleHRSZW5kZXJpbmcoKSkgeworICAgICAgICAgICAg
Y2FzZSBUUl9BVVRPOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFs
dWUoQ1NTX1ZBTF9BVVRPKTsKKyAgICAgICAgICAgIGNhc2UgVFJfT1BUSU1JWkVTUEVFRDoKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfT1BUSU1J
WkVTUEVFRCk7CisgICAgICAgICAgICBjYXNlIFRSX09QVElNSVpFTEVHSUJJTElUWToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfT1BUSU1JWkVM
RUdJQklMSVRZKTsKKyAgICAgICAgICAgIGNhc2UgVFJfR0VPTUVUUklDUFJFQ0lTSU9OOgorICAg
ICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9HRU9NRVRS
SUNQUkVDSVNJT04pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhc2UgQ1NT
X1BST1BfQUxJR05NRU5UX0JBU0VMSU5FOiB7CisgICAgICAgICAgICBzd2l0Y2ggKHN2Z1N0eWxl
LT5hbGlnbm1lbnRCYXNlbGluZSgpKSB7CisgICAgICAgICAgICBjYXNlIEFCX0FVVE86CisgICAg
ICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0FVVE8pOwor
ICAgICAgICAgICAgY2FzZSBBQl9CQVNFTElORToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3
IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQkFTRUxJTkUpOworICAgICAgICAgICAgY2FzZSBB
Ql9CRUZPUkVfRURHRToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZh
bHVlKENTU19WQUxfQkVGT1JFX0VER0UpOworICAgICAgICAgICAgY2FzZSBBQl9URVhUX0JFRk9S
RV9FREdFOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NT
X1ZBTF9URVhUX0JFRk9SRV9FREdFKTsKKyAgICAgICAgICAgIGNhc2UgQUJfTUlERExFOgorICAg
ICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9NSURETEUp
OworICAgICAgICAgICAgY2FzZSBBQl9DRU5UUkFMOgorICAgICAgICAgICAgICAgIHJldHVybiBu
ZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9DRU5UUkFMKTsKKyAgICAgICAgICAgIGNhc2Ug
QUJfQUZURVJfRURHRToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZh
bHVlKENTU19WQUxfQUZURVJfRURHRSk7CisgICAgICAgICAgICBjYXNlIEFCX1RFWFRfQUZURVJf
RURHRToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19W
QUxfVEVYVF9BRlRFUl9FREdFKTsKKyAgICAgICAgICAgIGNhc2UgQUJfSURFT0dSQVBISUM6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0lERU9H
UkFQSElDKTsKKyAgICAgICAgICAgIGNhc2UgQUJfQUxQSEFCRVRJQzoKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQUxQSEFCRVRJQyk7CisgICAg
ICAgICAgICBjYXNlIEFCX0hBTkdJTkc6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQ
cmltaXRpdmVWYWx1ZShDU1NfVkFMX0hBTkdJTkcpOworICAgICAgICAgICAgY2FzZSBBQl9NQVRI
RU1BVElDQUw6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShD
U1NfVkFMX01BVEhFTUFUSUNBTCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg
Y2FzZSBDU1NfUFJPUF9ET01JTkFOVF9CQVNFTElORTogeworICAgICAgICAgICAgc3dpdGNoIChz
dmdTdHlsZS0+ZG9taW5hbnRCYXNlbGluZSgpKSB7CisgICAgICAgICAgICBjYXNlIERCX0FVVE86
CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0FV
VE8pOworICAgICAgICAgICAgY2FzZSBEQl9VU0VfU0NSSVBUOgorICAgICAgICAgICAgICAgIHJl
dHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9VU0VfU0NSSVBUKTsKKyAgICAgICAg
ICAgIGNhc2UgREJfTk9fQ0hBTkdFOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJp
bWl0aXZlVmFsdWUoQ1NTX1ZBTF9OT19DSEFOR0UpOworICAgICAgICAgICAgY2FzZSBEQl9SRVNF
VF9TSVpFOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NT
X1ZBTF9SRVNFVF9TSVpFKTsKKyAgICAgICAgICAgIGNhc2UgREJfQ0VOVFJBTDoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQ0VOVFJBTCk7Cisg
ICAgICAgICAgICBjYXNlIERCX01JRERMRToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENT
U1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfTUlERExFKTsKKyAgICAgICAgICAgIGNhc2UgREJfVEVY
VF9CRUZPUkVfRURHRToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZh
bHVlKENTU19WQUxfVEVYVF9CRUZPUkVfRURHRSk7CisgICAgICAgICAgICBjYXNlIERCX1RFWFRf
QUZURVJfRURHRToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVl
KENTU19WQUxfVEVYVF9BRlRFUl9FREdFKTsKKyAgICAgICAgICAgIGNhc2UgREJfSURFT0dSQVBI
SUM6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFM
X0lERU9HUkFQSElDKTsKKyAgICAgICAgICAgIGNhc2UgREJfQUxQSEFCRVRJQzoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQUxQSEFCRVRJQyk7
CisgICAgICAgICAgICBjYXNlIERCX0hBTkdJTkc6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5l
dyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0hBTkdJTkcpOworICAgICAgICAgICAgY2FzZSBE
Ql9NQVRIRU1BVElDQUw6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVW
YWx1ZShDU1NfVkFMX01BVEhFTUFUSUNBTCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICAgICAgY2FzZSBDU1NfUFJPUF9URVhUX0FOQ0hPUjogeworICAgICAgICAgICAgaWYgKHN2Z1N0
eWxlLT50ZXh0QW5jaG9yKCkgPT0gVEFfU1RBUlQpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5l
dyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX1NUQVJUKTsKKyAgICAgICAgICAgIGVsc2UgaWYg
KHN2Z1N0eWxlLT50ZXh0QW5jaG9yKCkgPT0gVEFfTUlERExFKQorICAgICAgICAgICAgICAgIHJl
dHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9NSURETEUpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZB
TF9FTkQpOworICAgICAgICB9CisgICAgICAgIGNhc2UgQ1NTX1BST1BfV1JJVElOR19NT0RFOiB7
CisgICAgICAgICAgICBzd2l0Y2ggKHN2Z1N0eWxlLT53cml0aW5nTW9kZSgpKSB7CisgICAgICAg
ICAgICBjYXNlIFdNX0xSVEI6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRp
dmVWYWx1ZShDU1NfVkFMX0xSX1RCKTsKKyAgICAgICAgICAgIGNhc2UgV01fTFI6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0xSKTsKKyAgICAg
ICAgICAgIGNhc2UgV01fUkxUQjoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1p
dGl2ZVZhbHVlKENTU19WQUxfUkxfVEIpOworICAgICAgICAgICAgY2FzZSBXTV9STDoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfUkwpOworICAg
ICAgICAgICAgY2FzZSBXTV9UQlJMOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJp
bWl0aXZlVmFsdWUoQ1NTX1ZBTF9UQl9STCk7CisgICAgICAgICAgICBjYXNlIFdNX1RCOgorICAg
ICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9UQik7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBDU1NfUFJPUF9DTElQX1BBVEg6
CisgICAgICAgIGNhc2UgQ1NTX1BST1BfTUFTSzoKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9FTkFC
TEVfQkFDS0dST1VORDoKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9GSUxURVI6CisgICAgICAgIGNh
c2UgQ1NTX1BST1BfRkxPT0RfQ09MT1I6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfTElHSFRJTkdf
Q09MT1I6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfU1RPUF9DT0xPUjoKKyAgICAgICAgY2FzZSBD
U1NfUFJPUF9DT0xPUl9QUk9GSUxFOgorICAgICAgICBjYXNlIENTU19QUk9QX0ZJTEw6CisgICAg
ICAgIGNhc2UgQ1NTX1BST1BfQkFTRUxJTkVfU0hJRlQ6CisgICAgICAgIGNhc2UgQ1NTX1BST1Bf
R0xZUEhfT1JJRU5UQVRJT05fSE9SSVpPTlRBTDoKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9HTFlQ
SF9PUklFTlRBVElPTl9WRVJUSUNBTDoKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9LRVJOSU5HOgor
ICAgICAgICBjYXNlIENTU19QUk9QX01BUktFUjoKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9NQVJL
RVJfRU5EOgorICAgICAgICBjYXNlIENTU19QUk9QX01BUktFUl9NSUQ6CisgICAgICAgIGNhc2Ug
Q1NTX1BST1BfTUFSS0VSX1NUQVJUOgorICAgICAgICBjYXNlIENTU19QUk9QX1NUUk9LRToKKyAg
ICAgICAgY2FzZSBDU1NfUFJPUF9TVFJPS0VfREFTSEFSUkFZOgorICAgICAgICBjYXNlIENTU19Q
Uk9QX1NUUk9LRV9EQVNIT0ZGU0VUOgorICAgICAgICBjYXNlIENTU19QUk9QX1NUUk9LRV9XSURU
SDoKKyAgICAgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIC8vIElmIHlvdSBj
cmFzaCBoZXJlLCBpdCdzIGJlY2F1c2UgeW91IGFkZGVkIGEgY3NzIHByb3BlcnR5IGFuZCBhcmUg
bm90IGhhbmRsaW5nIGl0CisgICAgICAgIC8vIGluIGVpdGhlciB0aGlzIHN3aXRjaCBzdGF0ZW1l
bnQgb3IgdGhlIG9uZSBpbiBDU1NDb21wdXRlZFN0eWxlRGVsY2FyYXRpb246OmdldFByb3BlcnR5
Q1NTVmFsdWUKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIExPR19F
UlJPUigidW5pbXBsZW1lbnRlZCBwcm9wZXJ0eUlEOiAlZCIsIHByb3BlcnR5SUQpOworICAgIHJl
dHVybiAwOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHKQorCisvLyB2aW06dHM9NDpu
b2V0CkluZGV4OiBrc3ZnMi9jc3MvU1ZHQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3Zn
Mi9jc3MvU1ZHQ1NTUGFyc2VyLmNwcAkocmV2aXNpb24gMjYxMDEpCisrKyBrc3ZnMi9jc3MvU1ZH
Q1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsOCArMzMsNiBAQAogI2luY2x1ZGUg
IkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKICNpbmNsdWRl
ICJTVkdQYWludC5oIgotI2luY2x1ZGUgImtzdmdjc3Nwcm9wZXJ0aWVzLmMiCi0jaW5jbHVkZSAi
a3N2Z2Nzc3ZhbHVlcy5jIgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRTdHJpbmcuaCIKIAogdXNpbmcg
bmFtZXNwYWNlIHN0ZDsKQEAgLTU1LDE2ICs1MywxNiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VT
VkdWYWx1ZShpbnQgcHJvcElkCiAgICAgc3dpdGNoIChwcm9wSWQpIHsKICAgICAvKiBUaGUgY29t
bWVudCB0byB0aGUgcmlnaHQgZGVmaW5lcyBhbGwgdmFsaWQgdmFsdWUgb2YgdGhlc2UKICAgICAg
KiBwcm9wZXJ0aWVzIGFzIGRlZmluZWQgaW4gU1ZHIDEuMSwgQXBwZW5kaXggTi4gUHJvcGVydHkg
aW5kZXggKi8KLSAgICBjYXNlIFNWR0NTU19QUk9QX0FMSUdOTUVOVF9CQVNFTElORToKKyAgICBj
YXNlIENTU19QUk9QX0FMSUdOTUVOVF9CQVNFTElORToKICAgICAvLyBhdXRvIHwgYmFzZWxpbmUg
fCBiZWZvcmUtZWRnZSB8IHRleHQtYmVmb3JlLWVkZ2UgfCBtaWRkbGUgfAogICAgIC8vIGNlbnRy
YWwgfCBhZnRlci1lZGdlIHwgdGV4dC1hZnRlci1lZGdlIHwgaWRlb2dyYXBoaWMgfCBhbHBoYWJl
dGljIHwKICAgICAvLyBoYW5naW5nIHwgbWF0aGVtYXRpY2FsIHwgaW5oZXJpdAogICAgICAgICBp
ZiAoaWQgPT0gQ1NTX1ZBTF9BVVRPIHx8IGlkID09IENTU19WQUxfQkFTRUxJTkUgfHwgaWQgPT0g
Q1NTX1ZBTF9NSURETEUgfHwKLSAgICAgICAgICAoaWQgPj0gU1ZHQ1NTX1ZBTF9CRUZPUkVfRURH
RSAmJiBpZCA8PSBTVkdDU1NfVkFMX01BVEhFTUFUSUNBTCkpCisgICAgICAgICAgKGlkID49IENT
U19WQUxfQkVGT1JFX0VER0UgJiYgaWQgPD0gQ1NTX1ZBTF9NQVRIRU1BVElDQUwpKQogICAgICAg
ICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNl
IFNWR0NTU19QUk9QX0JBU0VMSU5FX1NISUZUOgorICAgIGNhc2UgQ1NTX1BST1BfQkFTRUxJTkVf
U0hJRlQ6CiAgICAgLy8gYmFzZWxpbmUgfCBzdXBlciB8IHN1YiB8IDxwZXJjZW50YWdlPiB8IDxs
ZW5ndGg+IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9CQVNFTElORSB8fCBp
ZCA9PSBDU1NfVkFMX1NVQiB8fAogICAgICAgICAgICBpZCA+PSBDU1NfVkFMX1NVUEVSKQpAQCAt
NzMsMjYgKzcxLDI2IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVNWR1ZhbHVlKGludCBwcm9wSWQK
ICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aHxG
UGVyY2VudCwgZmFsc2UpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1Bf
RE9NSU5BTlRfQkFTRUxJTkU6CisgICAgY2FzZSBDU1NfUFJPUF9ET01JTkFOVF9CQVNFTElORToK
ICAgICAvLyBhdXRvIHwgdXNlLXNjcmlwdCB8IG5vLWNoYW5nZSB8IHJlc2V0LXNpemUgfCBpZGVv
Z3JhcGhpYyB8CiAgICAgLy8gYWxwaGFiZXRpYyB8IGhhbmdpbmcgfCBtYXRoZW1hdGljYWwgfCBj
ZW50cmFsIHwgbWlkZGxlIHwKICAgICAvLyB0ZXh0LWFmdGVyLWVkZ2UgfCB0ZXh0LWJlZm9yZS1l
ZGdlIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9BVVRPIHx8IGlkID09IENT
U19WQUxfTUlERExFIHx8Ci0gICAgICAgICAgKGlkID49IFNWR0NTU19WQUxfVVNFX1NDUklQVCAm
JiBpZCA8PSBTVkdDU1NfVkFMX1JFU0VUX1NJWkUpIHx8Ci0gICAgICAgICAgKGlkID49IFNWR0NT
U19WQUxfQ0VOVFJBTCAmJiBpZCA8PSBTVkdDU1NfVkFMX01BVEhFTUFUSUNBTCkpCisgICAgICAg
ICAgKGlkID49IENTU19WQUxfVVNFX1NDUklQVCAmJiBpZCA8PSBDU1NfVkFMX1JFU0VUX1NJWkUp
IHx8CisgICAgICAgICAgKGlkID49IENTU19WQUxfQ0VOVFJBTCAmJiBpZCA8PSBDU1NfVkFMX01B
VEhFTUFUSUNBTCkpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAg
ICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfRU5BQkxFX0JBQ0tHUk9VTkQ6CisgICAg
Y2FzZSBDU1NfUFJPUF9FTkFCTEVfQkFDS0dST1VORDoKICAgICAvLyBhY2N1bXVsYXRlIHwgbmV3
IFt4XSBbeV0gW3dpZHRoXSBbaGVpZ2h0XSB8IGluaGVyaXQKLSAgICAgICAgaWYgKGlkID09IFNW
R0NTU19WQUxfQUNDVU1VTEFURSkgLy8gVE9ETyA6IG5ldworICAgICAgICBpZiAoaWQgPT0gQ1NT
X1ZBTF9BQ0NVTVVMQVRFKSAvLyBUT0RPIDogbmV3CiAgICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfTUFSS0VS
X1NUQVJUOgotICAgIGNhc2UgU1ZHQ1NTX1BST1BfTUFSS0VSX01JRDoKLSAgICBjYXNlIFNWR0NT
U19QUk9QX01BUktFUl9FTkQ6Ci0gICAgY2FzZSBTVkdDU1NfUFJPUF9NQVNLOgorICAgIGNhc2Ug
Q1NTX1BST1BfTUFSS0VSX1NUQVJUOgorICAgIGNhc2UgQ1NTX1BST1BfTUFSS0VSX01JRDoKKyAg
ICBjYXNlIENTU19QUk9QX01BUktFUl9FTkQ6CisgICAgY2FzZSBDU1NfUFJPUF9NQVNLOgogICAg
ICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9OT05FKQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZl
ID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19VUkkpIHsKQEAgLTEwMiw2MSArMTAwLDYxIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZVNWR1ZhbHVlKGludCBwcm9wSWQKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNh
c2UgU1ZHQ1NTX1BST1BfQ0xJUF9SVUxFOiAgICAgICAgICAgIC8vIG5vbnplcm8gfCBldmVub2Rk
IHwgaW5oZXJpdAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfRklMTF9SVUxFOgotICAgICAgICBpZiAo
aWQgPT0gU1ZHQ1NTX1ZBTF9OT05aRVJPIHx8IGlkID09IFNWR0NTU19WQUxfRVZFTk9ERCkKKyAg
ICBjYXNlIENTU19QUk9QX0NMSVBfUlVMRTogICAgICAgICAgICAvLyBub256ZXJvIHwgZXZlbm9k
ZCB8IGluaGVyaXQKKyAgICBjYXNlIENTU19QUk9QX0ZJTExfUlVMRToKKyAgICAgICAgaWYgKGlk
ID09IENTU19WQUxfTk9OWkVSTyB8fCBpZCA9PSBDU1NfVkFMX0VWRU5PREQpCiAgICAgICAgICAg
ICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZH
Q1NTX1BST1BfU1RST0tFX01JVEVSTElNSVQ6ICAgLy8gPG1pdGVybGltaXQ+IHwgaW5oZXJpdAor
ICAgIGNhc2UgQ1NTX1BST1BfU1RST0tFX01JVEVSTElNSVQ6ICAgLy8gPG1pdGVybGltaXQ+IHwg
aW5oZXJpdAogICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZOdW1i
ZXJ8Rk5vbk5lZywgZmFsc2UpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BS
T1BfU1RST0tFX0xJTkVKT0lOOiAgIC8vIG1pdGVyIHwgcm91bmQgfCBiZXZlbCB8IGluaGVyaXQK
LSAgICAgICAgaWYgKGlkID09IFNWR0NTU19WQUxfTUlURVIgfHwgaWQgPT0gQ1NTX1ZBTF9ST1VO
RCB8fCBpZCA9PSBTVkdDU1NfVkFMX0JFVkVMKQorICAgIGNhc2UgQ1NTX1BST1BfU1RST0tFX0xJ
TkVKT0lOOiAgIC8vIG1pdGVyIHwgcm91bmQgfCBiZXZlbCB8IGluaGVyaXQKKyAgICAgICAgaWYg
KGlkID09IENTU19WQUxfTUlURVIgfHwgaWQgPT0gQ1NTX1ZBTF9ST1VORCB8fCBpZCA9PSBDU1Nf
VkFMX0JFVkVMKQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAg
YnJlYWs7CiAKLSAgICBjYXNlIFNWR0NTU19QUk9QX1NUUk9LRV9MSU5FQ0FQOiAgICAvLyBidXR0
IHwgcm91bmQgfCBzcXVhcmUgfCBpbmhlcml0Ci0gICAgICAgIGlmIChpZCA9PSBTVkdDU1NfVkFM
X0JVVFQgfHwgaWQgPT0gQ1NTX1ZBTF9ST1VORCB8fCBpZCA9PSBDU1NfVkFMX1NRVUFSRSkKKyAg
ICBjYXNlIENTU19QUk9QX1NUUk9LRV9MSU5FQ0FQOiAgICAvLyBidXR0IHwgcm91bmQgfCBzcXVh
cmUgfCBpbmhlcml0CisgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX0JVVFQgfHwgaWQgPT0gQ1NT
X1ZBTF9ST1VORCB8fCBpZCA9PSBDU1NfVkFMX1NRVUFSRSkKICAgICAgICAgICAgIHZhbGlkX3By
aW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBTVkdDU1NfUFJPUF9T
VFJPS0VfT1BBQ0lUWTogICAvLyA8b3BhY2l0eS12YWx1ZT4gfCBpbmhlcml0Ci0gICAgY2FzZSBT
VkdDU1NfUFJPUF9GSUxMX09QQUNJVFk6Ci0gICAgY2FzZSBTVkdDU1NfUFJPUF9TVE9QX09QQUNJ
VFk6Ci0gICAgY2FzZSBTVkdDU1NfUFJPUF9GTE9PRF9PUEFDSVRZOgorICAgIGNhc2UgQ1NTX1BS
T1BfU1RST0tFX09QQUNJVFk6ICAgLy8gPG9wYWNpdHktdmFsdWU+IHwgaW5oZXJpdAorICAgIGNh
c2UgQ1NTX1BST1BfRklMTF9PUEFDSVRZOgorICAgIGNhc2UgQ1NTX1BST1BfU1RPUF9PUEFDSVRZ
OgorICAgIGNhc2UgQ1NTX1BST1BfRkxPT0RfT1BBQ0lUWToKICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZOdW1iZXJ8RlBlcmNlbnQsIGZhbHNlKSk7
CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBTVkdDU1NfUFJPUF9TSEFQRV9SRU5ERVJJTkc6
CisgICAgY2FzZSBDU1NfUFJPUF9TSEFQRV9SRU5ERVJJTkc6CiAgICAgLy8gYXV0byB8IG9wdGlt
aXplU3BlZWQgfCBjcmlzcEVkZ2VzIHwgZ2VvbWV0cmljUHJlY2lzaW9uIHwgaW5oZXJpdAotICAg
ICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9BVVRPIHx8IGlkID09IFNWR0NTU19WQUxfT1BUSU1JWkVT
UEVFRCB8fAotICAgICAgICAgICAgaWQgPT0gU1ZHQ1NTX1ZBTF9DUklTUEVER0VTIHx8IGlkID09
IFNWR0NTU19WQUxfR0VPTUVUUklDUFJFQ0lTSU9OKQorICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZB
TF9BVVRPIHx8IGlkID09IENTU19WQUxfT1BUSU1JWkVTUEVFRCB8fAorICAgICAgICAgICAgaWQg
PT0gQ1NTX1ZBTF9DUklTUEVER0VTIHx8IGlkID09IENTU19WQUxfR0VPTUVUUklDUFJFQ0lTSU9O
KQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAK
LSAgICBjYXNlIFNWR0NTU19QUk9QX1RFWFRfUkVOREVSSU5HOiAgIC8vIGF1dG8gfCBvcHRpbWl6
ZVNwZWVkIHwgb3B0aW1pemVMZWdpYmlsaXR5IHwgZ2VvbWV0cmljUHJlY2lzaW9uIHwgaW5oZXJp
dAotICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9BVVRPIHx8IGlkID09IFNWR0NTU19WQUxfT1BU
SU1JWkVTUEVFRCB8fCBpZCA9PSBTVkdDU1NfVkFMX09QVElNSVpFTEVHSUJJTElUWSB8fAotICAg
ICAgIGlkID09IFNWR0NTU19WQUxfR0VPTUVUUklDUFJFQ0lTSU9OKQorICAgIGNhc2UgQ1NTX1BS
T1BfVEVYVF9SRU5ERVJJTkc6ICAgLy8gYXV0byB8IG9wdGltaXplU3BlZWQgfCBvcHRpbWl6ZUxl
Z2liaWxpdHkgfCBnZW9tZXRyaWNQcmVjaXNpb24gfCBpbmhlcml0CisgICAgICAgIGlmIChpZCA9
PSBDU1NfVkFMX0FVVE8gfHwgaWQgPT0gQ1NTX1ZBTF9PUFRJTUlaRVNQRUVEIHx8IGlkID09IENT
U19WQUxfT1BUSU1JWkVMRUdJQklMSVRZIHx8CisgICAgICAgaWQgPT0gQ1NTX1ZBTF9HRU9NRVRS
SUNQUkVDSVNJT04pCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAg
ICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfSU1BR0VfUkVOREVSSU5HOiAgLy8gYXV0
byB8IG9wdGltaXplU3BlZWQgfAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfQ09MT1JfUkVOREVSSU5H
OiAgLy8gb3B0aW1pemVRdWFsaXR5IHwgaW5oZXJpdAotICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZB
TF9BVVRPIHx8IGlkID09IFNWR0NTU19WQUxfT1BUSU1JWkVTUEVFRCB8fAotICAgICAgICAgICAg
aWQgPT0gU1ZHQ1NTX1ZBTF9PUFRJTUlaRVFVQUxJVFkpCisgICAgY2FzZSBDU1NfUFJPUF9JTUFH
RV9SRU5ERVJJTkc6ICAvLyBhdXRvIHwgb3B0aW1pemVTcGVlZCB8CisgICAgY2FzZSBDU1NfUFJP
UF9DT0xPUl9SRU5ERVJJTkc6ICAvLyBvcHRpbWl6ZVF1YWxpdHkgfCBpbmhlcml0CisgICAgICAg
IGlmIChpZCA9PSBDU1NfVkFMX0FVVE8gfHwgaWQgPT0gQ1NTX1ZBTF9PUFRJTUlaRVNQRUVEIHx8
CisgICAgICAgICAgICBpZCA9PSBDU1NfVkFMX09QVElNSVpFUVVBTElUWSkKICAgICAgICAgICAg
IHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBTVkdD
U1NfUFJPUF9DT0xPUl9QUk9GSUxFOiAvLyBhdXRvIHwgc1JHQiB8IDxuYW1lPiB8IDx1cmk+IGlu
aGVyaXQKLSAgICAgICAgaWYgKGlkID09IENTU19WQUxfQVVUTyB8fCBpZCA9PSBTVkdDU1NfVkFM
X1NSR0IpCisgICAgY2FzZSBDU1NfUFJPUF9DT0xPUl9QUk9GSUxFOiAvLyBhdXRvIHwgc1JHQiB8
IDxuYW1lPiB8IDx1cmk+IGluaGVyaXQKKyAgICAgICAgaWYgKGlkID09IENTU19WQUxfQVVUTyB8
fCBpZCA9PSBDU1NfVkFMX1NSR0IpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVl
OwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfQ09MT1JfSU5URVJQT0xB
VElPTjogICAvLyBhdXRvIHwgc1JHQiB8IGxpbmVhclJHQiB8IGluaGVyaXQKLSAgICBjYXNlIFNW
R0NTU19QUk9QX0NPTE9SX0lOVEVSUE9MQVRJT05fRklMVEVSUzogIAotICAgICAgICBpZiAoaWQg
PT0gQ1NTX1ZBTF9BVVRPIHx8IGlkID09IFNWR0NTU19WQUxfU1JHQiB8fCBpZCA9PSBTVkdDU1Nf
VkFMX0xJTkVBUlJHQikKKyAgICBjYXNlIENTU19QUk9QX0NPTE9SX0lOVEVSUE9MQVRJT046ICAg
Ly8gYXV0byB8IHNSR0IgfCBsaW5lYXJSR0IgfCBpbmhlcml0CisgICAgY2FzZSBDU1NfUFJPUF9D
T0xPUl9JTlRFUlBPTEFUSU9OX0ZJTFRFUlM6ICAKKyAgICAgICAgaWYgKGlkID09IENTU19WQUxf
QVVUTyB8fCBpZCA9PSBDU1NfVkFMX1NSR0IgfHwgaWQgPT0gQ1NTX1ZBTF9MSU5FQVJSR0IpCiAg
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIApAQCAt
MTY0LDI2ICsxNjIsMjYgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUoaW50IHByb3BJ
ZAogICAgICAqIGNvcnJlY3RseSBhbmQgYWxsb3dzIG9wdGltaXphdGlvbiBpbiBhcHBseVJ1bGUo
Li4pCiAgICAgICovCiAKLSAgICBjYXNlIFNWR0NTU19QUk9QX1BPSU5URVJfRVZFTlRTOgorICAg
IGNhc2UgQ1NTX1BST1BfUE9JTlRFUl9FVkVOVFM6CiAgICAgLy8gbm9uZSB8IHZpc2libGVQYWlu
dGVkIHwgdmlzaWJsZUZpbGwgfCB2aXNpYmxlU3Ryb2tlIHwgdmlzaWJsZSB8CiAgICAgLy8gcGFp
bnRlZCB8IGZpbGwgfCBzdHJva2UgfCBub25lIHwgYWxsIHwgaW5oZXJpdAogICAgICAgICBpZiAo
aWQgPT0gQ1NTX1ZBTF9WSVNJQkxFIHx8IGlkID09IENTU19WQUxfTk9ORSB8fAotICAgICAgICAg
IChpZCA+PSBTVkdDU1NfVkFMX1ZJU0lCTEVQQUlOVEVEICYmIGlkIDw9IFNWR0NTU19WQUxfQUxM
KSkKKyAgICAgICAgICAoaWQgPj0gQ1NTX1ZBTF9WSVNJQkxFUEFJTlRFRCAmJiBpZCA8PSBDU1Nf
VkFMX0FMTCkpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBi
cmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfVEVYVF9BTkNIT1I6ICAgIC8vIHN0YXJ0IHwg
bWlkZGxlIHwgZW5kIHwgaW5oZXJpdAorICAgIGNhc2UgQ1NTX1BST1BfVEVYVF9BTkNIT1I6ICAg
IC8vIHN0YXJ0IHwgbWlkZGxlIHwgZW5kIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NT
X1ZBTF9TVEFSVCB8fCBpZCA9PSBDU1NfVkFMX01JRERMRSB8fCBpZCA9PSBDU1NfVkFMX0VORCkK
ICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCi0g
ICAgY2FzZSBTVkdDU1NfUFJPUF9HTFlQSF9PUklFTlRBVElPTl9WRVJUSUNBTDogLy8gYXV0byB8
IDxhbmdsZT4gfCBpbmhlcml0CisgICAgY2FzZSBDU1NfUFJPUF9HTFlQSF9PUklFTlRBVElPTl9W
RVJUSUNBTDogLy8gYXV0byB8IDxhbmdsZT4gfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBD
U1NfVkFMX0FVVE8pIHsKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAvKiBmYWxsdGhyb3VnaCBpbnRlbnRp
b25hbCAqLwotICAgIGNhc2UgU1ZHQ1NTX1BST1BfR0xZUEhfT1JJRU5UQVRJT05fSE9SSVpPTlRB
TDogLy8gPGFuZ2xlPiB8IGluaGVyaXQKKyAgICBjYXNlIENTU19QUk9QX0dMWVBIX09SSUVOVEFU
SU9OX0hPUklaT05UQUw6IC8vIDxhbmdsZT4gfCBpbmhlcml0CiAgICAgICAgIGlmICh2YWx1ZS0+
dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RFRykKICAgICAgICAgICAgIHBhcnNlZFZh
bHVlID0gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHZhbHVlLT5mVmFsdWUsIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfREVHKTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19HUkFEKQpAQCAtMTkyLDEyICsxOTAsMTIgQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlU1ZHVmFsdWUoaW50IHByb3BJZAogICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBuZXcg
Q1NTUHJpbWl0aXZlVmFsdWUodmFsdWUtPmZWYWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19S
QUQpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfRklMTDogICAgICAg
ICAgICAgICAgIC8vIDxwYWludD4gfCBpbmhlcml0Ci0gICAgY2FzZSBTVkdDU1NfUFJPUF9TVFJP
S0U6ICAgICAgICAgICAgICAgLy8gPHBhaW50PiB8IGluaGVyaXQKKyAgICBjYXNlIENTU19QUk9Q
X0ZJTEw6ICAgICAgICAgICAgICAgICAvLyA8cGFpbnQ+IHwgaW5oZXJpdAorICAgIGNhc2UgQ1NT
X1BST1BfU1RST0tFOiAgICAgICAgICAgICAgIC8vIDxwYWludD4gfCBpbmhlcml0CiAgICAgICAg
IHsKICAgICAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX05PTkUpCiAgICAgICAgICAgICAgICAg
cGFyc2VkVmFsdWUgPSBuZXcgU1ZHUGFpbnQoU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfTk9ORSk7
Ci0gICAgICAgICAgICBlbHNlIGlmIChpZCA9PSBTVkdDU1NfVkFMX0NVUlJFTlRDT0xPUikKKyAg
ICAgICAgICAgIGVsc2UgaWYgKGlkID09IENTU19WQUxfQ1VSUkVOVENPTE9SKQogICAgICAgICAg
ICAgICAgIHBhcnNlZFZhbHVlID0gbmV3IFNWR1BhaW50KFNWR1BhaW50OjpTVkdfUEFJTlRUWVBF
X0NVUlJFTlRDT0xPUik7CiAgICAgICAgICAgICBlbHNlIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSkgewogICAgICAgICAgICAgICAgIFJHQkEzMiBjID0gQ29s
b3I6OnRyYW5zcGFyZW50OwpAQCAtMjE1LDcgKzIxMyw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZVNWR1ZhbHVlKGludCBwcm9wSWQKIAogICAgIGNhc2UgQ1NTX1BST1BfQ09MT1I6ICAgICAgICAg
ICAgICAgIC8vIDxjb2xvcj4gfCBpbmhlcml0CiAgICAgICAgIGlmICgoaWQgPj0gQ1NTX1ZBTF9B
UVVBICYmIGlkIDw9IENTU19WQUxfV0lORE9XVEVYVCkgfHwKLSAgICAgICAgICAgKGlkID49IFNW
R0NTU19WQUxfQUxJQ0VCTFVFICYmIGlkIDw9IFNWR0NTU19WQUxfWUVMTE9XR1JFRU4pKQorICAg
ICAgICAgICAoaWQgPj0gQ1NTX1ZBTF9BTElDRUJMVUUgJiYgaWQgPD0gQ1NTX1ZBTF9ZRUxMT1dH
UkVFTikpCiAgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IG5ldyBTVkdDb2xvcihkb21TdHJpbmco
dmFsdWUtPnN0cmluZykpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9
IHBhcnNlU1ZHQ29sb3IoKTsKQEAgLTIyNCwxMyArMjIyLDEzIEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZVNWR1ZhbHVlKGludCBwcm9wSWQKICAgICAgICAgICAgIHZhbHVlTGlzdC0+bmV4dCgpOwog
ICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfU1RPUF9DT0xPUjogLy8gVE9E
TyA6IGljY2NvbG9yCi0gICAgY2FzZSBTVkdDU1NfUFJPUF9GTE9PRF9DT0xPUjoKLSAgICBjYXNl
IFNWR0NTU19QUk9QX0xJR0hUSU5HX0NPTE9SOgorICAgIGNhc2UgQ1NTX1BST1BfU1RPUF9DT0xP
UjogLy8gVE9ETyA6IGljY2NvbG9yCisgICAgY2FzZSBDU1NfUFJPUF9GTE9PRF9DT0xPUjoKKyAg
ICBjYXNlIENTU19QUk9QX0xJR0hUSU5HX0NPTE9SOgogICAgICAgICBpZiAoKGlkID49IENTU19W
QUxfQVFVQSAmJiBpZCA8PSBDU1NfVkFMX1dJTkRPV1RFWFQpIHx8Ci0gICAgICAgICAgIChpZCA+
PSBTVkdDU1NfVkFMX0FMSUNFQkxVRSAmJiBpZCA8PSBTVkdDU1NfVkFMX1lFTExPV0dSRUVOKSkK
KyAgICAgICAgICAgKGlkID49IENTU19WQUxfQUxJQ0VCTFVFICYmIGlkIDw9IENTU19WQUxfWUVM
TE9XR1JFRU4pKQogICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBuZXcgU1ZHQ29sb3IoZG9tU3Ry
aW5nKHZhbHVlLT5zdHJpbmcpKTsKLSAgICAgICAgZWxzZSBpZiAoaWQgPT0gU1ZHQ1NTX1ZBTF9D
VVJSRU5UQ09MT1IpCisgICAgICAgIGVsc2UgaWYgKGlkID09IENTU19WQUxfQ1VSUkVOVENPTE9S
KQogICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBuZXcgU1ZHQ29sb3IoU1ZHQ29sb3I6OlNWR19D
T0xPUlRZUEVfQ1VSUkVOVENPTE9SKTsKICAgICAgICAgZWxzZSAvLyBUT0RPIDogc3ZnY29sb3Ig
KGljY0NvbG9yKQogICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBwYXJzZVNWR0NvbG9yKCk7CkBA
IC0yNDAsMTcgKzIzOCwxNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VTVkdWYWx1ZShpbnQgcHJv
cElkCiAKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFNWR0NTU19QUk9QX1dSSVRJTkdfTU9E
RToKKyAgICBjYXNlIENTU19QUk9QX1dSSVRJTkdfTU9ERToKICAgICAvLyBsci10YiB8IHJsX3Ri
IHwgdGItcmwgfCBsciB8IHJsIHwgdGIgfCBpbmhlcml0Ci0gICAgICAgIGlmIChpZCA+PSBTVkdD
U1NfVkFMX0xSX1RCICYmIGlkIDw9IFNWR0NTU19WQUxfVEIpCisgICAgICAgIGlmIChpZCA+PSBD
U1NfVkFMX0xSX1RCICYmIGlkIDw9IENTU19WQUxfVEIpCiAgICAgICAgICAgICB2YWxpZF9wcmlt
aXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfU1RS
T0tFX1dJRFRIOiAgICAgICAgIC8vIDxsZW5ndGg+IHwgaW5oZXJpdAotICAgIGNhc2UgU1ZHQ1NT
X1BST1BfU1RST0tFX0RBU0hPRkZTRVQ6CisgICAgY2FzZSBDU1NfUFJPUF9TVFJPS0VfV0lEVEg6
ICAgICAgICAgLy8gPGxlbmd0aD4gfCBpbmhlcml0CisgICAgY2FzZSBDU1NfUFJPUF9TVFJPS0Vf
REFTSE9GRlNFVDoKICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBG
TGVuZ3RoIHwgRlBlcmNlbnQsIGZhbHNlKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTVkdD
U1NfUFJPUF9TVFJPS0VfREFTSEFSUkFZOiAgICAgLy8gbm9uZSB8IDxkYXNoYXJyYXk+IHwgaW5o
ZXJpdAorICAgIGNhc2UgQ1NTX1BST1BfU1RST0tFX0RBU0hBUlJBWTogICAgIC8vIG5vbmUgfCA8
ZGFzaGFycmF5PiB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkID09IENTU19WQUxfTk9ORSkKICAg
ICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKQEAgLTI1OCwx
NSArMjU2LDE1IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVNWR1ZhbHVlKGludCBwcm9wSWQKIAog
ICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfS0VSTklORzogICAgICAgICAg
ICAgIC8vIGF1dG8gfCBub3JtYWwgfCA8bGVuZ3RoPiB8IGluaGVyaXQKKyAgICBjYXNlIENTU19Q
Uk9QX0tFUk5JTkc6ICAgICAgICAgICAgICAvLyBhdXRvIHwgbm9ybWFsIHwgPGxlbmd0aD4gfCBp
bmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX0FVVE8gfHwgaWQgPT0gQ1NTX1ZBTF9O
T1JNQUwpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgs
IGZhbHNlKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFNWR0NTU19QUk9QX0NMSVBfUEFU
SDogICAgLy8gPHVyaT4gfCBub25lIHwgaW5oZXJpdAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfRklM
VEVSOgorICAgIGNhc2UgQ1NTX1BST1BfQ0xJUF9QQVRIOiAgICAvLyA8dXJpPiB8IG5vbmUgfCBp
bmhlcml0CisgICAgY2FzZSBDU1NfUFJPUF9GSUxURVI6CiAgICAgICAgIGlmIChpZCA9PSBDU1Nf
VkFMX05PTkUpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBl
bHNlIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSkgewpAQCAt
Mjc3LDE4ICsyNzUsMjEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUoaW50IHByb3BJ
ZAogICAgICAgICBicmVhazsKIAogICAgIC8qIHNob3J0aGFuZCBwcm9wZXJ0aWVzICovCi0gICAg
Y2FzZSBTVkdDU1NfUFJPUF9NQVJLRVI6CisgICAgY2FzZSBDU1NfUFJPUF9NQVJLRVI6CiAgICAg
ewotICAgICAgICBpZiAoIXBhcnNlVmFsdWUoU1ZHQ1NTX1BST1BfTUFSS0VSX1NUQVJULCBpbXBv
cnRhbnQpKQorICAgICAgICBpZiAoIXBhcnNlVmFsdWUoQ1NTX1BST1BfTUFSS0VSX1NUQVJULCBp
bXBvcnRhbnQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBDU1NWYWx1ZSAq
dmFsdWUgPSBwYXJzZWRQcm9wZXJ0aWVzW251bVBhcnNlZFByb3BlcnRpZXMgLSAxXS0+dmFsdWUo
KTsKICAgICAgICAgbV9pbXBsaWNpdFNob3J0aGFuZCA9IHRydWU7Ci0gICAgICAgIGFkZFByb3Bl
cnR5KFNWR0NTU19QUk9QX01BUktFUl9NSUQsIHZhbHVlLCBpbXBvcnRhbnQpOwotICAgICAgICBh
ZGRQcm9wZXJ0eShTVkdDU1NfUFJPUF9NQVJLRVJfRU5ELCB2YWx1ZSwgaW1wb3J0YW50KTsKKyAg
ICAgICAgYWRkUHJvcGVydHkoQ1NTX1BST1BfTUFSS0VSX01JRCwgdmFsdWUsIGltcG9ydGFudCk7
CisgICAgICAgIGFkZFByb3BlcnR5KENTU19QUk9QX01BUktFUl9FTkQsIHZhbHVlLCBpbXBvcnRh
bnQpOwogICAgICAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gZmFsc2U7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KICAgICBkZWZhdWx0OgorICAgICAgICAvLyBJZiB5b3UgY3Jhc2ggaGVy
ZSwgaXQncyBiZWNhdXNlIHlvdSBhZGRlZCBhIGNzcyBwcm9wZXJ0eSBhbmQgYXJlIG5vdCBoYW5k
bGluZyBpdAorICAgICAgICAvLyBpbiBlaXRoZXIgdGhpcyBzd2l0Y2ggc3RhdGVtZW50IG9yIHRo
ZSBvbmUgaW4gQ1NTUGFyc2VyOjpwYXJzZVZhbHVlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4OiBrc3ZnMi9jc3MvU1ZH
Q1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvY3NzL1NWR0NTU1N0eWxl
U2VsZWN0b3IuY3BwCShyZXZpc2lvbiAyNjEwMSkKKysrIGtzdmcyL2Nzcy9TVkdDU1NTdHlsZVNl
bGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2lmIEVOQUJMRShT
VkcpCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogCisjaW5jbHVkZSAiQ1NTUHJvcGVy
dHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDU1NW
YWx1ZUxpc3QuaCIKICNpbmNsdWRlICJTVkdDb2xvci5oIgpAQCAtMzksOCArNDAsNiBAQAogI2lu
Y2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGVEZWZzLmgi
CiAjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgotI2luY2x1ZGUgImtzdmdjc3Nwcm9wZXJ0
aWVzLmgiCi0jaW5jbHVkZSAia3N2Z2Nzc3ZhbHVlcy5oIgogI2luY2x1ZGUgPG1hdGguaD4KICNp
bmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgpAQCAtOTgsNyAr
OTcsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAgICAgc3dp
dGNoIChpZCkKICAgICB7CiAgICAgICAgIC8vIGlkZW50IG9ubHkgcHJvcGVydGllcwotICAgICAg
ICBjYXNlIFNWR0NTU19QUk9QX0FMSUdOTUVOVF9CQVNFTElORToKKyAgICAgICAgY2FzZSBDU1Nf
UFJPUF9BTElHTk1FTlRfQkFTRUxJTkU6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9J
TkhFUklUX0FORF9JTklUSUFMKGFsaWdubWVudEJhc2VsaW5lLCBBbGlnbm1lbnRCYXNlbGluZSkK
ICAgICAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCkBAIC0xMTIsMzQgKzExMSwzNCBAQCB2
b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAgICAgICAgICAgICAgICAg
Y2FzZSBDU1NfVkFMX0JBU0VMSU5FOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0
QWxpZ25tZW50QmFzZWxpbmUoQUJfQkFTRUxJTkUpOwogICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfQkVGT1JFX0VER0U6CisgICAgICAg
ICAgICAgICAgY2FzZSBDU1NfVkFMX0JFRk9SRV9FREdFOgogICAgICAgICAgICAgICAgICAgICBz
dmdzdHlsZS0+c2V0QWxpZ25tZW50QmFzZWxpbmUoQUJfQkVGT1JFX0VER0UpOwogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfVEVYVF9C
RUZPUkVfRURHRToKKyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfVEVYVF9CRUZPUkVfRURH
RToKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldEFsaWdubWVudEJhc2VsaW5lKEFC
X1RFWFRfQkVGT1JFX0VER0UpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICBjYXNlIENTU19WQUxfTUlERExFOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHls
ZS0+c2V0QWxpZ25tZW50QmFzZWxpbmUoQUJfTUlERExFKTsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX0NFTlRSQUw6CisgICAgICAg
ICAgICAgICAgY2FzZSBDU1NfVkFMX0NFTlRSQUw6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0
eWxlLT5zZXRBbGlnbm1lbnRCYXNlbGluZShBQl9DRU5UUkFMKTsKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX0FGVEVSX0VER0U6Cisg
ICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0FGVEVSX0VER0U6CiAgICAgICAgICAgICAgICAg
ICAgIHN2Z3N0eWxlLT5zZXRBbGlnbm1lbnRCYXNlbGluZShBQl9BRlRFUl9FREdFKTsKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX1RF
WFRfQUZURVJfRURHRToKKyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfVEVYVF9BRlRFUl9F
REdFOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0QWxpZ25tZW50QmFzZWxpbmUo
QUJfVEVYVF9BRlRFUl9FREdFKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX0lERU9HUkFQSElDOgorICAgICAgICAgICAgICAgIGNh
c2UgQ1NTX1ZBTF9JREVPR1JBUEhJQzoKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNl
dEFsaWdubWVudEJhc2VsaW5lKEFCX0lERU9HUkFQSElDKTsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX0FMUEhBQkVUSUM6CisgICAg
ICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0FMUEhBQkVUSUM6CiAgICAgICAgICAgICAgICAgICAg
IHN2Z3N0eWxlLT5zZXRBbGlnbm1lbnRCYXNlbGluZShBQl9BTFBIQUJFVElDKTsKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX0hBTkdJ
Tkc6CisgICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0hBTkdJTkc6CiAgICAgICAgICAgICAg
ICAgICAgIHN2Z3N0eWxlLT5zZXRBbGlnbm1lbnRCYXNlbGluZShBQl9IQU5HSU5HKTsKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX01B
VEhFTUFUSUNBTDoKKyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfTUFUSEVNQVRJQ0FMOgog
ICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0QWxpZ25tZW50QmFzZWxpbmUoQUJfTUFU
SEVNQVRJQ0FMKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
ZGVmYXVsdDoKQEAgLTE0OCw3ICsxNDcsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5
U1ZHUHJvcGVydHkoCiAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNh
c2UgU1ZHQ1NTX1BST1BfQkFTRUxJTkVfU0hJRlQ6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfQkFT
RUxJTkVfU0hJRlQ6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9J
TklUSUFMKGJhc2VsaW5lU2hpZnQsIEJhc2VsaW5lU2hpZnQpOwogICAgICAgICAgICAgaWYgKCFw
cmltaXRpdmVWYWx1ZSkKQEAgLTE3NSwyMSArMTc0LDIxIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rv
cjo6YXBwbHlTVkdQcm9wZXJ0eSgKIAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAg
ICAgICAgY2FzZSBTVkdDU1NfUFJPUF9LRVJOSU5HOgorICAgICAgICBjYXNlIENTU19QUk9QX0tF
Uk5JTkc6CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChpc0luaGVyaXQpIHsKLSAgICAgICAg
ICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKFNWR0NTU19QUk9QX0tFUk5JTkcsIGtlcm5pbmcs
IEtlcm5pbmcpCisgICAgICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NfUFJPUF9L
RVJOSU5HLCBrZXJuaW5nLCBLZXJuaW5nKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgaWYgKGlzSW5pdGlhbCkgewotICAgICAgICAgICAg
ICAgIEhBTkRMRV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShTVkdDU1NfUFJPUF9LRVJOSU5HLCBL
ZXJuaW5nLCBLZXJuaW5nKQorICAgICAgICAgICAgICAgIEhBTkRMRV9JTklUSUFMX0NPTkRfV0lU
SF9WQUxVRShDU1NfUFJPUF9LRVJOSU5HLCBLZXJuaW5nLCBLZXJuaW5nKQogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgc3Znc3R5bGUtPnNldEtl
cm5pbmcocHJpbWl0aXZlVmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAg
ICAgICAgY2FzZSBTVkdDU1NfUFJPUF9QT0lOVEVSX0VWRU5UUzoKKyAgICAgICAgY2FzZSBDU1Nf
UFJPUF9QT0lOVEVSX0VWRU5UUzoKICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVS
SVRfQU5EX0lOSVRJQUwocG9pbnRlckV2ZW50cywgUG9pbnRlckV2ZW50cykKICAgICAgICAgICAg
IGlmICghcHJpbWl0aXZlVmFsdWUpCkBAIC0xOTcsMzEgKzE5NiwzMSBAQCB2b2lkIENTU1N0eWxl
U2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKQogICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9BTEw6CisgICAgICAgICAgICAgICAgY2FzZSBD
U1NfVkFMX0FMTDoKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldFBvaW50ZXJFdmVu
dHMoUEVfQUxMKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
Y2FzZSBDU1NfVkFMX05PTkU6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRQb2lu
dGVyRXZlbnRzKFBFX05PTkUpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICBjYXNlIFNWR0NTU19WQUxfVklTSUJMRVBBSU5URUQ6CisgICAgICAgICAgICAgICAg
Y2FzZSBDU1NfVkFMX1ZJU0lCTEVQQUlOVEVEOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHls
ZS0+c2V0UG9pbnRlckV2ZW50cyhQRV9WSVNJQkxFX1BBSU5URUQpOwogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfVklTSUJMRUZJTEw6
CisgICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFMX1ZJU0lCTEVGSUxMOgogICAgICAgICAgICAg
ICAgICAgICBzdmdzdHlsZS0+c2V0UG9pbnRlckV2ZW50cyhQRV9WSVNJQkxFX0ZJTEwpOwogICAg
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxf
VklTSUJMRVNUUk9LRToKKyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfVklTSUJMRVNUUk9L
RToKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldFBvaW50ZXJFdmVudHMoUEVfVklT
SUJMRV9TVFJPS0UpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICBjYXNlIENTU19WQUxfVklTSUJMRToKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNl
dFBvaW50ZXJFdmVudHMoUEVfVklTSUJMRSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9QQUlOVEVEOgorICAgICAgICAgICAgICAg
IGNhc2UgQ1NTX1ZBTF9QQUlOVEVEOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0
UG9pbnRlckV2ZW50cyhQRV9QQUlOVEVEKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX0ZJTEw6CisgICAgICAgICAgICAgICAgY2Fz
ZSBDU1NfVkFMX0ZJTEw6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRQb2ludGVy
RXZlbnRzKFBFX0ZJTEwpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICBjYXNlIFNWR0NTU19WQUxfU1RST0tFOgorICAgICAgICAgICAgICAgIGNhc2UgQ1NTX1ZB
TF9TVFJPS0U6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRQb2ludGVyRXZlbnRz
KFBFX1NUUk9LRSk7CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtMjI5LDcgKzIyOCw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBw
bHlTVkdQcm9wZXJ0eSgKIAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAg
Y2FzZSBTVkdDU1NfUFJPUF9ET01JTkFOVF9CQVNFTElORToKKyAgICAgICAgY2FzZSBDU1NfUFJP
UF9ET01JTkFOVF9CQVNFTElORToKICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVS
SVRfQU5EX0lOSVRJQUwoZG9taW5hbnRCYXNlbGluZSwgRG9taW5hbnRCYXNlbGluZSkKICAgICAg
ICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCkBAIC0yNDAsMzcgKzIzOSwzNyBAQCB2b2lkIENT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgY2FzZSBD
U1NfVkFMX0FVVE86CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXREb21pbmFudEJh
c2VsaW5lKERCX0FVVE8pOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICBjYXNlIFNWR0NTU19WQUxfVVNFX1NDUklQVDoKKyAgICAgICAgICAgICAgICBjYXNlIENT
U19WQUxfVVNFX1NDUklQVDoKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldERvbWlu
YW50QmFzZWxpbmUoREJfVVNFX1NDUklQVCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9OT19DSEFOR0U6CisgICAgICAgICAgICAg
ICAgY2FzZSBDU1NfVkFMX05PX0NIQU5HRToKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUt
PnNldERvbWluYW50QmFzZWxpbmUoREJfTk9fQ0hBTkdFKTsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX1JFU0VUX1NJWkU6CisgICAg
ICAgICAgICAgICAgY2FzZSBDU1NfVkFMX1JFU0VUX1NJWkU6CiAgICAgICAgICAgICAgICAgICAg
IHN2Z3N0eWxlLT5zZXREb21pbmFudEJhc2VsaW5lKERCX1JFU0VUX1NJWkUpOwogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfSURFT0dS
QVBISUM6CisgICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0lERU9HUkFQSElDOgogICAgICAg
ICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0RG9taW5hbnRCYXNlbGluZShEQl9JREVPR1JBUEhJ
Qyk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgU1ZH
Q1NTX1ZBTF9BTFBIQUJFVElDOgorICAgICAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9BTFBIQUJF
VElDOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0RG9taW5hbnRCYXNlbGluZShE
Ql9BTFBIQUJFVElDKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgY2FzZSBTVkdDU1NfVkFMX0hBTkdJTkc6CisgICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFM
X0hBTkdJTkc6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXREb21pbmFudEJhc2Vs
aW5lKERCX0hBTkdJTkcpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICBjYXNlIFNWR0NTU19WQUxfTUFUSEVNQVRJQ0FMOgorICAgICAgICAgICAgICAgIGNhc2Ug
Q1NTX1ZBTF9NQVRIRU1BVElDQUw6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRE
b21pbmFudEJhc2VsaW5lKERCX01BVEhFTUFUSUNBTCk7CiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9DRU5UUkFMOgorICAgICAgICAg
ICAgICAgIGNhc2UgQ1NTX1ZBTF9DRU5UUkFMOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHls
ZS0+c2V0RG9taW5hbnRCYXNlbGluZShEQl9DRU5UUkFMKTsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFMX01JRERMRToKICAgICAgICAgICAg
ICAgICAgICAgc3Znc3R5bGUtPnNldERvbWluYW50QmFzZWxpbmUoREJfTUlERExFKTsKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX1RF
WFRfQUZURVJfRURHRToKKyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfVEVYVF9BRlRFUl9F
REdFOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0RG9taW5hbnRCYXNlbGluZShE
Ql9URVhUX0FGVEVSX0VER0UpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICBjYXNlIFNWR0NTU19WQUxfVEVYVF9CRUZPUkVfRURHRToKKyAgICAgICAgICAgICAg
ICBjYXNlIENTU19WQUxfVEVYVF9CRUZPUkVfRURHRToKICAgICAgICAgICAgICAgICAgICAgc3Zn
c3R5bGUtPnNldERvbWluYW50QmFzZWxpbmUoREJfVEVYVF9CRUZPUkVfRURHRSk7CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGRlZmF1bHQ6CkBAIC0yNzksNyAr
Mjc4LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KAogICAgIAog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBTVkdDU1NfUFJPUF9D
T0xPUl9JTlRFUlBPTEFUSU9OOgorICAgICAgICBjYXNlIENTU19QUk9QX0NPTE9SX0lOVEVSUE9M
QVRJT046CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFM
KGNvbG9ySW50ZXJwb2xhdGlvbiwgQ29sb3JJbnRlcnBvbGF0aW9uKQogICAgICAgICAgICAgaWYg
KCFwcmltaXRpdmVWYWx1ZSkKQEAgLTI4NywxMCArMjg2LDEwIEBAIHZvaWQgQ1NTU3R5bGVTZWxl
Y3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIHN3
aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpCiAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX1NSR0I6CisgICAgICAgICAgICAgICAgY2FzZSBDU1Nf
VkFMX1NSR0I6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRDb2xvckludGVycG9s
YXRpb24oQ0lfU1JHQik7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgIGNhc2UgU1ZHQ1NTX1ZBTF9MSU5FQVJSR0I6CisgICAgICAgICAgICAgICAgY2FzZSBDU1Nf
VkFMX0xJTkVBUlJHQjoKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldENvbG9ySW50
ZXJwb2xhdGlvbihDSV9MSU5FQVJSR0IpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICBjYXNlIENTU19WQUxfQVVUTzoKQEAgLTMwMSw3ICszMDAsNyBAQCB2b2lk
IENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAgICAgCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIFNWR0NTU19QUk9QX0NPTE9SX0lOVEVSUE9M
QVRJT05fRklMVEVSUzoKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9DT0xPUl9JTlRFUlBPTEFUSU9O
X0ZJTFRFUlM6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklU
SUFMKGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMsIENvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMp
CiAgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQpAQCAtMzA5LDEwICszMDgsMTAgQEAg
dm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KAogICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkKICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfU1JHQjoKKyAgICAgICAg
ICAgICAgICBjYXNlIENTU19WQUxfU1JHQjoKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUt
PnNldENvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMoQ0lfU1JHQik7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9MSU5FQVJSR0I6Cisg
ICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0xJTkVBUlJHQjoKICAgICAgICAgICAgICAgICAg
ICAgc3Znc3R5bGUtPnNldENvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMoQ0lfTElORUFSUkdCKTsK
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFM
X0FVVE86CkBAIC0zMjMsNyArMzIyLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNW
R1Byb3BlcnR5KAogICAgICAgICAgICAgCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQot
ICAgICAgICBjYXNlIFNWR0NTU19QUk9QX0NMSVBfUlVMRToKKyAgICAgICAgY2FzZSBDU1NfUFJP
UF9DTElQX1JVTEU6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9J
TklUSUFMKGNsaXBSdWxlLCBDbGlwUnVsZSkKICAgICAgICAgICAgIGlmICghcHJpbWl0aXZlVmFs
dWUpCkBAIC0zMzEsMTAgKzMzMCwxMCBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZH
UHJvcGVydHkoCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2
ZVZhbHVlLT5nZXRJZGVudCgpKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNhc2Ug
U1ZHQ1NTX1ZBTF9OT05aRVJPOgorICAgICAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9OT05aRVJP
OgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0Q2xpcFJ1bGUoUlVMRV9OT05aRVJP
KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdD
U1NfVkFMX0VWRU5PREQ6CisgICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0VWRU5PREQ6CiAg
ICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRDbGlwUnVsZShSVUxFX0VWRU5PREQpOwog
ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBkZWZhdWx0OgpAQCAt
MzQzLDcgKzM0Miw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgK
ICAgICAgICAgCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIFNW
R0NTU19QUk9QX0ZJTExfUlVMRToKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9GSUxMX1JVTEU6CiAg
ICAgICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKGZpbGxSdWxl
LCBGaWxsUnVsZSkKICAgICAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCkBAIC0zNTEsMTAg
KzM1MCwxMCBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkp
CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX05PTlpFUk86
CisgICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFMX05PTlpFUk86CiAgICAgICAgICAgICAgICAg
ICAgIHN2Z3N0eWxlLT5zZXRGaWxsUnVsZShSVUxFX05PTlpFUk8pOwogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfRVZFTk9ERDoKKyAg
ICAgICAgICAgICAgICBjYXNlIENTU19WQUxfRVZFTk9ERDoKICAgICAgICAgICAgICAgICAgICAg
c3Znc3R5bGUtPnNldEZpbGxSdWxlKFJVTEVfRVZFTk9ERCk7CiAgICAgICAgICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzYyLDcgKzM2MSw3IEBAIHZv
aWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAgCiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIFNWR0NTU19QUk9QX1NUUk9LRV9M
SU5FSk9JTjoKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9TVFJPS0VfTElORUpPSU46CiAgICAgICAg
IHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKGpvaW5TdHlsZSwgSm9p
blN0eWxlKQogCkBAIC0zNzEsMTMgKzM3MCwxMyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFw
cGx5U1ZHUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBzd2l0Y2ggKHBy
aW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IGNhc2UgU1ZHQ1NTX1ZBTF9NSVRFUjoKKyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfTUlU
RVI6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRKb2luU3R5bGUoTWl0ZXJKb2lu
KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBDU1Nf
VkFMX1JPVU5EOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0Sm9pblN0eWxlKFJv
dW5kSm9pbik7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNh
c2UgU1ZHQ1NTX1ZBTF9CRVZFTDoKKyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfQkVWRUw6
CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRKb2luU3R5bGUoQmV2ZWxKb2luKTsK
ICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICByZXR1cm47CkBA
IC0zODUsNyArMzg0LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5
KAogICAgICAgICAgICAgCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBj
YXNlIFNWR0NTU19QUk9QX0lNQUdFX1JFTkRFUklORzoKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9J
TUFHRV9SRU5ERVJJTkc6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FO
RF9JTklUSUFMKGltYWdlUmVuZGVyaW5nLCBJbWFnZVJlbmRlcmluZykKICAgICAgICAgICAgIGlm
ICghcHJpbWl0aXZlVmFsdWUpCkBAIC0zOTMsNyArMzkyLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVj
dG9yOjphcHBseVNWR1Byb3BlcnR5KAogICAgICAgICAgICAgCiAgICAgICAgICAgICBzd2l0Y2gg
KHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKQogICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIGNhc2UgU1ZHQ1NTX1ZBTF9PUFRJTUlaRVNQRUVEOgorICAgICAgICAgICAgICAgIGNhc2Ug
Q1NTX1ZBTF9PUFRJTUlaRVNQRUVEOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0
SW1hZ2VSZW5kZXJpbmcoSVJfT1BUSU1JWkVTUEVFRCk7CiAgICAgICAgICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDAyLDcgKzQwMSw3IEBAIHZvaWQg
Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIC8vIGVuZCBvZiBpZGVudCBvbmx5IHByb3BlcnRpZXMKLSAgICAg
ICAgY2FzZSBTVkdDU1NfUFJPUF9GSUxMOgorICAgICAgICBjYXNlIENTU19QUk9QX0ZJTEw6CiAg
ICAgICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKGZpbGxQYWlu
dCwgRmlsbFBhaW50KQogICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSAmJiB2YWx1ZSkg
ewpAQCAtNDEzLDcgKzQxMiw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9w
ZXJ0eSgKICAgICAgICAgICAgIAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAg
ICAgY2FzZSBTVkdDU1NfUFJPUF9TVFJPS0U6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfU1RST0tF
OgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChzdHJv
a2VQYWludCwgU3Ryb2tlUGFpbnQpCiAgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlICYm
IHZhbHVlKSB7CkBAIC00MjQsNyArNDIzLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBs
eVNWR1Byb3BlcnR5KAogICAgICAgICAgICAgCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQotICAgICAgICBjYXNlIFNWR0NTU19QUk9QX1NUUk9LRV9XSURUSDoKKyAgICAgICAgY2FzZSBD
U1NfUFJPUF9TVFJPS0VfV0lEVEg6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhF
UklUX0FORF9JTklUSUFMKHN0cm9rZVdpZHRoLCBTdHJva2VXaWR0aCkKICAgICAgICAgICAgIGlm
ICghcHJpbWl0aXZlVmFsdWUpCkBAIC00MzMsNyArNDMyLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVj
dG9yOjphcHBseVNWR1Byb3BlcnR5KAogICAgICAgICAgICAgc3Znc3R5bGUtPnNldFN0cm9rZVdp
ZHRoKHByaW1pdGl2ZVZhbHVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAg
ICAgIGNhc2UgU1ZHQ1NTX1BST1BfU1RST0tFX0RBU0hBUlJBWToKKyAgICAgICAgY2FzZSBDU1Nf
UFJPUF9TVFJPS0VfREFTSEFSUkFZOgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5ETEVfSU5I
RVJJVF9BTkRfSU5JVElBTChzdHJva2VEYXNoQXJyYXksIFN0cm9rZURhc2hBcnJheSkKICAgICAg
ICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUgJiYgdmFsdWUpIHsKQEAgLTQ0NCw3ICs0NDMsNyBA
QCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAgICAgICAgIAogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBTVkdDU1NfUFJPUF9TVFJP
S0VfREFTSE9GRlNFVDoKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9TVFJPS0VfREFTSE9GRlNFVDoK
ICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoc3Ryb2tl
RGFzaE9mZnNldCwgU3Ryb2tlRGFzaE9mZnNldCkKICAgICAgICAgICAgIGlmICghcHJpbWl0aXZl
VmFsdWUpCkBAIC00NTMsNyArNDUyLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNW
R1Byb3BlcnR5KAogICAgICAgICAgICAgc3Znc3R5bGUtPnNldFN0cm9rZURhc2hPZmZzZXQocHJp
bWl0aXZlVmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2Fz
ZSBTVkdDU1NfUFJPUF9GSUxMX09QQUNJVFk6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfRklMTF9P
UEFDSVRZOgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElB
TChmaWxsT3BhY2l0eSwgRmlsbE9wYWNpdHkpCiAgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZh
bHVlKQpAQCAtNDcxLDcgKzQ3MCw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQ
cm9wZXJ0eSgKICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRGaWxsT3BhY2l0eShmKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfU1RST0tF
X09QQUNJVFk6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfU1RST0tFX09QQUNJVFk6CiAgICAgICAg
IHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHN0cm9rZU9wYWNpdHks
IFN0cm9rZU9wYWNpdHkpCiAgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQpAQCAtNDg5
LDcgKzQ4OCw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAg
ICAgICAgICAgIHN2Z3N0eWxlLT5zZXRTdHJva2VPcGFjaXR5KGYpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBTVkdDU1NfUFJPUF9TVE9QX09QQUNJVFk6Cisg
ICAgICAgIGNhc2UgQ1NTX1BST1BfU1RPUF9PUEFDSVRZOgogICAgICAgICB7CiAgICAgICAgICAg
ICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChzdG9wT3BhY2l0eSwgU3RvcE9wYWNpdHkpCiAg
ICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQpAQCAtNTA3LDcgKzUwNiw3IEBAIHZvaWQg
Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAgICAgIHN2Z3N0eWxl
LT5zZXRTdG9wT3BhY2l0eShmKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAg
ICAgIGNhc2UgU1ZHQ1NTX1BST1BfTUFSS0VSX1NUQVJUOgorICAgICAgICBjYXNlIENTU19QUk9Q
X01BUktFUl9TVEFSVDoKICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5E
X0lOSVRJQUwoc3RhcnRNYXJrZXIsIFN0YXJ0TWFya2VyKQogICAgICAgICAgICAgaWYgKCFwcmlt
aXRpdmVWYWx1ZSkKQEAgLTUyMyw3ICs1MjIsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFw
cGx5U1ZHUHJvcGVydHkoCiAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0U3RhcnRNYXJrZXIocyk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIFNWR0NTU19QUk9Q
X01BUktFUl9NSUQ6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfTUFSS0VSX01JRDoKICAgICAgICAg
ewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobWlkTWFya2VyLCBNaWRN
YXJrZXIpCiAgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQpAQCAtNTM5LDcgKzUzOCw3
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAgICAg
IHN2Z3N0eWxlLT5zZXRNaWRNYXJrZXIocyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQotICAgICAgICBjYXNlIFNWR0NTU19QUk9QX01BUktFUl9FTkQ6CisgICAgICAgIGNhc2UgQ1NT
X1BST1BfTUFSS0VSX0VORDoKICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRf
QU5EX0lOSVRJQUwoZW5kTWFya2VyLCBFbmRNYXJrZXIpCiAgICAgICAgICAgICBpZiAoIXByaW1p
dGl2ZVZhbHVlKQpAQCAtNTU1LDcgKzU1NCw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBw
bHlTVkdQcm9wZXJ0eSgKICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRFbmRNYXJrZXIocyk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIFNWR0NTU19QUk9QX1NU
Uk9LRV9MSU5FQ0FQOgorICAgICAgICBjYXNlIENTU19QUk9QX1NUUk9LRV9MSU5FQ0FQOgogICAg
ICAgICB7CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChjYXBTdHlsZSwg
Q2FwU3R5bGUpCiAgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQpAQCAtNTYzLDcgKzU2
Miw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfQlVUVDoKKyAgICAg
ICAgICAgICAgICBjYXNlIENTU19WQUxfQlVUVDoKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5
bGUtPnNldENhcFN0eWxlKEJ1dHRDYXApOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICBjYXNlIENTU19WQUxfUk9VTkQ6CkBAIC01NzcsNyArNTc2LDcgQEAgdm9p
ZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KAogCiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQotICAgICAgICBjYXNlIFNWR0NTU19QUk9QX1NUUk9LRV9NSVRFUkxJTUlU
OgorICAgICAgICBjYXNlIENTU19QUk9QX1NUUk9LRV9NSVRFUkxJTUlUOgogICAgICAgICB7CiAg
ICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChzdHJva2VNaXRlckxpbWl0LCBT
dHJva2VNaXRlckxpbWl0KQogICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKQEAgLTU5
Myw3ICs1OTIsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAg
ICAgICAgICAgICBzdmdzdHlsZS0+c2V0U3Ryb2tlTWl0ZXJMaW1pdChmKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfRklMVEVSOgorICAg
ICAgICBjYXNlIENTU19QUk9QX0ZJTFRFUjoKICAgICAgICAgewogICAgICAgICAgICAgSEFORExF
X0lOSEVSSVRfQU5EX0lOSVRJQUwoZmlsdGVyLCBGaWx0ZXIpCiAgICAgICAgICAgICBpZiAoIXBy
aW1pdGl2ZVZhbHVlKQpAQCAtNjA4LDcgKzYwNyw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6
YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRGaWx0ZXIocyk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIFNWR0NTU19QUk9QX01B
U0s6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfTUFTSzoKICAgICAgICAgewogICAgICAgICAgICAg
SEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobWFza0VsZW1lbnQsIE1hc2tFbGVtZW50KQogICAg
ICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKQEAgLTYyNCw3ICs2MjMsNyBAQCB2b2lkIENT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAgICAgICAgICAgICBzdmdzdHlsZS0+
c2V0TWFza0VsZW1lbnQocyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAg
ICBjYXNlIFNWR0NTU19QUk9QX0NMSVBfUEFUSDoKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9DTElQ
X1BBVEg6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFM
KGNsaXBQYXRoLCBDbGlwUGF0aCkKICAgICAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCkBA
IC02NDAsNyArNjM5LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5
KAogICAgICAgICAgICAgc3Znc3R5bGUtPnNldENsaXBQYXRoKHMpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBTVkdDU1NfUFJPUF9URVhUX0FOQ0hPUjoKKyAg
ICAgICAgY2FzZSBDU1NfUFJPUF9URVhUX0FOQ0hPUjoKICAgICAgICAgewogICAgICAgICAgICAg
SEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwodGV4dEFuY2hvciwgVGV4dEFuY2hvcikKICAgICAg
ICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCkBAIC02NjIsMTEgKzY2MSwxMSBAQCB2b2lkIENT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfV1JJVElOR19N
T0RFOgorICAgICAgICBjYXNlIENTU19QUk9QX1dSSVRJTkdfTU9ERToKICAgICAgICAgewogICAg
ICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwod3JpdGluZ01vZGUsIFdyaXRpbmdN
b2RlKQogICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlKQotICAgICAgICAgICAgICAgIHN2
Z3N0eWxlLT5zZXRXcml0aW5nTW9kZSgoRVdyaXRpbmdNb2RlKShwcmltaXRpdmVWYWx1ZS0+Z2V0
SWRlbnQoKSAtIFNWR0NTU19WQUxfTFJfVEIpKTsKKyAgICAgICAgICAgICAgICBzdmdzdHlsZS0+
c2V0V3JpdGluZ01vZGUoKEVXcml0aW5nTW9kZSkocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkg
LSBDU1NfVkFMX0xSX1RCKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfSAgICAgICAK
ICNpZiAwCkBAIC02OTAsNyArNjg5LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNW
R1Byb3BlcnR5KAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICNlbmRpZgotICAgICAg
ICBjYXNlIFNWR0NTU19QUk9QX1NUT1BfQ09MT1I6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfU1RP
UF9DT0xPUjoKICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJ
QUwoc3RvcENvbG9yLCBTdG9wQ29sb3IpOwogCkBAIC03MDcsNyArNzA2LDcgQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KAogICAgICAgICAgICAgc3Znc3R5bGUtPnNl
dFN0b3BDb2xvcihjb2wpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICBj
YXNlIFNWR0NTU19QUk9QX0xJR0hUSU5HX0NPTE9SOgorICAgICAgIGNhc2UgQ1NTX1BST1BfTElH
SFRJTkdfQ09MT1I6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9J
TklUSUFMKGxpZ2h0aW5nQ29sb3IsIExpZ2h0aW5nQ29sb3IpOwogCkBAIC03MjQsNyArNzIzLDcg
QEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KAogICAgICAgICAgICAg
c3Znc3R5bGUtPnNldExpZ2h0aW5nQ29sb3IoY29sKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9Ci0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfRkxPT0RfT1BBQ0lUWToKKyAgICAgICAg
Y2FzZSBDU1NfUFJPUF9GTE9PRF9PUEFDSVRZOgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5E
TEVfSU5IRVJJVF9BTkRfSU5JVElBTChmbG9vZE9wYWNpdHksIEZsb29kT3BhY2l0eSkKICAgICAg
ICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCkBAIC03NDIsNyArNzQxLDcgQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KAogICAgICAgICAgICAgc3Znc3R5bGUtPnNl
dEZsb29kT3BhY2l0eShmKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAg
IGNhc2UgU1ZHQ1NTX1BST1BfRkxPT0RfQ09MT1I6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfRkxP
T0RfQ09MT1I6CiAgICAgICAgIHsKICAgICAgICAgICAgIENvbG9yIGNvbDsKICAgICAgICAgICAg
IGlmIChpc0luaXRpYWwpCkBAIC03NjIsNiArNzYxLDkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9y
OjphcHBseVNWR1Byb3BlcnR5KAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIElmIHlvdSBjcmFzaCBoZXJlLCBpdCdzIGJlY2F1
c2UgeW91IGFkZGVkIGEgY3NzIHByb3BlcnR5IGFuZCBhcmUgbm90IGhhbmRsaW5nIGl0CisgICAg
ICAgICAgICAvLyBpbiBlaXRoZXIgdGhpcyBzd2l0Y2ggc3RhdGVtZW50IG9yIHRoZSBvbmUgaW4g
Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eQorICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogfQpJbmRleDoga3N2ZzIvc2Ny
aXB0cy9jc3NtYWtlcHJvcHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc2NyaXB0cy9jc3NtYWtlcHJv
cHMJKHJldmlzaW9uIDI2MTAxKQorKysga3N2ZzIvc2NyaXB0cy9jc3NtYWtlcHJvcHMJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTg0ICswLDAgQEAKLSMhL3Vzci9iaW4vcGVybCAtdwotIwotIyAgIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgbGlicmFyaWVzCi0jCi0jICAgQ29weXJpZ2h0IChD
KSAxOTk5IExhcnMgS25vbGwgKGtub2xsQG1waS1oZC5tcGcuZGUpCi0jICAgICAgICAgICAgICAg
ICAyMDA0LTIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uICh3aWxkZm94QGtkZS5vcmcpCi0jCi0jICAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgotIyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCi0jICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCi0jICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotIwotIyAgIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotIyAgIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCi0jICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSMgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KLSMKLSMgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0jICAgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
LSMgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAotIyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotIwotCi11
c2Ugc3RyaWN0OwotCi1teSAkbnNGdWxsID0gJEFSR1ZbMV07Ci1teSAkbnMgPSAkbnNGdWxsOyAk
bnMgPX4gcy9LLy87Ci1teSAkYmFzZW5hbWUgPSAiY3NzcHJvcGVydGllcyI7Ci1pZiAoZGVmaW5l
ZCgkQVJHVlsyXSkgJiYgJEFSR1ZbMl0gZXEgIi1mIikgewotICAgIG15ICRpbnB1dGZpbGUgPSAk
QVJHVlszXTsKLSAgICAkaW5wdXRmaWxlID1+IG0vKC4qKVwuaW4vOwotICAgICRiYXNlbmFtZSA9
ICQxOwotfQotCi1teSAkZmlsZWMgPSAiJGJhc2VuYW1lLmMiOwotbXkgJGZpbGVoID0gIiRiYXNl
bmFtZS5oIjsKLW15ICRmaWxlaW4gPSAiJGJhc2VuYW1lLmluIjsKLW15ICRmaWxlZ3BlcmYgPSAi
JGJhc2VuYW1lLmdwZXJmIjsKLQotb3BlbiBJTiwgJGZpbGVpbiBvciBkaWUgIkNhbid0IG9wZW4g
JGZpbGVpblxuIjsKLW9wZW4gSEVBREVSLCAiPiRmaWxlaCIgb3IgZGllICJDYW4ndCBvcGVuICRm
aWxlaFxuIjsKLW9wZW4gT1VULCAiPiRmaWxlZ3BlcmYiIG9yIGRpZSAiQ2FuJ3Qgb3BlbiAkZmls
ZWdwZXJmXG4iOwotCi1wcmludCBPVVQgIiV7XG4vKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxs
eSBnZW5lcmF0ZWQgZnJvbSAkZmlsZWluIGJ5IGNzc21ha2Vwcm9wcywgZG8gbm90IGVkaXQgKi9c
biNpbmNsdWRlIFwiJGZpbGVoXCJcbiV9XG4iOwotcHJpbnQgT1VUICJzdHJ1Y3QgY3NzX3Byb3Ag
e1xuICAgIGNvbnN0IGNoYXIqIG5hbWU7XG4gICAgaW50IGlkO1xufTtcblxuIjsKLXByaW50IE9V
VCAic3RhdGljIGNvbnN0IHN0cnVjdCBjc3NfcHJvcCAqZmluZCR7bnN9UHJvcCAocmVnaXN0ZXIg
Y29uc3QgY2hhciAqc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTtcblxuJSVcbiI7Ci0K
LXByaW50IEhFQURFUiAiLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZy
b20gJGZpbGVpbiBieSBjc3NtYWtlcHJvcHMsIGRvIG5vdCBlZGl0ICovXG4vKiBDb3B5cmlnaHQg
MTk5OSBMYXJzIEtub2xsICovXG5cbiNpZm5kZWYgJHtuc0Z1bGx9X0NTU1BST1BFUlRJRVNfSFxu
I2RlZmluZSAke25zRnVsbH1fQ1NTUFJPUEVSVElFU19IXG5cbiI7Ci0KLW15ICVhbWFwID0gKCk7
Ci1teSBAYSA9ICgpOwotCi1teSAkbnVtID0gMDsKLWlmICgkbnNGdWxsIG5lICJLRE9NIikgewot
CSRudW0gPSAxMDAwMTsgIyBCaWdnZXIgdGhhbiBhbGwgcHJvcGVydGllcyBmcm9tIEhUTUwgQ1NT
Ci0KLQlwcmludCBIRUFERVIgIiNkZWZpbmUgJHtuc31DU1NfUFJPUF9JTlZBTElEIDBcbiI7Ci0J
cHJpbnQgSEVBREVSICIjZGVmaW5lICR7bnN9Q1NTX1BST1BfTUlOICRudW1cbiI7Ci0KLQkkbnVt
ID0gJG51bSAtIDE7Ci19IGVsc2UgewotCXByaW50IEhFQURFUiAiI2RlZmluZSBDU1NfUFJPUF9J
TlZBTElEIDBcbiI7Ci0JcHJpbnQgSEVBREVSICIjZGVmaW5lIENTU19QUk9QX01JTiAxXG4iOwot
fQotCi13aGlsZSAoPElOPikgewotICAgIGNob21wOwotICAgIG15ICRwcm9wID0gJF87Ci0KLQlp
Zihub3QoJHByb3AgPX4gLyMvKSBhbmQgKGxlbmd0aCgkcHJvcCkgPiAwKSkgewotCSAgICAkbnVt
ID0gJG51bSArIDE7Ci0KLQkgICAgbXkgJHVwID0gdWMoJHByb3ApOwotCSAgICBwdXNoKEBhLCAk
dXApOwotCi0JCW15ICRwdXAgPSAkdXA7Ci0JCSRwdXAgPX4gcy8tL18vZzsKLQotCSAgICAkYW1h
cHskcHVwfSA9ICRudW07Ci0JCQotCQlpZiAoJG5zRnVsbCBlcSAiS0RPTSIpIHsKLQkgICAgCXBy
aW50IE9VVCAkcHJvcCAuICIsIENTU19QUk9QXyIgLiAkcHVwIC4gIlxuIjsKLQkJICAgIHByaW50
IEhFQURFUiAiI2RlZmluZSBDU1NfUFJPUF8iIC4gJHB1cCAuICIgIiAuICRudW0gLiAiXG4iOwot
CQl9IGVsc2UgewotCSAgICAJcHJpbnQgT1VUICRwcm9wIC4gIiwgJHtuc31DU1NfUFJPUF8iIC4g
JHB1cCAuICJcbiI7Ci0JCSAgICBwcmludCBIRUFERVIgIiNkZWZpbmUgJHtuc31DU1NfUFJPUF8i
IC4gJHB1cCAuICIgIiAuICRudW0gLiAiXG4iOwotCQl9Ci0gICAgfQotfQotCi1jbG9zZShJTik7
Ci0KLWlmICgkbnNGdWxsIGVxICJLRE9NIikgewotCXByaW50IEhFQURFUiAiI2RlZmluZSBDU1Nf
UFJPUF9NQVggJG51bVxuIjsKLX0gZWxzZSB7Ci0JcHJpbnQgSEVBREVSICIjZGVmaW5lICR7bnN9
Q1NTX1BST1BfTUFYICRudW1cbiI7Ci19Ci0KLXByaW50IE9VVCAiJSVcbiI7Ci1jbG9zZSBPVVQ7
Ci0KLXByaW50IEhFQURFUiAiXG5uYW1lc3BhY2UgJHtuc0Z1bGx9XG57XG4iOwotcHJpbnQgSEVB
REVSICIgICAgY29uc3QgY2hhciAqZ2V0U1ZHQ1NTUHJvcGVydHlOYW1lKHVuc2lnbmVkIHNob3J0
IGlkKTtcbiI7Ci1wcmludCBIRUFERVIgIiAgICBpbnQgZ2V0U1ZHQ1NTUHJvcGVydHlJRChjb25z
dCBjaGFyICp0YWdTdHIsIGludCBsZW4pO1xuIjsKLXByaW50IEhFQURFUiAifVxuIjsKLQotcHJp
bnQgSEVBREVSICJcbiNlbmRpZlxuIjsKLWNsb3NlIEhFQURFUjsKLQotbXkgJHJlc3VsdCA9IHN5
c3RlbSgiZ3BlcmYgLWMgLWEgLUwgQU5TSS1DIC1HIC1EIC1FIC1DIC1vIC10IC0ta2V5LXBvc2l0
aW9ucz1cIipcIiAtTmZpbmQke25zfVByb3AgLUhoYXNoX3Byb3AgLVd3b3JkbGlzdF9wcm9wIC1E
IC1zIDMgJGZpbGVncGVyZiA+ICRmaWxlYyIpOwotaWYgKCRyZXN1bHQpIHsKLSAgdW5saW5rICIk
ZmlsZWMiOwotICBleGl0ICRyZXN1bHQ7Ci19Ci0KLSMgQXZvaWQgY2xhc2hlcyBpbiBwYXJzZXIu
Y3BwLCB3aGljaCBpbmNsdWRlcyBib3RoIENTU1ZhbHVlS2V5d29yZHMuYyAmIENTU1Byb3BlcnR5
TmFtZXMuYwotb3BlbiBGLCAiPCRmaWxlYyI7Ci1teSAkdG1wID0gIiI7Ci13aGlsZSAoPEY+KSB7
Ci0gICAgcy9UT1RBTF9LRVlXT1JEUy9QUk9QX1RPVEFMX0tFWVdPUkRTLzsKLSAgICBzL01JTl9X
T1JEX0xFTkdUSC9QUk9QX01JTl9XT1JEX0xFTkdUSC87Ci0gICAgcy9NQVhfV09SRF9MRU5HVEgv
UFJPUF9NQVhfV09SRF9MRU5HVEgvOwotICAgIHMvTUlOX0hBU0hfVkFMVUUvUFJPUF9NSU5fSEFT
SF9WQUxVRS87Ci0gICAgcy9NQVhfSEFTSF9WQUxVRS9QUk9QX01BWF9IQVNIX1ZBTFVFLzsKLSAg
ICBzL2xvb2t1cC9sb29rdXBQcm9wL2c7Ci0gICAgJHRtcCA9ICR0bXAgLiAkXzsKLX0KLWNsb3Nl
IEY7Ci1vcGVuIEYsICI+JGZpbGVjIjsKLXByaW50IEYgJHRtcDsKLWNsb3NlIEY7Ci0KLSMgcmVh
ZCB0aGUgaGFzaCBtYXBwaW5ncyAoaXMgdGhlcmUgYSBiZXR0ZXIgd2F5PykKLW15ICVobWFwID0g
KCk7Ci1vcGVuKElOLCAiPCAkZmlsZWMiKTsKLW15ICRpID0gMDsKLXdoaWxlKDxJTj4pIHsKLQlt
eSAkbG9va0ZvciA9ICJDU1NfUFJPUF8iOwotCWlmICgkbnNGdWxsIG5lICJLRE9NIikgewotCQkk
bG9va0ZvciA9ICRucyAuICRsb29rRm9yOwotCX0KLQotCWlmICgvIltcdy1dKyIsICR7bG9va0Zv
cn0oW1x3X10rKS8pIHsKLQkJJGhtYXB7JGFtYXB7JDF9fSA9ICRpOwotCQkkaSArPSAxOwotCX0K
LX0KLWNsb3NlKElOKTsgIAotCi1vcGVuKE9VVCwgIj4+ICRmaWxlYyIpOwotcHJpbnQgT1VUICJc
bm5hbWVzcGFjZSAke25zRnVsbH1cbntcbiI7Ci1wcmludCBPVVQgIlxuXG5zdGF0aWMgY29uc3Qg
dW5zaWduZWQgc2hvcnQgcHJvcExpc3RbXSA9IHtcbiI7Ci1wcmludCBPVVQgIiAgICA2NTUzNSxc
biI7Ci0KLXdoaWxlKGRlZmluZWQgKG15ICRsaW5lID0gc2hpZnQgQGEpKSB7Ci0gICAgbXkgJGwg
PSAkbGluZTsKLQotCWlmKG5vdCgkbCA9fiAvIy8pIGFuZCAobGVuZ3RoKCRsKSA+IDApKSB7Ci0J
CSRsID1+IHkvLS9fLzsKLSAgICAJCi0JCWRpZSBpZiAhbGVuZ3RoKCRobWFweyRhbWFweyRsfX0p
OwotCi0JICAgIHByaW50IE9VVCAiICAgICIgLiRobWFweyRhbWFweyRsfX0uIixcbiI7Ci0JfQot
fQotCi1teSAkbG9va0ZvciA9ICJDU1NfUFJPUF9NQVgiOwotaWYgKCRuc0Z1bGwgbmUgIktET00i
KSB7Ci0JJGxvb2tGb3IgPSAkbnMgLiAkbG9va0ZvcjsKLX0KLQotcHJpbnQgT1VUICIgICAgNjU1
MzVcbn07XG5cbiI7Ci1wcmludCBPVVQgImNvbnN0IGNoYXIgKmdldFNWR0NTU1Byb3BlcnR5TmFt
ZSh1bnNpZ25lZCBzaG9ydCBpZClcbntcbiI7Ci1wcmludCBPVVQgIiAgICBpZiAoIWlkIHx8IGlk
ID4gJGxvb2tGb3IpIHJldHVybiBcIlwiO1xuIjsKLXByaW50IE9VVCAiICAgIHJldHVybiB3b3Jk
bGlzdF9wcm9wW3Byb3BMaXN0W2lkXV0ubmFtZTtcbiI7Ci1wcmludCBPVVQgIn1cbiI7Ci1wcmlu
dCBPVVQgIlxuaW50IGdldFNWR0NTU1Byb3BlcnR5SUQoY29uc3QgY2hhciAqdGFnU3RyLCBpbnQg
bGVuKVxuIjsKLXByaW50IE9VVCAie1xuIjsKLXByaW50IE9VVCAiICAgIGNvbnN0IHN0cnVjdCBj
c3NfcHJvcCAqcHJvcFB0ciA9IGZpbmQke25zfVByb3AodGFnU3RyLCBsZW4pO1xuIjsKLXByaW50
IE9VVCAiICAgIGlmKCFwcm9wUHRyKVxuIjsKLXByaW50IE9VVCAiICAgICAgcmV0dXJuIDA7XG4i
OwotcHJpbnQgT1VUICIgICAgcmV0dXJuIHByb3BQdHItPmlkO1xuIjsKLXByaW50IE9VVCAifVxu
XG4iOwotcHJpbnQgT1VUICJ9XG4iOwpJbmRleDoga3N2ZzIvc2NyaXB0cy9jc3NtYWtldmFsdWVz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtzdmcyL3NjcmlwdHMvY3NzbWFrZXZhbHVlcwkocmV2aXNpb24gMjYx
MDEpCisrKyBrc3ZnMi9zY3JpcHRzL2Nzc21ha2V2YWx1ZXMJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTg1ICswLDAgQEAKLSMhL3Vzci9iaW4vcGVybCAtdwotIwotIyAgIFRoaXMgZmlsZSBpcyBwYXJ0
IG9mIHRoZSBLREUgbGlicmFyaWVzCi0jCi0jICAgQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25v
bGwgKGtub2xsQG1waS1oZC5tcGcuZGUpCi0jICAgICAgICAgICAgICAgICAyMDA0LTIwMDUgTmlr
b2xhcyBaaW1tZXJtYW5uICh3aWxkZm94QGtkZS5vcmcpCi0jCi0jICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotIyAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0j
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0jICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotIwotIyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotIyAgIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0jICAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKLSMgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSMKLSMgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0jICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSMgICB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAotIyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotIwotCi11c2Ugc3RyaWN0OwotCi1t
eSAkbnNGdWxsID0gJEFSR1ZbMV07Ci1teSAkbnMgPSAkbnNGdWxsOyAkbnMgPX4gcy9LLy87Ci1t
eSAkYmFzZW5hbWUgPSAiY3NzdmFsdWVzIjsKLWlmIChkZWZpbmVkKCRBUkdWWzJdKSAmJiAkQVJH
VlsyXSBlcSAiLWYiKSB7Ci0gICAgbXkgJGlucHV0ZmlsZSA9ICRBUkdWWzNdOwotICAgICRpbnB1
dGZpbGUgPX4gbS8oLiopXC5pbi87Ci0gICAgJGJhc2VuYW1lID0gJDE7Ci19Ci0KLW15ICRmaWxl
YyA9ICIkYmFzZW5hbWUuYyI7Ci1teSAkZmlsZWggPSAiJGJhc2VuYW1lLmgiOwotbXkgJGZpbGVp
biA9ICIkYmFzZW5hbWUuaW4iOwotbXkgJGZpbGVncGVyZiA9ICIkYmFzZW5hbWUuZ3BlcmYiOwot
Ci1vcGVuIElOLCAkZmlsZWluIG9yIGRpZSAiQ2FuJ3Qgb3BlbiAkZmlsZWluXG4iOwotb3BlbiBI
RUFERVIsICI+JGZpbGVoIiBvciBkaWUgIkNhbid0IG9wZW4gJGZpbGVoXG4iOwotb3BlbiBPVVQs
ICI+JGZpbGVncGVyZiIgb3IgZGllICJDYW4ndCBvcGVuICRmaWxlZ3BlcmZcbiI7Ci0KLXByaW50
IE9VVCAiJXtcbi8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tICRm
aWxlaW4gYnkgY3NzbWFrZXZhbHVlcywgZG8gbm90IGVkaXQgKi9cbiNpbmNsdWRlIFwiJGZpbGVo
XCJcbiV9XG4iOwotcHJpbnQgT1VUICJzdHJ1Y3QgY3NzX3ZhbCB7XG4gICAgY29uc3QgY2hhciog
bmFtZTtcbiAgICBpbnQgaWQ7XG59O1xuXG4iOwotcHJpbnQgT1VUICJzdGF0aWMgY29uc3Qgc3Ry
dWN0IGNzc192YWwgKmZpbmQke25zfVZhbCAocmVnaXN0ZXIgY29uc3QgY2hhciAqc3RyLCByZWdp
c3RlciB1bnNpZ25lZCBpbnQgbGVuKTtcblxuJSVcbiI7Ci0KLXByaW50IEhFQURFUiAiLyogVGhp
cyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gJGZpbGVpbiBieSBjc3NtYWtl
dmFsdWVzLCBkbyBub3QgZWRpdCAqL1xuLyogQ29weXJpZ2h0IDE5OTkgTGFycyBLbm9sbCAqL1xu
XG4jaWZuZGVmICR7bnNGdWxsfV9DU1NWQUxVRVNfSFxuI2RlZmluZSAke25zRnVsbH1fQ1NTVkFM
VUVTX0hcblxuIjsKLQotbXkgJWFtYXAgPSAoKTsKLQotbXkgJG51bSA9IDA7Ci1pZiAoJG5zRnVs
bCBuZSAiS0RPTSIpIHsKLQkkbnVtID0gMTAwMDE7ICMgQmlnZ2VyIHRoYW4gYWxsIHZhbHVlcyBm
cm9tIEhUTUwgQ1NTCi0KLQlwcmludCBIRUFERVIgIiNkZWZpbmUgJHtuc31DU1NfVkFMX0lOVkFM
SUQgMFxuIjsKLQlwcmludCBIRUFERVIgIiNkZWZpbmUgJHtuc31DU1NfVkFMX01JTiAkbnVtXG4i
OwotCi0gICAgJG51bSA9ICRudW0gLSAxOwotfSBlbHNlIHsKLQlwcmludCBIRUFERVIgIiNkZWZp
bmUgQ1NTX1ZBTF9JTlZBTElEIDBcbiI7Ci0JcHJpbnQgSEVBREVSICIjZGVmaW5lIENTU19WQUxf
TUlOIDFcbiI7Ci19Ci0KLW15IEBhID0gKCk7Ci0KLXdoaWxlICg8SU4+KSB7Ci0gICAgY2hvbXA7
Ci0gICAgbXkgJHByb3AgPSAkXzsKLQotCWlmKG5vdCgkcHJvcCA9fiAvIy8pIGFuZCAobGVuZ3Ro
KCRwcm9wKSA+IDApKSB7Ci0JICAgICRudW0gPSAkbnVtICsgMTsKLQotCSAgICBteSAkdXAgPSB1
YygkcHJvcCk7Ci0JICAgIHB1c2goQGEsICR1cCk7Ci0KLQkJbXkgJHB1cCA9ICR1cDsKLQkJJHB1
cCA9fiBzLy0vXy9nOwotCi0JICAgICRhbWFweyRwdXB9ID0gJG51bTsKLQkJCi0JCWlmICgkbnNG
dWxsIGVxICJLRE9NIikgewotCSAgICAJcHJpbnQgT1VUICRwcm9wIC4gIiwgQ1NTX1ZBTF8iIC4g
JHB1cCAuICJcbiI7Ci0JCSAgICBwcmludCBIRUFERVIgIiNkZWZpbmUgQ1NTX1ZBTF8iIC4gJHB1
cCAuICIgIiAuICRudW0gLiAiXG4iOwotCQl9IGVsc2UgewotCSAgICAJcHJpbnQgT1VUICRwcm9w
IC4gIiwgJHtuc31DU1NfVkFMXyIgLiAkcHVwIC4gIlxuIjsKLQkJICAgIHByaW50IEhFQURFUiAi
I2RlZmluZSAke25zfUNTU19WQUxfIiAuICRwdXAgLiAiICIgLiAkbnVtIC4gIlxuIjsKLQkJfQot
ICAgIH0KLX0KLQotY2xvc2UoSU4pOwotCi1pZiAoJG5zRnVsbCBlcSAiS0RPTSIpIHsKLQlwcmlu
dCBIRUFERVIgIiNkZWZpbmUgQ1NTX1ZBTF9NQVggJG51bVxuIjsKLX0gZWxzZSB7Ci0JcHJpbnQg
SEVBREVSICIjZGVmaW5lICR7bnN9Q1NTX1ZBTF9NQVggJG51bVxuIjsKLX0KLQotcHJpbnQgT1VU
ICIlJVxuIjsKLWNsb3NlIE9VVDsKLQotcHJpbnQgSEVBREVSICJcbm5hbWVzcGFjZSAke25zRnVs
bH1cbntcbiI7Ci1wcmludCBIRUFERVIgIiAgICBjb25zdCBjaGFyKiBnZXRTVkdDU1NWYWx1ZU5h
bWUodW5zaWduZWQgc2hvcnQgaWQpO1xuIjsKLXByaW50IEhFQURFUiAiICAgIGludCBnZXRTVkdD
U1NWYWx1ZUlEKGNvbnN0IGNoYXIgKnRhZ1N0ciwgaW50IGxlbik7XG4iOwotcHJpbnQgSEVBREVS
ICJ9XG4iOwotCi1wcmludCBIRUFERVIgIlxuI2VuZGlmXG4iOwotY2xvc2UgSEVBREVSOwotCi1t
eSAkcmVzdWx0ID0gc3lzdGVtKCJncGVyZiAtYyAtYSAtTCBBTlNJLUMgLUcgLUQgLUUgLUMgLW8g
LXQgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1OZmluZCR7bnN9VmFsIC1IaGFzaF92YWwgLVd3b3Jk
bGlzdF92YWwgLUQgLXMgMyAkZmlsZWdwZXJmID4gJGZpbGVjIik7Ci1pZiAoJHJlc3VsdCkgewot
ICB1bmxpbmsgIiRmaWxlYyI7Ci0gIGV4aXQgJHJlc3VsdDsKLX0KLQotIyBBdm9pZCBjbGFzaGVz
IGluIHBhcnNlci5jcHAsIHdoaWNoIGluY2x1ZGVzIGJvdGggQ1NTVmFsdWVLZXl3b3Jkcy5jICYg
Q1NTUHJvcGVydHlOYW1lcy5jCi1vcGVuIEYsICI8JGZpbGVjIjsKLW15ICR0bXAgPSAiIjsKLXdo
aWxlICg8Rj4pIHsKLSAgICBzL1RPVEFMX0tFWVdPUkRTL1ZBTF9UT1RBTF9LRVlXT1JEUy87Ci0g
ICAgcy9NSU5fV09SRF9MRU5HVEgvVkFMX01JTl9XT1JEX0xFTkdUSC87Ci0gICAgcy9NQVhfV09S
RF9MRU5HVEgvVkFMX01BWF9XT1JEX0xFTkdUSC87Ci0gICAgcy9NSU5fSEFTSF9WQUxVRS9WQUxf
TUlOX0hBU0hfVkFMVUUvOwotICAgIHMvTUFYX0hBU0hfVkFMVUUvVkFMX01BWF9IQVNIX1ZBTFVF
LzsKLSAgICBzL2xvb2t1cC9sb29rdXBWYWwvZzsKLSAgICAkdG1wID0gJHRtcCAuICRfOwotfQot
Y2xvc2UgRjsKLW9wZW4gRiwgIj4kZmlsZWMiOwotcHJpbnQgRiAkdG1wOwotY2xvc2UgRjsKLQot
IyByZWFkIHRoZSBoYXNoIG1hcHBpbmdzIChpcyB0aGVyZSBhIGJldHRlciB3YXk/KQotbXkgJWht
YXAgPSAoKTsKLW9wZW4oSU4sICI8ICRmaWxlYyIpOwotbXkgJGkgPSAwOwotd2hpbGUoPElOPikg
ewotCW15ICRsb29rRm9yID0gIkNTU19WQUxfIjsKLQlpZiAoJG5zRnVsbCBuZSAiS0RPTSIpIHsK
LQkJJGxvb2tGb3IgPSAkbnMgLiAkbG9va0ZvcjsKLQl9Ci0KLQlpZiAoLyJbXHctXSsiLCAke2xv
b2tGb3J9KFtcd19dKykvKSB7Ci0JCSRobWFweyRhbWFweyQxfX0gPSAkaTsKLQkJJGkgKz0gMTsK
LQl9Ci19Ci1jbG9zZShJTik7ICAKLQotb3BlbihPVVQsICI+PiAkZmlsZWMiKTsKLXByaW50IE9V
VCAiXG5uYW1lc3BhY2UgJHtuc0Z1bGx9XG57XG4iOwotcHJpbnQgT1VUICJcblxuc3RhdGljIGNv
bnN0IHVuc2lnbmVkIHNob3J0IHZhbExpc3RbXSA9IHtcbiI7Ci1wcmludCBPVVQgIiAgICA2NTUz
NSxcbiI7Ci0KLXdoaWxlKGRlZmluZWQgKG15ICRsaW5lID0gc2hpZnQgQGEpKSB7Ci0gICAgbXkg
JGwgPSAkbGluZTsKLQotCWlmKG5vdCgkbCA9fiAvIy8pIGFuZCAobGVuZ3RoKCRsKSA+IDApKSB7
Ci0JCSRsID1+IHkvLS9fLzsKLQotICAgIAlkaWUgaWYgIWxlbmd0aCgkaG1hcHskYW1hcHskbH19
KTsKLQotCSAgICBwcmludCBPVVQgIiAgICAiIC4kaG1hcHskYW1hcHskbH19LiIsXG4iOwotCX0K
LX0KLQotbXkgJGxvb2tGb3IgPSAiQ1NTX1ZBTF9NQVgiOwotaWYgKCRuc0Z1bGwgbmUgIktET00i
KSB7Ci0JJGxvb2tGb3IgPSAkbnMgLiAkbG9va0ZvcjsKLX0KLQotcHJpbnQgT1VUICIgICAgNjU1
MzVcbn07XG5cbiI7Ci1wcmludCBPVVQgImNvbnN0IGNoYXIgKmdldFNWR0NTU1ZhbHVlSUQodW5z
aWduZWQgc2hvcnQgaWQpXG57XG4iOwotcHJpbnQgT1VUICIgICAgaWYgKCFpZCB8fCBpZCA+ICRs
b29rRm9yKSByZXR1cm4gXCJcIjtcbiI7Ci1wcmludCBPVVQgIiAgICByZXR1cm4gd29yZGxpc3Rf
dmFsW3ZhbExpc3RbaWRdXS5uYW1lO1xuIjsKLXByaW50IE9VVCAifVxuIjsKLXByaW50IE9VVCAi
XG5pbnQgZ2V0U1ZHQ1NTVmFsdWVJRChjb25zdCBjaGFyICp0YWdTdHIsIGludCBsZW4pXG4iOwot
cHJpbnQgT1VUICJ7XG4iOwotcHJpbnQgT1VUICIgICAgY29uc3Qgc3RydWN0IGNzc192YWwgKnZh
bFB0ciA9IGZpbmQke25zfVZhbCh0YWdTdHIsIGxlbik7XG4iOwotcHJpbnQgT1VUICIgICAgaWYo
IXZhbFB0cilcbiI7Ci1wcmludCBPVVQgIiAgICAgIHJldHVybiAwO1xuIjsKLXByaW50IE9VVCAi
ICAgIHJldHVybiB2YWxQdHItPmlkO1xuIjsKLXByaW50IE9VVCAifVxuXG4iOwotcHJpbnQgT1VU
ICJ9XG4iOwpJbmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGtzdmcyL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAkocmV2aXNpb24gMjYxMDEp
CisrKyBrc3ZnMi9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKLSNpbmNsdWRlICJrc3Zn
Y3NzcHJvcGVydGllcy5oIgogI2luY2x1ZGUgIlNWR1BhcnNlclV0aWxpdGllcy5oIgogI2luY2x1
ZGUgIlNWR1NWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdVUklSZWZlcmVuY2UuaCIKSW5kZXg6
IGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcv
U1ZHU3R5bGVkRWxlbWVudC5jcHAJKHJldmlzaW9uIDI2MTAxKQorKysga3N2ZzIvc3ZnL1NWR1N0
eWxlZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNW
R1NWR0VsZW1lbnQuaCIKLSNpbmNsdWRlICJrc3ZnY3NzcHJvcGVydGllcy5oIgogI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTcxLDI0ICs3MCwy
MCBAQCBSZW5kZXJPYmplY3QqIFNWR1N0eWxlZEVsZW1lbnQ6OmNyZWF0ZVJlCiAgICAgcmV0dXJu
IG5ldyAoYXJlbmEpIFJlbmRlclBhdGgoc3R5bGUsIHRoaXMpOwogfQogCi1zdGF0aWMgaW5saW5l
IGludCBjc3NQcm9wZXJ0eUlkRm9yTmFtZShjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIGludCBw
cm9wZXJ0eUxlbmd0aCkKLXsKLSAgICBpbnQgcHJvcGVydHlJZCA9IGdldFByb3BlcnR5SUQocHJv
cGVydHlOYW1lLCBwcm9wZXJ0eUxlbmd0aCk7Ci0gICAgaWYgKHByb3BlcnR5SWQgPT0gMCkKLSAg
ICAgICAgcHJvcGVydHlJZCA9IFNWRzo6Z2V0U1ZHQ1NTUHJvcGVydHlJRChwcm9wZXJ0eU5hbWUs
IHByb3BlcnR5TGVuZ3RoKTsKLSAgICByZXR1cm4gcHJvcGVydHlJZDsKLX0KLQogc3RhdGljIGlu
bGluZSB2b2lkIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkoSGFzaE1hcDxBdG9taWNTdHJpbmdJ
bXBsKiwgaW50PiogcHJvcGVydHlOYW1lVG9JZE1hcCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUsIGNvbnN0IGNoYXIqIGNzc1Byb3BlcnR5TmFtZSA9IDApCiB7CiAgICAgaW50IHByb3Bl
cnR5SWQgPSAwOwogICAgIGlmIChjc3NQcm9wZXJ0eU5hbWUpCi0gICAgICAgIHByb3BlcnR5SWQg
PSBjc3NQcm9wZXJ0eUlkRm9yTmFtZShjc3NQcm9wZXJ0eU5hbWUsIHN0cmxlbihjc3NQcm9wZXJ0
eU5hbWUpKTsKKyAgICAgICAgcHJvcGVydHlJZCA9IGdldFByb3BlcnR5SUQoY3NzUHJvcGVydHlO
YW1lLCBzdHJsZW4oY3NzUHJvcGVydHlOYW1lKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIERlcHJl
Y2F0ZWRTdHJpbmcgcHJvcGVydHlOYW1lID0gYXR0ck5hbWUubG9jYWxOYW1lKCkuZGVwcmVjYXRl
ZFN0cmluZygpOwotICAgICAgICBwcm9wZXJ0eUlkID0gY3NzUHJvcGVydHlJZEZvck5hbWUocHJv
cGVydHlOYW1lLmFzY2lpKCksIHByb3BlcnR5TmFtZS5sZW5ndGgoKSk7CisgICAgICAgIHByb3Bl
cnR5SWQgPSBnZXRQcm9wZXJ0eUlEKHByb3BlcnR5TmFtZS5hc2NpaSgpLCBwcm9wZXJ0eU5hbWUu
bGVuZ3RoKCkpOworICAgIH0KKyAgICBpZiAocHJvcGVydHlJZCA8PSAwKSB7CisgICAgICAgIGZw
cmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGZpbmQgcHJvcGlkIGZvcjogJXMiLCBhdHRyTmFtZS5s
b2NhbE5hbWUoKS5kZXByZWNhdGVkU3RyaW5nKCkuYXNjaWkoKSk7CisgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgQVNTRVJUKHByb3BlcnR5SWQgPiAwKTsKKyAgICAvL0FTU0VSVChwcm9wZXJ0
eUlkID4gMCk7CiAgICAgcHJvcGVydHlOYW1lVG9JZE1hcC0+c2V0KGF0dHJOYW1lLmxvY2FsTmFt
ZSgpLmltcGwoKSwgcHJvcGVydHlJZCk7CiB9CiAKQEAgLTEyNCw3ICsxMTksNiBAQCBpbnQgU1ZH
U3R5bGVkRWxlbWVudDo6Y3NzUHJvcGVydHlJZEZvclNWCiAgICAgICAgIG1hcEF0dHJpYnV0ZVRv
Q1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZmxvb2Rfb3BhY2l0eUF0dHIpOwogICAg
ICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRf
ZmFtaWx5QXR0cik7CiAgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlO
YW1lVG9JZE1hcCwgZm9udF9zaXplQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJv
cGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZm9udF9zaXplX2FkanVzdEF0dHIpOwogICAgICAg
ICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfc3Ry
ZXRjaEF0dHIpOwogICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFt
ZVRvSWRNYXAsIGZvbnRfc3R5bGVBdHRyKTsKICAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBmb250X3ZhcmlhbnRBdHRyKTsK
</data>
<flag name="review"
          id="6997"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16591</attachid>
            <date>2007-10-08 12:57:24 -0700</date>
            <delta_ts>2007-10-08 13:20:31 -0700</delta_ts>
            <desc>improved patch (including added test case) (size due to search-replace changes)</desc>
            <filename>better.patch</filename>
            <type>text/plain</type>
            <size>135502</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjEwNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDIgQEAKKzIwMDctMTAtMDggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBnZXRDb21wdXRlZFN0eWxlIHN1cHBvcnQgZm9yIFNWRyBDU1MgdmFsdWVzCisgICAgICAg
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDIyCisgICAgICAgIAor
ICAgICAgICBUaGlzIGFsc28gdW5pZmllcyBTVkcgYW5kIG5vbi1TVkcgQ1NTIGhhc2ggbG9va3Vw
cy4gQSB1bmlmaWVkIGhhc2gKKyAgICAgICAgc29sdmVzIGNvcnJlY3RuZXNzIHByb2JsZW1zIGFz
IHdlbGwgYXMgb2ZmZXJzIGltcHJvdmVkIHNwZWVkLgorICAgICAgICAKKyAgICAgICAgVGVzdDog
c3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLnhodG1sCisKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5tYWtlOiB1bmlmeSBTVkcgYW5kIG5vbi1TVkcgQ1NTIGhhc2ggZmlsZXMKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IHJlbW92ZSBvbGQgU1ZHIENT
UyBoYXNoIGZpbGVzCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKTogY2FsbCBnZXRQcm9wZXJ0eUNT
U1ZhbHVlCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oOiBhZGQg
Z2V0UHJvcGVydHlDU1NWYWx1ZQorICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnk6CisgICAgICAg
ICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNl
VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnByb3BlcnR5SUQpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgor
ICAgICAgICAqIGtzdmcyL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOiByZW1vdmUgZm9udC1zaXpl
LWFkanVzdAorICAgICAgICAqIGtzdmcyL2Nzcy9TVkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbjo6Z2V0U1ZHUHJvcGVydHlDU1NWYWx1ZSk6IGFkZGVkLgorICAgICAgICAqIGtzdmcyL2Nz
cy9TVkdDU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVNW
R1ZhbHVlKToKKyAgICAgICAgKiBrc3ZnMi9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KToKKyAg
ICAgICAgKiBrc3ZnMi9zY3JpcHRzL2Nzc21ha2Vwcm9wczogUmVtb3ZlZC4KKyAgICAgICAgKiBr
c3ZnMi9zY3JpcHRzL2Nzc21ha2V2YWx1ZXM6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTdHlsZWRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVkRWxlbWVudDo6Y3NzUHJvcGVydHlJZEZvclNW
R0F0dHJpYnV0ZU5hbWUpOiByZW1vdmUgZm9udC1zaXplLWFkanVzdAorCiAyMDA3LTEwLTA4ICBB
bGV4ZXkgUHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbi4KSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI2MTA2KQorKysgV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC01NjIsMjAgKzU2MiwzOCBA
QCBhbGwgOiBcCiAgICAga2pzX2V2ZW50cy5sdXQuaCBcCiAgICAga2pzX25hdmlnYXRvci5sdXQu
aCBcCiAgICAga2pzX3dpbmRvdy5sdXQuaCBcCi0gICAga3N2Z2Nzc3Byb3BlcnRpZXMuaCBcCi0g
ICAga3N2Z2Nzc3ZhbHVlcy5oIFwKICAgICB0b2tlbml6ZXIuY3BwIFwKICAgICBXZWJDb3JlLmV4
cCBcCiAjCiAKICMgQ1NTIHByb3BlcnR5IG5hbWVzIGFuZCB2YWx1ZSBrZXl3b3JkcwogCi1DU1NQ
cm9wZXJ0eU5hbWVzLmggOiBjc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBjc3MvbWFrZXByb3AucGwK
LQljYXQgJDwgPiBDU1NQcm9wZXJ0eU5hbWVzLmluCitpZmVxICgkKGZpbmRzdHJpbmcgRU5BQkxF
X1NWRywkKEZFQVRVUkVfREVGSU5FUykpLCBFTkFCTEVfU1ZHKQorCitDU1NQcm9wZXJ0eU5hbWVz
LmluIDogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4ga3N2ZzIvY3NzL0NTU1Byb3BlcnR5TmFtZXMu
aW4KKwlpZiBzb3J0ICQ8ICQoV2ViQ29yZSkva3N2Zy9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiB8
IHVuaXEgLWQgfCBncmVwIC1FICdeW14jXSc7IHRoZW4gZWNobyAnRHVwbGljYXRlIHZhbHVlISc7
IGV4aXQgMTsgZmkKKwljYXQgJDwgJChXZWJDb3JlKS9rc3ZnMi9jc3MvQ1NTUHJvcGVydHlOYW1l
cy5pbiA+IENTU1Byb3BlcnR5TmFtZXMuaW4KKworQ1NTVmFsdWVLZXl3b3Jkcy5pbiA6IGNzcy9D
U1NWYWx1ZUtleXdvcmRzLmluIGtzdmcyL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisJIyBMb3dl
ciBjYXNlIGFsbCB0aGUgdmFsdWVzLCBhcyBDU1MgdmFsdWVzIGFyZSBjYXNlLWluc2Vuc2l0aXZl
CisJcGVybCAtbmUgJ3ByaW50IGxjJyAkKFdlYkNvcmUpL2tzdmcyL2Nzcy9DU1NWYWx1ZUtleXdv
cmRzLmluID4gU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbgorCWlmIHNvcnQgJDwgU1ZHQ1NTVmFsdWVL
ZXl3b3Jkcy5pbiB8IHVuaXEgLWQgfCBncmVwIC1FICdeW14jXSc7IHRoZW4gZWNobyAnRHVwbGlj
YXRlIHZhbHVlISc7IGV4aXQgMTsgZmkKKwljYXQgJDwgU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbiA+
IENTU1ZhbHVlS2V5d29yZHMuaW4KKworZWxzZQorCitDU1NQcm9wZXJ0eU5hbWVzLmluIDogY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4KKwljcCAkPCBDU1NQcm9wZXJ0eU5hbWVzLmluCisKK0NTU1Zh
bHVlS2V5d29yZHMuaW4gOiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorCWNwICQ8IENTU1ZhbHVl
S2V5d29yZHMuaW4KKworZW5kaWYgCisKK0NTU1Byb3BlcnR5TmFtZXMuaCA6IENTU1Byb3BlcnR5
TmFtZXMuaW4gY3NzL21ha2Vwcm9wLnBsCiAJcGVybCAiJChXZWJDb3JlKS9jc3MvbWFrZXByb3Au
cGwiCiAKLUNTU1ZhbHVlS2V5d29yZHMuaCA6IGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGNzcy9t
YWtldmFsdWVzLnBsCi0JY2F0ICQ8ID4gQ1NTVmFsdWVLZXl3b3Jkcy5pbgorQ1NTVmFsdWVLZXl3
b3Jkcy5oIDogQ1NTVmFsdWVLZXl3b3Jkcy5pbiBjc3MvbWFrZXZhbHVlcy5wbAogCXBlcmwgIiQo
V2ViQ29yZSkvY3NzL21ha2V2YWx1ZXMucGwiCiAKICMgRE9DVFlQRSBzdHJpbmdzCkBAIC02NzAs
MjAgKzY4OCw2IEBAIFhMaW5rTmFtZXMuY3BwIDoga3N2ZzIvc2NyaXB0cy9tYWtlX25hbWUKIAlw
ZXJsICQ8IC0tYXR0cnMgJChXZWJDb3JlKS9rc3ZnMi9taXNjL3hsaW5rYXR0cnMuaW4gXAogICAg
ICAgICAgICAgLS1uYW1lc3BhY2UgWExpbmsgLS1jcHBOYW1lc3BhY2UgV2ViQ29yZSAtLW5hbWVz
cGFjZVVSSSAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgLS1vdXRwdXQgLgogCi0jIFNW
RyBDU1MgcHJvcGVydHkgbmFtZXMgYW5kIHZhbHVlIGtleXdvcmRzCi0KLWtzdmdjc3Nwcm9wZXJ0
aWVzLmggOiBrc3ZnMi9zY3JpcHRzL2Nzc21ha2Vwcm9wcyBjc3MvQ1NTUHJvcGVydHlOYW1lcy5p
biBrc3ZnMi9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgotCWlmIHNvcnQgJChXZWJDb3JlKS9jc3Mv
Q1NTUHJvcGVydHlOYW1lcy5pbiAkKFdlYkNvcmUpL2tzdmcyL2Nzcy9DU1NQcm9wZXJ0eU5hbWVz
LmluIHwgdW5pcSAtZCB8IGdyZXAgLUUgJ15bXiNdJzsgdGhlbiBlY2hvICdEdXBsaWNhdGUgdmFs
dWUhJzsgZXhpdCAxOyBmaQotCWNhdCAkKFdlYkNvcmUpL2tzdmcyL2Nzcy9DU1NQcm9wZXJ0eU5h
bWVzLmluID4ga3N2Z2Nzc3Byb3BlcnRpZXMuaW4KLQkkKFdlYkNvcmUpL2tzdmcyL3NjcmlwdHMv
Y3NzbWFrZXByb3BzIC1uIFNWRyAtZiBrc3ZnY3NzcHJvcGVydGllcy5pbgotCi1rc3ZnY3NzdmFs
dWVzLmggOiBrc3ZnMi9zY3JpcHRzL2Nzc21ha2V2YWx1ZXMgY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4ga3N2ZzIvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KLQlpZiBzb3J0ICQoV2ViQ29yZSkvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4gJChXZWJDb3JlKS9rc3ZnMi9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbiB8IHVuaXEgLWQgfCBncmVwIC1FICdeW14jXSc7IHRoZW4gZWNobyAnRHVwbGljYXRlIHZh
bHVlISc7IGV4aXQgMTsgZmkKLQkjIExvd2VyIGNhc2UgYWxsIHRoZSB2YWx1ZXMsIGFzIENTUyB2
YWx1ZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmUKLQlwZXJsIC1uZSAncHJpbnQgbGMnICQoV2ViQ29y
ZSkva3N2ZzIvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gPiBrc3ZnY3NzdmFsdWVzLmluCi0JJChX
ZWJDb3JlKS9rc3ZnMi9zY3JpcHRzL2Nzc21ha2V2YWx1ZXMgLW4gU1ZHIC1mIGtzdmdjc3N2YWx1
ZXMuaW4KLQotCiAjIEFkZCBTVkcgU3ltYm9scyB0byB0aGUgV2ViQ29yZSBleHBvcnRlZCBzeW1i
b2xzIGZpbGUKIAogV2ViQ29yZS5leHAgOiBXZWJDb3JlLmJhc2UuZXhwIFdlYkNvcmUuU1ZHLmV4
cApAQCAtNzAwLDEyICs3MDQsNiBAQCBTVkdOYW1lcy5jcHAgOgogWExpbmtOYW1lcy5jcHAgOgog
CWVjaG8gPiBYTGlua05hbWVzLmNwcAogCi1rc3ZnY3NzcHJvcGVydGllcy5oIDoKLQllY2hvID4g
a3N2Z2Nzc3Byb3BlcnRpZXMuaAotCi1rc3ZnY3NzdmFsdWVzLmggOgotCWVjaG8gPiBrc3ZnY3Nz
dmFsdWVzLmgKLQogV2ViQ29yZS5leHAgOiBXZWJDb3JlLmJhc2UuZXhwCiAJY3AgJChXZWJDb3Jl
KS9XZWJDb3JlLmJhc2UuZXhwIFdlYkNvcmUuZXhwCiAKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNjEwNikKKysrIFdlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zOTQsMTEg
KzM5NCw5IEBACiAJCTY1NjU4MUYzMDlEMTUwOEQwMDBFNjFENyAvKiBranNfZXZlbnRzLmx1dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2NTgxREMw
OUQxNTA4RDAwMEU2MUQ3IC8qIGtqc19ldmVudHMubHV0LmggKi87IH07CiAJCTY1NjU4MUY1MDlE
MTUwOEQwMDBFNjFENyAvKiBranNfbmF2aWdhdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2NTgxREUwOUQxNTA4RDAwMEU2MUQ3IC8qIGtq
c19uYXZpZ2F0b3IubHV0LmggKi87IH07CiAJCTY1NjU4MUY4MDlEMTUwOEQwMDBFNjFENyAvKiBr
anNfd2luZG93Lmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjU2NTgxRTEwOUQxNTA4RDAwMEU2MUQ3IC8qIGtqc193aW5kb3cubHV0LmggKi87IH07
Ci0JCTY1NjU4MUZCMDlEMTUwOEQwMDBFNjFENyAvKiBrc3ZnY3NzcHJvcGVydGllcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2NTgxRTQwOUQxNTA4
RDAwMEU2MUQ3IC8qIGtzdmdjc3Nwcm9wZXJ0aWVzLmggKi87IH07CiAJCTY1NjU4MUZFMDlEMTUw
OEQwMDBFNjFENyAvKiBTVkdFbGVtZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2NTgxRTcwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR0Vs
ZW1lbnRGYWN0b3J5LmggKi87IH07CiAJCTY1NjU4MjAwMDlEMTUwOEQwMDBFNjFENyAvKiBTVkdO
YW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2
NTgxRTkwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR05hbWVzLmggKi87IH07CiAJCTY1NjU4MjAyMDlE
MTUwOEQwMDBFNjFENyAvKiBYTGlua05hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2NTY1ODFFQjA5RDE1MDhEMDAwRTYxRDcgLyogWExpbmtOYW1l
cy5oICovOyB9OwotCQk2NTY1ODIxMzA5RDE1MTExMDAwRTYxRDcgLyoga3N2Z2Nzc3ZhbHVlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2NTgyMEYw
OUQxNTExMTAwMEU2MUQ3IC8qIGtzdmdjc3N2YWx1ZXMuaCAqLzsgfTsKIAkJNjU2Qjg0RTAwQUVB
MUQzMTAwQTA5NUI0IC8qIFJlc291cmNlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkI4NERDMEFFQTFEMzEwMEEwOTVCNCAvKiBSZXNv
dXJjZUhhbmRsZS5jcHAgKi87IH07CiAJCTY1NkI4NEUyMEFFQTFEMzEwMEEwOTVCNCAvKiBSZXNv
dXJjZUhhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNjU2Qjg0REUwQUVBMUQzMTAwQTA5NUI0IC8qIFJlc291cmNlSGFuZGxlQ2xpZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNjU2
Qjg0RTMwQUVBMUQzMTAwQTA5NUI0IC8qIFJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkI4NERGMEFFQTFEMzEw
MEEwOTVCNCAvKiBSZXNvdXJjZUhhbmRsZUludGVybmFsLmggKi87IH07CkBAIC0xODQyLDYgKzE4
NDAsNyBAQAogCQlBODRFQkQ3ODBDQjhDODkyMDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdEN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODRFQkQ3NzBDQjhDODkyMDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAgKi87
IH07CiAJCUE4NEVCRDgzMENCOEM5NzcwMDA3OTYwOSAvKiBKU1N0eWxlU2hlZXRMaXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODRFQkQ4MTBDQjhD
OTc3MDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdC5oICovOyB9OwogCQlBODRFQkQ4NDBDQjhD
OTc3MDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODRFQkQ4MjBDQjhDOTc3MDAwNzk2MDkgLyogSlNT
dHlsZVNoZWV0TGlzdC5jcHAgKi87IH07CisJCUE4NEVDMTM5MENCOUZEQkMwMDA3OTYwOSAvKiBT
VkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg0RUMxMzgwQ0I5RkRCQzAwMDc5NjA5IC8qIFNWR0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgKi87IH07CiAJCUE4NjYyOUNGMDlEQTJCNDcw
MDk2MzNBNSAvKiBKU1VJRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4NjYyOUM5MDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuaCAqLzsg
fTsKIAkJQTg2NjI5RDAwOURBMkI0ODAwOTYzM0E1IC8qIEpTVUlFdmVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODY2MjlDQTA5REEyQjQ3MDA5
NjMzQTUgLyogSlNVSUV2ZW50LmNwcCAqLzsgfTsKIAkJQTg2NjI5RDEwOURBMkI0ODAwOTYzM0E1
IC8qIEpTTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTg2NjI5Q0IwOURBMkI0NzAwOTYzM0E1IC8qIEpTTW91c2VFdmVudC5oICovOyB9
OwpAQCAtNDQxMywyMCArNDQxMiwxMiBAQAogCQk2NTY1ODFEQzA5RDE1MDhEMDAwRTYxRDcgLyog
a2pzX2V2ZW50cy5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGtqc19l
dmVudHMubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MURFMDlEMTUw
OEQwMDBFNjFENyAvKiBranNfbmF2aWdhdG9yLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0ga2pzX25hdmlnYXRvci5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNjU2NTgxRTEwOUQxNTA4RDAwMEU2MUQ3IC8qIGtqc193aW5kb3cubHV0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBranNfd2luZG93Lmx1dC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk2NTY1ODFFMjA5RDE1MDhEMDAwRTYxRDcgLyoga3N2Z2Nzc3By
b3BlcnRpZXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IGtzdmdjc3Nwcm9w
ZXJ0aWVzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTY1NjU4MUUzMDlEMTUwOEQw
MDBFNjFENyAvKiBrc3ZnY3NzcHJvcGVydGllcy5ncGVyZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0ga3N2Z2Nzc3Byb3BlcnRpZXMuZ3BlcmY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTY1NjU4MUU0MDlEMTUwOEQwMDBFNjFENyAvKiBrc3ZnY3NzcHJvcGVydGllcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0ga3N2Z2Nzc3Byb3BlcnRpZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNjU2NTgxRTUwOUQxNTA4RDAwMEU2MUQ3IC8qIGtzdmdjc3Nw
cm9wZXJ0aWVzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBrc3ZnY3NzcHJvcGVydGllcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxRTYwOUQxNTA4RDAwMEU2MUQ3
IC8qIFNWR0VsZW1lbnRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTVkdFbGVtZW50RmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTY1NjU4MUU3MDlEMTUwOEQwMDBFNjFENyAvKiBTVkdFbGVtZW50RmFjdG9yeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRWxlbWVudEZhY3RvcnkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxRTgwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR05h
bWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdOYW1lcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MUU5MDlEMTUwOEQwMDBFNjFE
NyAvKiBTVkdOYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTmFt
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxRUEwOUQxNTA4RDAwMEU2
MUQ3IC8qIFhMaW5rTmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFhMaW5rTmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODFF
QjA5RDE1MDhEMDAwRTYxRDcgLyogWExpbmtOYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWExpbmtOYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2
NTY1ODIwRDA5RDE1MTExMDAwRTYxRDcgLyoga3N2Z2Nzc3ZhbHVlcy5jICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5jOyBwYXRoID0ga3N2Z2Nzc3ZhbHVlcy5jOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk2NTY1ODIwRTA5RDE1MTExMDAwRTYxRDcgLyoga3N2Z2Nzc3ZhbHVlcy5ncGVy
ZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0ga3N2Z2Nzc3ZhbHVlcy5ncGVyZjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNjU2NTgyMEYwOUQxNTExMTAwMEU2MUQ3IC8qIGtzdmdjc3N2
YWx1ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGtzdmdjc3N2YWx1ZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNjU2NTgyMTAwOUQxNTExMTAwMEU2MUQ3
IC8qIGtzdmdjc3N2YWx1ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGtzdmdjc3N2YWx1
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NkI4NERDMEFFQTFEMzEwMEEw
OTVCNCAvKiBSZXNvdXJjZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVzb3VyY2VIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2NTZCODRERTBBRUExRDMxMDBBMDk1QjQgLyogUmVzb3VyY2VIYW5kbGVDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlSGFuZGxlQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NkI4NERGMEFFQTFEMzEwMEEwOTVCNCAvKiBS
ZXNvdXJjZUhhbmRsZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZXNvdXJjZUhhbmRsZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01Nzk4LDYgKzU3ODksNyBAQAogCQlBODRFQkQ3NzBDQjhDODkyMDAwNzk2MDkgLyogSlNTdHls
ZVNoZWV0TGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTg0RUJEODEwQ0I4Qzk3NzAwMDc5NjA5IC8qIEpTU3R5bGVTaGVldExpc3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHlsZVNoZWV0TGlzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBODRFQkQ4MjBDQjhDOTc3MDAwNzk2MDkgLyogSlNTdHlsZVNo
ZWV0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0eWxl
U2hlZXRMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTg0RUMxMzgwQ0I5
RkRCQzAwMDc5NjA5IC8qIFNWR0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdDU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODVEN0EyRjA4NzlFQkE5
MDA2QTkxNzIgLyogUXVhcnR6Q29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IFF1YXJ0
ekNvcmUuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUXVhcnR6
Q29yZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCUE4NjYyOUM5
MDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTVUlFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODY2
MjlDQTA5REEyQjQ3MDA5NjMzQTUgLyogSlNVSUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1VJRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtODEzNiwxNCArODEyOCw2IEBACiAJCQkJNjU2NTgxREMwOUQxNTA4RDAwMEU2MUQ3
IC8qIGtqc19ldmVudHMubHV0LmggKi8sCiAJCQkJNjU2NTgxREUwOUQxNTA4RDAwMEU2MUQ3IC8q
IGtqc19uYXZpZ2F0b3IubHV0LmggKi8sCiAJCQkJNjU2NTgxRTEwOUQxNTA4RDAwMEU2MUQ3IC8q
IGtqc193aW5kb3cubHV0LmggKi8sCi0JCQkJNjU2NTgxRTIwOUQxNTA4RDAwMEU2MUQ3IC8qIGtz
dmdjc3Nwcm9wZXJ0aWVzLmMgKi8sCi0JCQkJNjU2NTgxRTMwOUQxNTA4RDAwMEU2MUQ3IC8qIGtz
dmdjc3Nwcm9wZXJ0aWVzLmdwZXJmICovLAotCQkJCTY1NjU4MUU0MDlEMTUwOEQwMDBFNjFENyAv
KiBrc3ZnY3NzcHJvcGVydGllcy5oICovLAotCQkJCTY1NjU4MUU1MDlEMTUwOEQwMDBFNjFENyAv
KiBrc3ZnY3NzcHJvcGVydGllcy5pbiAqLywKLQkJCQk2NTY1ODIwRDA5RDE1MTExMDAwRTYxRDcg
Lyoga3N2Z2Nzc3ZhbHVlcy5jICovLAotCQkJCTY1NjU4MjBFMDlEMTUxMTEwMDBFNjFENyAvKiBr
c3ZnY3NzdmFsdWVzLmdwZXJmICovLAotCQkJCTY1NjU4MjBGMDlEMTUxMTEwMDBFNjFENyAvKiBr
c3ZnY3NzdmFsdWVzLmggKi8sCi0JCQkJNjU2NTgyMTAwOUQxNTExMTAwMEU2MUQ3IC8qIGtzdmdj
c3N2YWx1ZXMuaW4gKi8sCiAJCQkJNjU2NTgxRTYwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR0VsZW1l
bnRGYWN0b3J5LmNwcCAqLywKIAkJCQk2NTY1ODFFNzA5RDE1MDhEMDAwRTYxRDcgLyogU1ZHRWxl
bWVudEZhY3RvcnkuaCAqLywKIAkJCQk2NTY1ODFFODA5RDE1MDhEMDAwRTYxRDcgLyogU1ZHTmFt
ZXMuY3BwICovLApAQCAtOTkxOSw2ICs5OTAzLDcgQEAKIAkJCQlBOEMwRjcwMDA4OTcwMUYxMDBC
QTUxMTQgLyogU1ZHUmVuZGVyU3R5bGUuaCAqLywKIAkJCQlBOEMwRjcwMTA4OTcwMUYxMDBCQTUx
MTQgLyogU1ZHUmVuZGVyU3R5bGVEZWZzLmNwcCAqLywKIAkJCQlBOEMwRjcwMjA4OTcwMUYxMDBC
QTUxMTQgLyogU1ZHUmVuZGVyU3R5bGVEZWZzLmggKi8sCisJCQkJQTg0RUMxMzgwQ0I5RkRCQzAw
MDc5NjA5IC8qIFNWR0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgKi8sCiAJCQkpOwog
CQkJcGF0aCA9IGNzczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMTgyNiwxMSAr
MTE4MTEsOSBAQAogCQkJCTY1NjU4MUYzMDlEMTUwOEQwMDBFNjFENyAvKiBranNfZXZlbnRzLmx1
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxRjUwOUQxNTA4RDAwMEU2MUQ3IC8qIGtqc19u
YXZpZ2F0b3IubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTY1ODFGODA5RDE1MDhEMDAwRTYx
RDcgLyoga2pzX3dpbmRvdy5sdXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTY1NjU4MUZCMDlEMTUw
OEQwMDBFNjFENyAvKiBrc3ZnY3NzcHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2
NTgxRkUwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR0VsZW1lbnRGYWN0b3J5LmggaW4gSGVhZGVycyAq
LywKIAkJCQk2NTY1ODIwMDA5RDE1MDhEMDAwRTYxRDcgLyogU1ZHTmFtZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTY1NjU4MjAyMDlEMTUwOEQwMDBFNjFENyAvKiBYTGlua05hbWVzLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk2NTY1ODIxMzA5RDE1MTExMDAwRTYxRDcgLyoga3N2Z2Nzc3ZhbHVlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNjUwRjUzREMwOUQxNUREQTAwQzlCMEM4IC8qIENTU0dyYW1t
YXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMURCMDlEMUMxMjMwMDBCRTMyNSAvKiBKU0F0
dHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMUY0MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0No
YXJhY3RlckRhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ3MDUsNiArMTQ2ODgsNyBAQAogCQkJ
CUJDNjRCNERCMENCNDI5OEEwMDVGMkI2MiAvKiBDU1NGb250U2VsZWN0b3IuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTg0RUJENzgwQ0I4Qzg5MjAwMDc5NjA5IC8qIEpTU3R5bGVTaGVldExpc3RD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg0RUJEODQwQ0I4Qzk3NzAwMDc5NjA5IC8q
IEpTU3R5bGVTaGVldExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTg0RUMxMzkwQ0I5RkRC
QzAwMDc5NjA5IC8qIFNWR0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAkocmV2aXNpb24gMjYxMDYpCisrKyBXZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsNiArMTcyLDUwIEBAIHN0YXRpYyBjb25z
dCBpbnQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSAKICAgICBDU1NfUFJPUF9fV0VCS0lUX0JPUkRF
Ul9CT1RUT01fUklHSFRfUkFESVVTLAogICAgIENTU19QUk9QX19XRUJLSVRfQk9SREVSX1RPUF9M
RUZUX1JBRElVUywKICAgICBDU1NfUFJPUF9fV0VCS0lUX0JPUkRFUl9UT1BfUklHSFRfUkFESVVT
CisgICAgCisjaWYgRU5BQkxFKFNWRykKKyAgICAsCisgICAgQ1NTX1BST1BfQ0xJUF9QQVRILAor
ICAgIENTU19QUk9QX0NMSVBfUlVMRSwKKyAgICBDU1NfUFJPUF9NQVNLLAorICAgIENTU19QUk9Q
X0VOQUJMRV9CQUNLR1JPVU5ELAorICAgIENTU19QUk9QX0ZJTFRFUiwKKyAgICBDU1NfUFJPUF9G
TE9PRF9DT0xPUiwKKyAgICBDU1NfUFJPUF9GTE9PRF9PUEFDSVRZLAorICAgIENTU19QUk9QX0xJ
R0hUSU5HX0NPTE9SLAorICAgIENTU19QUk9QX1NUT1BfQ09MT1IsCisgICAgQ1NTX1BST1BfU1RP
UF9PUEFDSVRZLAorICAgIENTU19QUk9QX1BPSU5URVJfRVZFTlRTLAorICAgIENTU19QUk9QX0NP
TE9SX0lOVEVSUE9MQVRJT04sCisgICAgQ1NTX1BST1BfQ09MT1JfSU5URVJQT0xBVElPTl9GSUxU
RVJTLAorICAgIENTU19QUk9QX0NPTE9SX1BST0ZJTEUsCisgICAgQ1NTX1BST1BfQ09MT1JfUkVO
REVSSU5HLAorICAgIENTU19QUk9QX0ZJTEwsCisgICAgQ1NTX1BST1BfRklMTF9PUEFDSVRZLAor
ICAgIENTU19QUk9QX0ZJTExfUlVMRSwKKyAgICBDU1NfUFJPUF9JTUFHRV9SRU5ERVJJTkcsCisg
ICAgQ1NTX1BST1BfTUFSS0VSX0VORCwKKyAgICBDU1NfUFJPUF9NQVJLRVJfTUlELAorICAgIENT
U19QUk9QX01BUktFUl9TVEFSVCwKKyAgICBDU1NfUFJPUF9TSEFQRV9SRU5ERVJJTkcsCisgICAg
Q1NTX1BST1BfU1RST0tFLAorICAgIENTU19QUk9QX1NUUk9LRV9EQVNIQVJSQVksCisgICAgQ1NT
X1BST1BfU1RST0tFX0RBU0hPRkZTRVQsCisgICAgQ1NTX1BST1BfU1RST0tFX0xJTkVDQVAsCisg
ICAgQ1NTX1BST1BfU1RST0tFX0xJTkVKT0lOLAorICAgIENTU19QUk9QX1NUUk9LRV9NSVRFUkxJ
TUlULAorICAgIENTU19QUk9QX1NUUk9LRV9PUEFDSVRZLAorICAgIENTU19QUk9QX1NUUk9LRV9X
SURUSCwKKyAgICBDU1NfUFJPUF9URVhUX1JFTkRFUklORywKKyAgICBDU1NfUFJPUF9BTElHTk1F
TlRfQkFTRUxJTkUsCisgICAgQ1NTX1BST1BfQkFTRUxJTkVfU0hJRlQsCisgICAgQ1NTX1BST1Bf
RE9NSU5BTlRfQkFTRUxJTkUsCisgICAgQ1NTX1BST1BfR0xZUEhfT1JJRU5UQVRJT05fSE9SSVpP
TlRBTCwKKyAgICBDU1NfUFJPUF9HTFlQSF9PUklFTlRBVElPTl9WRVJUSUNBTCwKKyAgICBDU1Nf
UFJPUF9LRVJOSU5HLAorICAgIENTU19QUk9QX1RFWFRfQU5DSE9SLAorICAgIENTU19QUk9QX1dS
SVRJTkdfTU9ERQorI2VuZGlmCiB9OwogCiBjb25zdCB1bnNpZ25lZCBudW1Db21wdXRlZFByb3Bl
cnRpZXMgPSBzaXplb2YoY29tcHV0ZWRQcm9wZXJ0aWVzKSAvIHNpemVvZihjb21wdXRlZFByb3Bl
cnRpZXNbMF0pOwpAQCAtMTY1NCw2ICsxNjk4LDEwIEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENT
U0NvbXB1dGVkU3R5bGVEZWMKICAgICAgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX1RFWFRfU1RS
T0tFOgogICAgICAgICAgICAgLy8gRklYTUU6IFRoZSBhYm92ZSBhcmUgdW5pbXBsZW1lbnRlZC4K
ICAgICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShTVkcpCisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICByZXR1cm4gZ2V0U1ZHUHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eUlELCBEb05v
dFVwZGF0ZUxheW91dCk7CisjZW5kaWYKICAgICB9CiAKICAgICBMT0dfRVJST1IoInVuaW1wbGVt
ZW50ZWQgcHJvcGVydHlJRDogJWQiLCBwcm9wZXJ0eUlEKTsKSW5kZXg6IFdlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oCShyZXZpc2lvbiAyNjEwNikKKysrIFdlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2
ICs1NCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24+IG1ha2VNdXRhYmxlKCk7CiAKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBn
ZXRQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXJ0eUlELCBFVXBkYXRlTGF5b3V0KSBjb25zdDsK
KyNpZiBFTkFCTEUoU1ZHKQorICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGdldFNWR1Byb3BlcnR5
Q1NTVmFsdWUoaW50IHByb3BlcnR5SUQsIEVVcGRhdGVMYXlvdXQpIGNvbnN0OworI2VuZGlmCiAK
ICAgICBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBjb3B5SW5oZXJpdGFi
bGVQcm9wZXJ0aWVzKCkgY29uc3Q7CiAKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkJKHJldmlzaW9uIDI2MTA2KQor
KysgV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CSh3b3JraW5nIGNvcHkpCkBAIC00MCwxMSArNDAs
NiBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogCi0jaWYgRU5B
QkxFKFNWRykKLSNpbmNsdWRlICJrc3ZnY3NzcHJvcGVydGllcy5oIgotI2luY2x1ZGUgImtzdmdj
c3N2YWx1ZXMuaCIKLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAKQEAgLTEwMDIsMTAgKzk5Nyw2IEBAIHByb3BlcnR5OgogICAg
ICAgICBjb25zdCBjaGFyKiBzID0gc3RyLmFzY2lpKCk7CiAgICAgICAgIGludCBsID0gc3RyLmxl
bmd0aCgpOwogICAgICAgICAkJCA9IGdldFByb3BlcnR5SUQocywgbCk7Ci0jaWYgRU5BQkxFKFNW
RykKLSAgICAgICAgaWYgKCQkID09IDApCi0gICAgICAgICAgICAkJCA9IFNWRzo6Z2V0U1ZHQ1NT
UHJvcGVydHlJRChzLCBsKTsKLSNlbmRpZgogICAgIH0KICAgOwogCkBAIC0xMDU4LDEwICsxMDQ5
LDYgQEAgdGVybToKICAgfCBJREVOVCBtYXliZV9zcGFjZSB7CiAgICAgICBEZXByZWNhdGVkU3Ry
aW5nIHN0ciA9IGRlcHJlY2F0ZWRTdHJpbmcoJDEpOwogICAgICAgJCQuaWQgPSBnZXRWYWx1ZUlE
KHN0ci5sb3dlcigpLmxhdGluMSgpLCBzdHIubGVuZ3RoKCkpOwotI2lmIEVOQUJMRShTVkcpCi0g
ICAgICBpZiAoJCQuaWQgPT0gMCkKLSAgICAgICAgICAkJC5pZCA9IFNWRzo6Z2V0U1ZHQ1NTVmFs
dWVJRChzdHIubG93ZXIoKS5sYXRpbjEoKSwgc3RyLmxlbmd0aCgpKTsKLSNlbmRpZgogICAgICAg
JCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQ7CiAgICAgICAkJC5zdHJpbmcg
PSAkMTsKICAgfQpJbmRleDogV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCShyZXZpc2lvbiAyNjEwNikKKysrIFdlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0ODcsNiArMTQ4NywxMCBAQCBi
b29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgY2FzZSBDU1NfUFJP
UF9URVhUX09WRVJMSU5FOgogICAgIGNhc2UgQ1NTX1BST1BfVEVYVF9VTkRFUkxJTkU6CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBwYXJzZVNWR1ZhbHVlKHByb3BJZCwgaW1wb3J0YW50KTsKKyNlbmRpZgogICAgIH0K
IAogICAgIGlmICh2YWxpZF9wcmltaXRpdmUpIHsKQEAgLTE1MDcsMTAgKzE1MTEsNiBAQCBib29s
IENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIH0KICAgICAgICAg
ZGVsZXRlIHBhcnNlZFZhbHVlOwogICAgIH0KLSNpZiBFTkFCTEUoU1ZHKQotICAgIGlmIChwYXJz
ZVNWR1ZhbHVlKHByb3BJZCwgaW1wb3J0YW50KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0jZW5k
aWYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1N0eWxlRGVj
bGFyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRp
b24uY3BwCShyZXZpc2lvbiAyNjEwNikKKysrIFdlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiQ1NTUHJv
cGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJEZXByZWNhdGVk
VmFsdWVMaXN0LmgiCi0jaW5jbHVkZSAia3N2Z2Nzc3Byb3BlcnRpZXMuaCIKICNpbmNsdWRlIDxj
dHlwZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MSwxMiArNTAsNyBAQCBzdGF0aWMg
aW50IHByb3BlcnR5SUQoY29uc3QgU3RyaW5nJiBzKQogICAgICAgICBidWZmZXJbaV0gPSB0b2xv
d2VyKGMpOwogICAgIH0KIAotICAgIGludCBwcm9wSUQgPSBnZXRQcm9wZXJ0eUlEKGJ1ZmZlciwg
bGVuKTsKLSNpZiBFTkFCTEUoU1ZHKQotICAgIGlmICghcHJvcElEKQotICAgICAgICBwcm9wSUQg
PSBTVkc6OmdldFNWR0NTU1Byb3BlcnR5SUQoYnVmZmVyLCBsZW4pOwotI2VuZGlmCi0gICAgcmV0
dXJuIHByb3BJRDsKKyAgICByZXR1cm4gZ2V0UHJvcGVydHlJRChidWZmZXIsIGxlbik7CiB9CiAK
IENTU1N0eWxlRGVjbGFyYXRpb246OkNTU1N0eWxlRGVjbGFyYXRpb24oQ1NTUnVsZSogcGFyZW50
KQpJbmRleDogV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDI2MTA2KQorKysgV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzNzgsMTEg
KzQzNzgsMTIgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAg
IGNhc2UgQ1NTX1BST1BfX1dFQktJVF9URVhUX0RFQ09SQVRJT05TX0lOX0VGRkVDVDoKICAgICBj
YXNlIENTU19QUk9QX19XRUJLSVRfVEVYVF9TVFJPS0U6CiAgICAgICAgIHJldHVybjsKLSAgICB9
CiAjaWYgRU5BQkxFKFNWRykKLSAgICAvLyBUcnkgdGhlIFNWRyBwcm9wZXJ0aWVzCi0gICAgYXBw
bHlTVkdQcm9wZXJ0eShpZCwgdmFsdWUpOworICAgIGRlZmF1bHQ6CisgICAgICAgIC8vIFRyeSB0
aGUgU1ZHIHByb3BlcnRpZXMKKyAgICAgICAgYXBwbHlTVkdQcm9wZXJ0eShpZCwgdmFsdWUpOwog
I2VuZGlmCisgICAgfQogfQogCiB2b2lkIENTU1N0eWxlU2VsZWN0b3I6Om1hcEJhY2tncm91bmRB
dHRhY2htZW50KEJhY2tncm91bmRMYXllciogbGF5ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKSW5kZXg6
IFdlYkNvcmUva3N2ZzIvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9rc3ZnMi9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgkocmV2aXNpb24gMjYxMDYpCisrKyBX
ZWJDb3JlL2tzdmcyL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0y
Miw3ICsyMiw3IEBAIGNvbG9yLXJlbmRlcmluZwogZmlsbAogZmlsbC1vcGFjaXR5CiBmaWxsLXJ1
bGUKLWZvbnQtc2l6ZS1hZGp1c3QKKyNmb250LXNpemUtYWRqdXN0CiBpbWFnZS1yZW5kZXJpbmcK
IG1hcmtlcgogbWFya2VyLWVuZApJbmRleDogV2ViQ29yZS9rc3ZnMi9jc3MvU1ZHQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL2Nzcy9T
VkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS9rc3ZnMi9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwzMDcgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2Vp
ZGVsIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBFTkFC
TEUoU1ZHKQorI2luY2x1ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgorCisjaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKyAgICAKK1Bhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbjo6Z2V0U1ZHUHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvcGVydHlJRCwgRVVw
ZGF0ZUxheW91dCB1cGRhdGVMYXlvdXQpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IG1fbm9k
ZS5nZXQoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiAwOworICAgIAorICAgIC8v
IE1ha2Ugc3VyZSBvdXIgbGF5b3V0IGlzIHVwIHRvIGRhdGUgYmVmb3JlIHdlIGFsbG93IGEgcXVl
cnkgb24gdGhlc2UgYXR0cmlidXRlcy4KKyAgICBpZiAodXBkYXRlTGF5b3V0KQorICAgICAgICBu
b2RlLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKKyAgICAgICAgCisgICAgUmVuZGVyU3R5
bGUqIHN0eWxlID0gbm9kZS0+Y29tcHV0ZWRTdHlsZSgpOworICAgIGlmICghc3R5bGUpCisgICAg
ICAgIHJldHVybiAwOworICAgIAorICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9
IHN0eWxlLT5zdmdTdHlsZSgpOworICAgIGlmICghc3ZnU3R5bGUpCisgICAgICAgIHJldHVybiAw
OworICAgIAorICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4ocHJvcGVydHlJ
RCkpIHsKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9DTElQX1JVTEU6IHsKKyAgICAgICAgICAgIGlm
IChzdmdTdHlsZS0+Y2xpcFJ1bGUoKSA9PSBSVUxFX05PTlpFUk8pCisgICAgICAgICAgICAgICAg
cmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX05PTlpFUk8pOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NT
X1ZBTF9FVkVOT0REKTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIENTU19QUk9QX0ZMT09EX09Q
QUNJVFk6CisgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHN2Z1N0eWxl
LT5mbG9vZE9wYWNpdHkoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOworICAgICAg
ICBjYXNlIENTU19QUk9QX1NUT1BfT1BBQ0lUWToKKyAgICAgICAgICAgIHJldHVybiBuZXcgQ1NT
UHJpbWl0aXZlVmFsdWUoc3ZnU3R5bGUtPnN0b3BPcGFjaXR5KCksIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfTlVNQkVSKTsKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9QT0lOVEVSX0VWRU5UUzogewor
ICAgICAgICAgICAgc3dpdGNoIChzdmdTdHlsZS0+cG9pbnRlckV2ZW50cygpKSB7CisgICAgICAg
ICAgICBjYXNlIFBFX05PTkU6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRp
dmVWYWx1ZShDU1NfVkFMX05PTkUpOworICAgICAgICAgICAgY2FzZSBQRV9TVFJPS0U6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX1NUUk9LRSk7
CisgICAgICAgICAgICBjYXNlIFBFX0ZJTEw6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBD
U1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0ZJTEwpOworICAgICAgICAgICAgY2FzZSBQRV9QQUlO
VEVEOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZB
TF9QQUlOVEVEKTsKKyAgICAgICAgICAgIGNhc2UgUEVfVklTSUJMRToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfVklTSUJMRSk7CisgICAgICAg
ICAgICBjYXNlIFBFX1ZJU0lCTEVfU1RST0tFOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcg
Q1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9WSVNJQkxFU1RST0tFKTsKKyAgICAgICAgICAgIGNh
c2UgUEVfVklTSUJMRV9GSUxMOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0
aXZlVmFsdWUoQ1NTX1ZBTF9WSVNJQkxFRklMTCk7CisgICAgICAgICAgICBjYXNlIFBFX1ZJU0lC
TEVfUEFJTlRFRDoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVl
KENTU19WQUxfVklTSUJMRVBBSU5URUQpOworICAgICAgICAgICAgY2FzZSBQRV9BTEw6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0FMTCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBDU1NfUFJPUF9DT0xPUl9JTlRF
UlBPTEFUSU9OOiB7CisgICAgICAgICAgICBpZiAoc3ZnU3R5bGUtPmNvbG9ySW50ZXJwb2xhdGlv
bigpID09IENJX0FVVE8pCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVW
YWx1ZShDU1NfVkFMX0FVVE8pOworICAgICAgICAgICAgZWxzZSBpZiAoc3ZnU3R5bGUtPmNvbG9y
SW50ZXJwb2xhdGlvbigpID09IENJX1NSR0IpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBD
U1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX1NSR0IpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9MSU5FQVJSR0Ip
OworICAgICAgICB9CisgICAgICAgIGNhc2UgQ1NTX1BST1BfQ09MT1JfSU5URVJQT0xBVElPTl9G
SUxURVJTOiB7CisgICAgICAgICAgICBpZiAoc3ZnU3R5bGUtPmNvbG9ySW50ZXJwb2xhdGlvbkZp
bHRlcnMoKSA9PSBDSV9BVVRPKQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0
aXZlVmFsdWUoQ1NTX1ZBTF9BVVRPKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHN2Z1N0eWxlLT5j
b2xvckludGVycG9sYXRpb25GaWx0ZXJzKCkgPT0gQ0lfU1JHQikKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfU1JHQik7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFM
X0xJTkVBUlJHQik7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBDU1NfUFJPUF9GSUxMX09QQUNJ
VFk6CisgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHN2Z1N0eWxlLT5m
aWxsT3BhY2l0eSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CisgICAgICAgIGNh
c2UgQ1NTX1BST1BfRklMTF9SVUxFOiB7CisgICAgICAgICAgICBpZiAoc3ZnU3R5bGUtPmZpbGxS
dWxlKCkgPT0gUlVMRV9OT05aRVJPKQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJp
bWl0aXZlVmFsdWUoQ1NTX1ZBTF9OT05aRVJPKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfRVZFTk9ERCk7Cisg
ICAgICAgIH0KKyAgICAgICAgY2FzZSBDU1NfUFJPUF9DT0xPUl9SRU5ERVJJTkc6IHsKKyAgICAg
ICAgICAgIGlmIChzdmdTdHlsZS0+Y29sb3JSZW5kZXJpbmcoKSA9PSBDUl9BVVRPKQorICAgICAg
ICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9BVVRPKTsKKyAg
ICAgICAgICAgIGVsc2UgaWYgKHN2Z1N0eWxlLT5jb2xvclJlbmRlcmluZygpID09IENSX09QVElN
SVpFU1BFRUQpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShD
U1NfVkFMX09QVElNSVpFU1BFRUQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9PUFRJTUlaRVFVQUxJVFkpOwor
ICAgICAgICB9CisgICAgICAgIGNhc2UgQ1NTX1BST1BfSU1BR0VfUkVOREVSSU5HOiB7CisgICAg
ICAgICAgICBpZiAoc3ZnU3R5bGUtPmltYWdlUmVuZGVyaW5nKCkgPT0gSVJfQVVUTykKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQVVUTyk7Cisg
ICAgICAgICAgICBlbHNlIGlmIChzdmdTdHlsZS0+aW1hZ2VSZW5kZXJpbmcoKSA9PSBJUl9PUFRJ
TUlaRVNQRUVEKQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUo
Q1NTX1ZBTF9PUFRJTUlaRVNQRUVEKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfT1BUSU1JWkVRVUFMSVRZKTsK
KyAgICAgICAgfQorICAgICAgICBjYXNlIENTU19QUk9QX1NIQVBFX1JFTkRFUklORzogeworICAg
ICAgICAgICAgaWYgKHN2Z1N0eWxlLT5zaGFwZVJlbmRlcmluZygpID09IFNSX0FVVE8pCisgICAg
ICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0FVVE8pOwor
ICAgICAgICAgICAgZWxzZSBpZiAoc3ZnU3R5bGUtPnNoYXBlUmVuZGVyaW5nKCkgPT0gU1JfT1BU
SU1JWkVTUEVFRCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVl
KENTU19WQUxfT1BUSU1JWkVTUEVFRCk7CisgICAgICAgICAgICBlbHNlIGlmIChzdmdTdHlsZS0+
c2hhcGVSZW5kZXJpbmcoKSA9PSBTUl9DUklTUEVER0VTKQorICAgICAgICAgICAgICAgIHJldHVy
biBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9DUklTUEVER0VTKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19W
QUxfR0VPTUVUUklDUFJFQ0lTSU9OKTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIENTU19QUk9Q
X1NUUk9LRV9MSU5FQ0FQOiB7CisgICAgICAgICAgICBpZiAoc3ZnU3R5bGUtPmNhcFN0eWxlKCkg
PT0gQnV0dENhcCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVl
KENTU19WQUxfQlVUVCk7CisgICAgICAgICAgICBlbHNlIGlmIChzdmdTdHlsZS0+Y2FwU3R5bGUo
KSA9PSBSb3VuZENhcCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZh
bHVlKENTU19WQUxfUk9VTkQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJl
dHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9TUVVBUkUpOworICAgICAgICB9Cisg
ICAgICAgIGNhc2UgQ1NTX1BST1BfU1RST0tFX0xJTkVKT0lOOiB7CisgICAgICAgICAgICBpZiAo
c3ZnU3R5bGUtPmpvaW5TdHlsZSgpID09IE1pdGVySm9pbikKKyAgICAgICAgICAgICAgICByZXR1
cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfTUlURVIpOworICAgICAgICAgICAgZWxz
ZSBpZiAoc3ZnU3R5bGUtPmpvaW5TdHlsZSgpID09IFJvdW5kSm9pbikKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfUk9VTkQpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NT
X1ZBTF9CRVZFTCk7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBDU1NfUFJPUF9TVFJPS0VfTUlU
RVJMSU1JVDoKKyAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoc3ZnU3R5
bGUtPnN0cm9rZU1pdGVyTGltaXQoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOwor
ICAgICAgICBjYXNlIENTU19QUk9QX1NUUk9LRV9PUEFDSVRZOgorICAgICAgICAgICAgcmV0dXJu
IG5ldyBDU1NQcmltaXRpdmVWYWx1ZShzdmdTdHlsZS0+c3Ryb2tlT3BhY2l0eSgpLCBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CisgICAgICAgIGNhc2UgQ1NTX1BST1BfVEVYVF9SRU5E
RVJJTkc6IHsKKyAgICAgICAgICAgIHN3aXRjaCAoc3ZnU3R5bGUtPnRleHRSZW5kZXJpbmcoKSkg
eworICAgICAgICAgICAgY2FzZSBUUl9BVVRPOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcg
Q1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9BVVRPKTsKKyAgICAgICAgICAgIGNhc2UgVFJfT1BU
SU1JWkVTUEVFRDoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVl
KENTU19WQUxfT1BUSU1JWkVTUEVFRCk7CisgICAgICAgICAgICBjYXNlIFRSX09QVElNSVpFTEVH
SUJJTElUWToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENT
U19WQUxfT1BUSU1JWkVMRUdJQklMSVRZKTsKKyAgICAgICAgICAgIGNhc2UgVFJfR0VPTUVUUklD
UFJFQ0lTSU9OOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUo
Q1NTX1ZBTF9HRU9NRVRSSUNQUkVDSVNJT04pOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICAgIGNhc2UgQ1NTX1BST1BfQUxJR05NRU5UX0JBU0VMSU5FOiB7CisgICAgICAgICAgICBz
d2l0Y2ggKHN2Z1N0eWxlLT5hbGlnbm1lbnRCYXNlbGluZSgpKSB7CisgICAgICAgICAgICBjYXNl
IEFCX0FVVE86CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShD
U1NfVkFMX0FVVE8pOworICAgICAgICAgICAgY2FzZSBBQl9CQVNFTElORToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQkFTRUxJTkUpOworICAg
ICAgICAgICAgY2FzZSBBQl9CRUZPUkVfRURHRToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3
IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQkVGT1JFX0VER0UpOworICAgICAgICAgICAgY2Fz
ZSBBQl9URVhUX0JFRk9SRV9FREdFOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJp
bWl0aXZlVmFsdWUoQ1NTX1ZBTF9URVhUX0JFRk9SRV9FREdFKTsKKyAgICAgICAgICAgIGNhc2Ug
QUJfTUlERExFOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUo
Q1NTX1ZBTF9NSURETEUpOworICAgICAgICAgICAgY2FzZSBBQl9DRU5UUkFMOgorICAgICAgICAg
ICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9DRU5UUkFMKTsKKyAg
ICAgICAgICAgIGNhc2UgQUJfQUZURVJfRURHRToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3
IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQUZURVJfRURHRSk7CisgICAgICAgICAgICBjYXNl
IEFCX1RFWFRfQUZURVJfRURHRToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1p
dGl2ZVZhbHVlKENTU19WQUxfVEVYVF9BRlRFUl9FREdFKTsKKyAgICAgICAgICAgIGNhc2UgQUJf
SURFT0dSQVBISUM6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1
ZShDU1NfVkFMX0lERU9HUkFQSElDKTsKKyAgICAgICAgICAgIGNhc2UgQUJfQUxQSEFCRVRJQzoK
KyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQUxQ
SEFCRVRJQyk7CisgICAgICAgICAgICBjYXNlIEFCX0hBTkdJTkc6CisgICAgICAgICAgICAgICAg
cmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0hBTkdJTkcpOworICAgICAgICAg
ICAgY2FzZSBBQl9NQVRIRU1BVElDQUw6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQ
cmltaXRpdmVWYWx1ZShDU1NfVkFMX01BVEhFTUFUSUNBTCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgY2FzZSBDU1NfUFJPUF9ET01JTkFOVF9CQVNFTElORTogeworICAgICAg
ICAgICAgc3dpdGNoIChzdmdTdHlsZS0+ZG9taW5hbnRCYXNlbGluZSgpKSB7CisgICAgICAgICAg
ICBjYXNlIERCX0FVVE86CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVW
YWx1ZShDU1NfVkFMX0FVVE8pOworICAgICAgICAgICAgY2FzZSBEQl9VU0VfU0NSSVBUOgorICAg
ICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9VU0VfU0NS
SVBUKTsKKyAgICAgICAgICAgIGNhc2UgREJfTk9fQ0hBTkdFOgorICAgICAgICAgICAgICAgIHJl
dHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9OT19DSEFOR0UpOworICAgICAgICAg
ICAgY2FzZSBEQl9SRVNFVF9TSVpFOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJp
bWl0aXZlVmFsdWUoQ1NTX1ZBTF9SRVNFVF9TSVpFKTsKKyAgICAgICAgICAgIGNhc2UgREJfQ0VO
VFJBTDoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19W
QUxfQ0VOVFJBTCk7CisgICAgICAgICAgICBjYXNlIERCX01JRERMRToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfTUlERExFKTsKKyAgICAgICAg
ICAgIGNhc2UgREJfVEVYVF9CRUZPUkVfRURHRToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3
IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfVEVYVF9CRUZPUkVfRURHRSk7CisgICAgICAgICAg
ICBjYXNlIERCX1RFWFRfQUZURVJfRURHRToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENT
U1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfVEVYVF9BRlRFUl9FREdFKTsKKyAgICAgICAgICAgIGNh
c2UgREJfSURFT0dSQVBISUM6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRp
dmVWYWx1ZShDU1NfVkFMX0lERU9HUkFQSElDKTsKKyAgICAgICAgICAgIGNhc2UgREJfQUxQSEFC
RVRJQzoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19W
QUxfQUxQSEFCRVRJQyk7CisgICAgICAgICAgICBjYXNlIERCX0hBTkdJTkc6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0hBTkdJTkcpOworICAg
ICAgICAgICAgY2FzZSBEQl9NQVRIRU1BVElDQUw6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5l
dyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX01BVEhFTUFUSUNBTCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBDU1NfUFJPUF9URVhUX0FOQ0hPUjogeworICAgICAg
ICAgICAgaWYgKHN2Z1N0eWxlLT50ZXh0QW5jaG9yKCkgPT0gVEFfU1RBUlQpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX1NUQVJUKTsKKyAgICAg
ICAgICAgIGVsc2UgaWYgKHN2Z1N0eWxlLT50ZXh0QW5jaG9yKCkgPT0gVEFfTUlERExFKQorICAg
ICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9NSURETEUp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0
aXZlVmFsdWUoQ1NTX1ZBTF9FTkQpOworICAgICAgICB9CisgICAgICAgIGNhc2UgQ1NTX1BST1Bf
V1JJVElOR19NT0RFOiB7CisgICAgICAgICAgICBzd2l0Y2ggKHN2Z1N0eWxlLT53cml0aW5nTW9k
ZSgpKSB7CisgICAgICAgICAgICBjYXNlIFdNX0xSVEI6CisgICAgICAgICAgICAgICAgcmV0dXJu
IG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0xSX1RCKTsKKyAgICAgICAgICAgIGNhc2Ug
V01fTFI6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1Nf
VkFMX0xSKTsKKyAgICAgICAgICAgIGNhc2UgV01fUkxUQjoKKyAgICAgICAgICAgICAgICByZXR1
cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfUkxfVEIpOworICAgICAgICAgICAgY2Fz
ZSBXTV9STDoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENT
U19WQUxfUkwpOworICAgICAgICAgICAgY2FzZSBXTV9UQlJMOgorICAgICAgICAgICAgICAgIHJl
dHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9UQl9STCk7CisgICAgICAgICAgICBj
YXNlIFdNX1RCOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUo
Q1NTX1ZBTF9UQik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBDU1Nf
UFJPUF9DTElQX1BBVEg6CisgICAgICAgICAgICBpZiAoIXN2Z1N0eWxlLT5jbGlwUGF0aCgpLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHN2
Z1N0eWxlLT5jbGlwUGF0aCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSk7CisgICAgICAg
ICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfTk9ORSk7CisgICAgICAg
IGNhc2UgQ1NTX1BST1BfTUFTSzoKKyAgICAgICAgICAgIGlmICghc3ZnU3R5bGUtPm1hc2tFbGVt
ZW50KCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZl
VmFsdWUoc3ZnU3R5bGUtPm1hc2tFbGVtZW50KCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVVJJ
KTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9OT05F
KTsKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9GSUxURVI6CisgICAgICAgICAgICBpZiAoIXN2Z1N0
eWxlLT5maWx0ZXIoKS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQ
cmltaXRpdmVWYWx1ZShzdmdTdHlsZS0+ZmlsdGVyKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
VVJJKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9O
T05FKTsKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9GTE9PRF9DT0xPUjoKKyAgICAgICAgICAgIHJl
dHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoc3ZnU3R5bGUtPmZsb29kQ29sb3IoKS5yZ2IoKSk7
CisgICAgICAgIGNhc2UgQ1NTX1BST1BfTElHSFRJTkdfQ09MT1I6CisgICAgICAgICAgICByZXR1
cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHN2Z1N0eWxlLT5saWdodGluZ0NvbG9yKCkucmdiKCkp
OworICAgICAgICBjYXNlIENTU19QUk9QX1NUT1BfQ09MT1I6CisgICAgICAgICAgICByZXR1cm4g
bmV3IENTU1ByaW1pdGl2ZVZhbHVlKHN2Z1N0eWxlLT5zdG9wQ29sb3IoKS5yZ2IoKSk7CisgICAg
ICAgIGNhc2UgQ1NTX1BST1BfRklMTDoKKyAgICAgICAgICAgIHJldHVybiBzdmdTdHlsZS0+Zmls
bFBhaW50KCk7CisgICAgICAgIGNhc2UgQ1NTX1BST1BfS0VSTklORzoKKyAgICAgICAgICAgIHJl
dHVybiBzdmdTdHlsZS0+a2VybmluZygpOworICAgICAgICBjYXNlIENTU19QUk9QX01BUktFUl9F
TkQ6CisgICAgICAgICAgICBpZiAoIXN2Z1N0eWxlLT5lbmRNYXJrZXIoKS5pc0VtcHR5KCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShzdmdTdHlsZS0+ZW5k
TWFya2VyKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVVJJKTsKKyAgICAgICAgICAgIHJldHVy
biBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9OT05FKTsKKyAgICAgICAgY2FzZSBDU1Nf
UFJPUF9NQVJLRVJfTUlEOgorICAgICAgICAgICAgaWYgKCFzdmdTdHlsZS0+bWlkTWFya2VyKCku
aXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUo
c3ZnU3R5bGUtPm1pZE1hcmtlcigpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSk7CisgICAg
ICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfTk9ORSk7CisgICAg
ICAgIGNhc2UgQ1NTX1BST1BfTUFSS0VSX1NUQVJUOgorICAgICAgICAgICAgaWYgKCFzdmdTdHls
ZS0+c3RhcnRNYXJrZXIoKS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBD
U1NQcmltaXRpdmVWYWx1ZShzdmdTdHlsZS0+c3RhcnRNYXJrZXIoKSwgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19VUkkpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShD
U1NfVkFMX05PTkUpOworICAgICAgICBjYXNlIENTU19QUk9QX1NUUk9LRToKKyAgICAgICAgICAg
IHJldHVybiBzdmdTdHlsZS0+c3Ryb2tlUGFpbnQoKTsKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9T
VFJPS0VfREFTSEFSUkFZOgorICAgICAgICAgICAgcmV0dXJuIHN2Z1N0eWxlLT5zdHJva2VEYXNo
QXJyYXkoKTsKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9TVFJPS0VfREFTSE9GRlNFVDoKKyAgICAg
ICAgICAgIHJldHVybiBzdmdTdHlsZS0+c3Ryb2tlRGFzaE9mZnNldCgpOworICAgICAgICBjYXNl
IENTU19QUk9QX1NUUk9LRV9XSURUSDoKKyAgICAgICAgICAgIHJldHVybiBzdmdTdHlsZS0+c3Ry
b2tlV2lkdGgoKTsKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9NQVJLRVI6CisgICAgICAgIGNhc2Ug
Q1NTX1BST1BfRU5BQkxFX0JBQ0tHUk9VTkQ6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfQ09MT1Jf
UFJPRklMRToKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9CQVNFTElORV9TSElGVDoKKyAgICAgICAg
Y2FzZSBDU1NfUFJPUF9HTFlQSF9PUklFTlRBVElPTl9IT1JJWk9OVEFMOgorICAgICAgICBjYXNl
IENTU19QUk9QX0dMWVBIX09SSUVOVEFUSU9OX1ZFUlRJQ0FMOgorICAgICAgICAgICAgLy8gdGhl
IGFib3ZlIHByb3BlcnRpZXMgYXJlIG5vdCB5ZXQgaW1wbGVtZW50ZWQgaW4gdGhlIGVuZ2luZQor
ICAgICAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgLy8gSWYgeW91IGNyYXNo
IGhlcmUsIGl0J3MgYmVjYXVzZSB5b3UgYWRkZWQgYSBjc3MgcHJvcGVydHkgYW5kIGFyZSBub3Qg
aGFuZGxpbmcgaXQKKyAgICAgICAgLy8gaW4gZWl0aGVyIHRoaXMgc3dpdGNoIHN0YXRlbWVudCBv
ciB0aGUgb25lIGluIENTU0NvbXB1dGVkU3R5bGVEZWxjYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NW
YWx1ZQorICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKDAsICJ1bmltcGxlbWVudGVkIHByb3Bl
cnR5SUQ6ICVkIiwgcHJvcGVydHlJRCk7CisgICAgfQorICAgIExPR19FUlJPUigidW5pbXBsZW1l
bnRlZCBwcm9wZXJ0eUlEOiAlZCIsIHByb3BlcnR5SUQpOworICAgIHJldHVybiAwOworfQorCit9
CisKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHKQorCisvLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJD
b3JlL2tzdmcyL2Nzcy9TVkdDU1NQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2
ZzIvY3NzL1NWR0NTU1BhcnNlci5jcHAJKHJldmlzaW9uIDI2MTA2KQorKysgV2ViQ29yZS9rc3Zn
Mi9jc3MvU1ZHQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsOCArMzMsNiBAQAog
I2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIK
ICNpbmNsdWRlICJTVkdQYWludC5oIgotI2luY2x1ZGUgImtzdmdjc3Nwcm9wZXJ0aWVzLmMiCi0j
aW5jbHVkZSAia3N2Z2Nzc3ZhbHVlcy5jIgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRTdHJpbmcuaCIK
IAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTU1LDE2ICs1MywxNiBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VTVkdWYWx1ZShpbnQgcHJvcElkCiAgICAgc3dpdGNoIChwcm9wSWQpIHsKICAgICAv
KiBUaGUgY29tbWVudCB0byB0aGUgcmlnaHQgZGVmaW5lcyBhbGwgdmFsaWQgdmFsdWUgb2YgdGhl
c2UKICAgICAgKiBwcm9wZXJ0aWVzIGFzIGRlZmluZWQgaW4gU1ZHIDEuMSwgQXBwZW5kaXggTi4g
UHJvcGVydHkgaW5kZXggKi8KLSAgICBjYXNlIFNWR0NTU19QUk9QX0FMSUdOTUVOVF9CQVNFTElO
RToKKyAgICBjYXNlIENTU19QUk9QX0FMSUdOTUVOVF9CQVNFTElORToKICAgICAvLyBhdXRvIHwg
YmFzZWxpbmUgfCBiZWZvcmUtZWRnZSB8IHRleHQtYmVmb3JlLWVkZ2UgfCBtaWRkbGUgfAogICAg
IC8vIGNlbnRyYWwgfCBhZnRlci1lZGdlIHwgdGV4dC1hZnRlci1lZGdlIHwgaWRlb2dyYXBoaWMg
fCBhbHBoYWJldGljIHwKICAgICAvLyBoYW5naW5nIHwgbWF0aGVtYXRpY2FsIHwgaW5oZXJpdAog
ICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9BVVRPIHx8IGlkID09IENTU19WQUxfQkFTRUxJTkUg
fHwgaWQgPT0gQ1NTX1ZBTF9NSURETEUgfHwKLSAgICAgICAgICAoaWQgPj0gU1ZHQ1NTX1ZBTF9C
RUZPUkVfRURHRSAmJiBpZCA8PSBTVkdDU1NfVkFMX01BVEhFTUFUSUNBTCkpCisgICAgICAgICAg
KGlkID49IENTU19WQUxfQkVGT1JFX0VER0UgJiYgaWQgPD0gQ1NTX1ZBTF9NQVRIRU1BVElDQUwp
KQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAK
LSAgICBjYXNlIFNWR0NTU19QUk9QX0JBU0VMSU5FX1NISUZUOgorICAgIGNhc2UgQ1NTX1BST1Bf
QkFTRUxJTkVfU0hJRlQ6CiAgICAgLy8gYmFzZWxpbmUgfCBzdXBlciB8IHN1YiB8IDxwZXJjZW50
YWdlPiB8IDxsZW5ndGg+IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9CQVNF
TElORSB8fCBpZCA9PSBDU1NfVkFMX1NVQiB8fAogICAgICAgICAgICBpZCA+PSBDU1NfVkFMX1NV
UEVSKQpAQCAtNzMsMjYgKzcxLDI2IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVNWR1ZhbHVlKGlu
dCBwcm9wSWQKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwg
Rkxlbmd0aHxGUGVyY2VudCwgZmFsc2UpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZH
Q1NTX1BST1BfRE9NSU5BTlRfQkFTRUxJTkU6CisgICAgY2FzZSBDU1NfUFJPUF9ET01JTkFOVF9C
QVNFTElORToKICAgICAvLyBhdXRvIHwgdXNlLXNjcmlwdCB8IG5vLWNoYW5nZSB8IHJlc2V0LXNp
emUgfCBpZGVvZ3JhcGhpYyB8CiAgICAgLy8gYWxwaGFiZXRpYyB8IGhhbmdpbmcgfCBtYXRoZW1h
dGljYWwgfCBjZW50cmFsIHwgbWlkZGxlIHwKICAgICAvLyB0ZXh0LWFmdGVyLWVkZ2UgfCB0ZXh0
LWJlZm9yZS1lZGdlIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9BVVRPIHx8
IGlkID09IENTU19WQUxfTUlERExFIHx8Ci0gICAgICAgICAgKGlkID49IFNWR0NTU19WQUxfVVNF
X1NDUklQVCAmJiBpZCA8PSBTVkdDU1NfVkFMX1JFU0VUX1NJWkUpIHx8Ci0gICAgICAgICAgKGlk
ID49IFNWR0NTU19WQUxfQ0VOVFJBTCAmJiBpZCA8PSBTVkdDU1NfVkFMX01BVEhFTUFUSUNBTCkp
CisgICAgICAgICAgKGlkID49IENTU19WQUxfVVNFX1NDUklQVCAmJiBpZCA8PSBDU1NfVkFMX1JF
U0VUX1NJWkUpIHx8CisgICAgICAgICAgKGlkID49IENTU19WQUxfQ0VOVFJBTCAmJiBpZCA8PSBD
U1NfVkFMX01BVEhFTUFUSUNBTCkpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVl
OwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfRU5BQkxFX0JBQ0tHUk9V
TkQ6CisgICAgY2FzZSBDU1NfUFJPUF9FTkFCTEVfQkFDS0dST1VORDoKICAgICAvLyBhY2N1bXVs
YXRlIHwgbmV3IFt4XSBbeV0gW3dpZHRoXSBbaGVpZ2h0XSB8IGluaGVyaXQKLSAgICAgICAgaWYg
KGlkID09IFNWR0NTU19WQUxfQUNDVU1VTEFURSkgLy8gVE9ETyA6IG5ldworICAgICAgICBpZiAo
aWQgPT0gQ1NTX1ZBTF9BQ0NVTVVMQVRFKSAvLyBUT0RPIDogbmV3CiAgICAgICAgICAgICB2YWxp
ZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BS
T1BfTUFSS0VSX1NUQVJUOgotICAgIGNhc2UgU1ZHQ1NTX1BST1BfTUFSS0VSX01JRDoKLSAgICBj
YXNlIFNWR0NTU19QUk9QX01BUktFUl9FTkQ6Ci0gICAgY2FzZSBTVkdDU1NfUFJPUF9NQVNLOgor
ICAgIGNhc2UgQ1NTX1BST1BfTUFSS0VSX1NUQVJUOgorICAgIGNhc2UgQ1NTX1BST1BfTUFSS0VS
X01JRDoKKyAgICBjYXNlIENTU19QUk9QX01BUktFUl9FTkQ6CisgICAgY2FzZSBDU1NfUFJPUF9N
QVNLOgogICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9OT05FKQogICAgICAgICAgICAgdmFsaWRf
cHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19VUkkpIHsKQEAgLTEwMiw2MSArMTAwLDYxIEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZVNWR1ZhbHVlKGludCBwcm9wSWQKICAgICAgICAgfQogICAgICAgICBicmVhazsK
IAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfQ0xJUF9SVUxFOiAgICAgICAgICAgIC8vIG5vbnplcm8g
fCBldmVub2RkIHwgaW5oZXJpdAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfRklMTF9SVUxFOgotICAg
ICAgICBpZiAoaWQgPT0gU1ZHQ1NTX1ZBTF9OT05aRVJPIHx8IGlkID09IFNWR0NTU19WQUxfRVZF
Tk9ERCkKKyAgICBjYXNlIENTU19QUk9QX0NMSVBfUlVMRTogICAgICAgICAgICAvLyBub256ZXJv
IHwgZXZlbm9kZCB8IGluaGVyaXQKKyAgICBjYXNlIENTU19QUk9QX0ZJTExfUlVMRToKKyAgICAg
ICAgaWYgKGlkID09IENTU19WQUxfTk9OWkVSTyB8fCBpZCA9PSBDU1NfVkFMX0VWRU5PREQpCiAg
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAotICAg
IGNhc2UgU1ZHQ1NTX1BST1BfU1RST0tFX01JVEVSTElNSVQ6ICAgLy8gPG1pdGVybGltaXQ+IHwg
aW5oZXJpdAorICAgIGNhc2UgQ1NTX1BST1BfU1RST0tFX01JVEVSTElNSVQ6ICAgLy8gPG1pdGVy
bGltaXQ+IHwgaW5oZXJpdAogICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFs
dWUsIEZOdW1iZXJ8Rk5vbk5lZywgZmFsc2UpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2Ug
U1ZHQ1NTX1BST1BfU1RST0tFX0xJTkVKT0lOOiAgIC8vIG1pdGVyIHwgcm91bmQgfCBiZXZlbCB8
IGluaGVyaXQKLSAgICAgICAgaWYgKGlkID09IFNWR0NTU19WQUxfTUlURVIgfHwgaWQgPT0gQ1NT
X1ZBTF9ST1VORCB8fCBpZCA9PSBTVkdDU1NfVkFMX0JFVkVMKQorICAgIGNhc2UgQ1NTX1BST1Bf
U1RST0tFX0xJTkVKT0lOOiAgIC8vIG1pdGVyIHwgcm91bmQgfCBiZXZlbCB8IGluaGVyaXQKKyAg
ICAgICAgaWYgKGlkID09IENTU19WQUxfTUlURVIgfHwgaWQgPT0gQ1NTX1ZBTF9ST1VORCB8fCBp
ZCA9PSBDU1NfVkFMX0JFVkVMKQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsK
ICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFNWR0NTU19QUk9QX1NUUk9LRV9MSU5FQ0FQOiAg
ICAvLyBidXR0IHwgcm91bmQgfCBzcXVhcmUgfCBpbmhlcml0Ci0gICAgICAgIGlmIChpZCA9PSBT
VkdDU1NfVkFMX0JVVFQgfHwgaWQgPT0gQ1NTX1ZBTF9ST1VORCB8fCBpZCA9PSBDU1NfVkFMX1NR
VUFSRSkKKyAgICBjYXNlIENTU19QUk9QX1NUUk9LRV9MSU5FQ0FQOiAgICAvLyBidXR0IHwgcm91
bmQgfCBzcXVhcmUgfCBpbmhlcml0CisgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX0JVVFQgfHwg
aWQgPT0gQ1NTX1ZBTF9ST1VORCB8fCBpZCA9PSBDU1NfVkFMX1NRVUFSRSkKICAgICAgICAgICAg
IHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBTVkdD
U1NfUFJPUF9TVFJPS0VfT1BBQ0lUWTogICAvLyA8b3BhY2l0eS12YWx1ZT4gfCBpbmhlcml0Ci0g
ICAgY2FzZSBTVkdDU1NfUFJPUF9GSUxMX09QQUNJVFk6Ci0gICAgY2FzZSBTVkdDU1NfUFJPUF9T
VE9QX09QQUNJVFk6Ci0gICAgY2FzZSBTVkdDU1NfUFJPUF9GTE9PRF9PUEFDSVRZOgorICAgIGNh
c2UgQ1NTX1BST1BfU1RST0tFX09QQUNJVFk6ICAgLy8gPG9wYWNpdHktdmFsdWU+IHwgaW5oZXJp
dAorICAgIGNhc2UgQ1NTX1BST1BfRklMTF9PUEFDSVRZOgorICAgIGNhc2UgQ1NTX1BST1BfU1RP
UF9PUEFDSVRZOgorICAgIGNhc2UgQ1NTX1BST1BfRkxPT0RfT1BBQ0lUWToKICAgICAgICAgdmFs
aWRfcHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZOdW1iZXJ8RlBlcmNlbnQs
IGZhbHNlKSk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBTVkdDU1NfUFJPUF9TSEFQRV9S
RU5ERVJJTkc6CisgICAgY2FzZSBDU1NfUFJPUF9TSEFQRV9SRU5ERVJJTkc6CiAgICAgLy8gYXV0
byB8IG9wdGltaXplU3BlZWQgfCBjcmlzcEVkZ2VzIHwgZ2VvbWV0cmljUHJlY2lzaW9uIHwgaW5o
ZXJpdAotICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9BVVRPIHx8IGlkID09IFNWR0NTU19WQUxf
T1BUSU1JWkVTUEVFRCB8fAotICAgICAgICAgICAgaWQgPT0gU1ZHQ1NTX1ZBTF9DUklTUEVER0VT
IHx8IGlkID09IFNWR0NTU19WQUxfR0VPTUVUUklDUFJFQ0lTSU9OKQorICAgICAgICBpZiAoaWQg
PT0gQ1NTX1ZBTF9BVVRPIHx8IGlkID09IENTU19WQUxfT1BUSU1JWkVTUEVFRCB8fAorICAgICAg
ICAgICAgaWQgPT0gQ1NTX1ZBTF9DUklTUEVER0VTIHx8IGlkID09IENTU19WQUxfR0VPTUVUUklD
UFJFQ0lTSU9OKQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAg
YnJlYWs7CiAKLSAgICBjYXNlIFNWR0NTU19QUk9QX1RFWFRfUkVOREVSSU5HOiAgIC8vIGF1dG8g
fCBvcHRpbWl6ZVNwZWVkIHwgb3B0aW1pemVMZWdpYmlsaXR5IHwgZ2VvbWV0cmljUHJlY2lzaW9u
IHwgaW5oZXJpdAotICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9BVVRPIHx8IGlkID09IFNWR0NT
U19WQUxfT1BUSU1JWkVTUEVFRCB8fCBpZCA9PSBTVkdDU1NfVkFMX09QVElNSVpFTEVHSUJJTElU
WSB8fAotICAgICAgIGlkID09IFNWR0NTU19WQUxfR0VPTUVUUklDUFJFQ0lTSU9OKQorICAgIGNh
c2UgQ1NTX1BST1BfVEVYVF9SRU5ERVJJTkc6ICAgLy8gYXV0byB8IG9wdGltaXplU3BlZWQgfCBv
cHRpbWl6ZUxlZ2liaWxpdHkgfCBnZW9tZXRyaWNQcmVjaXNpb24gfCBpbmhlcml0CisgICAgICAg
IGlmIChpZCA9PSBDU1NfVkFMX0FVVE8gfHwgaWQgPT0gQ1NTX1ZBTF9PUFRJTUlaRVNQRUVEIHx8
IGlkID09IENTU19WQUxfT1BUSU1JWkVMRUdJQklMSVRZIHx8CisgICAgICAgaWQgPT0gQ1NTX1ZB
TF9HRU9NRVRSSUNQUkVDSVNJT04pCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVl
OwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfSU1BR0VfUkVOREVSSU5H
OiAgLy8gYXV0byB8IG9wdGltaXplU3BlZWQgfAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfQ09MT1Jf
UkVOREVSSU5HOiAgLy8gb3B0aW1pemVRdWFsaXR5IHwgaW5oZXJpdAotICAgICAgICBpZiAoaWQg
PT0gQ1NTX1ZBTF9BVVRPIHx8IGlkID09IFNWR0NTU19WQUxfT1BUSU1JWkVTUEVFRCB8fAotICAg
ICAgICAgICAgaWQgPT0gU1ZHQ1NTX1ZBTF9PUFRJTUlaRVFVQUxJVFkpCisgICAgY2FzZSBDU1Nf
UFJPUF9JTUFHRV9SRU5ERVJJTkc6ICAvLyBhdXRvIHwgb3B0aW1pemVTcGVlZCB8CisgICAgY2Fz
ZSBDU1NfUFJPUF9DT0xPUl9SRU5ERVJJTkc6ICAvLyBvcHRpbWl6ZVF1YWxpdHkgfCBpbmhlcml0
CisgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX0FVVE8gfHwgaWQgPT0gQ1NTX1ZBTF9PUFRJTUla
RVNQRUVEIHx8CisgICAgICAgICAgICBpZCA9PSBDU1NfVkFMX09QVElNSVpFUVVBTElUWSkKICAg
ICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCi0gICAg
Y2FzZSBTVkdDU1NfUFJPUF9DT0xPUl9QUk9GSUxFOiAvLyBhdXRvIHwgc1JHQiB8IDxuYW1lPiB8
IDx1cmk+IGluaGVyaXQKLSAgICAgICAgaWYgKGlkID09IENTU19WQUxfQVVUTyB8fCBpZCA9PSBT
VkdDU1NfVkFMX1NSR0IpCisgICAgY2FzZSBDU1NfUFJPUF9DT0xPUl9QUk9GSUxFOiAvLyBhdXRv
IHwgc1JHQiB8IDxuYW1lPiB8IDx1cmk+IGluaGVyaXQKKyAgICAgICAgaWYgKGlkID09IENTU19W
QUxfQVVUTyB8fCBpZCA9PSBDU1NfVkFMX1NSR0IpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfQ09MT1Jf
SU5URVJQT0xBVElPTjogICAvLyBhdXRvIHwgc1JHQiB8IGxpbmVhclJHQiB8IGluaGVyaXQKLSAg
ICBjYXNlIFNWR0NTU19QUk9QX0NPTE9SX0lOVEVSUE9MQVRJT05fRklMVEVSUzogIAotICAgICAg
ICBpZiAoaWQgPT0gQ1NTX1ZBTF9BVVRPIHx8IGlkID09IFNWR0NTU19WQUxfU1JHQiB8fCBpZCA9
PSBTVkdDU1NfVkFMX0xJTkVBUlJHQikKKyAgICBjYXNlIENTU19QUk9QX0NPTE9SX0lOVEVSUE9M
QVRJT046ICAgLy8gYXV0byB8IHNSR0IgfCBsaW5lYXJSR0IgfCBpbmhlcml0CisgICAgY2FzZSBD
U1NfUFJPUF9DT0xPUl9JTlRFUlBPTEFUSU9OX0ZJTFRFUlM6ICAKKyAgICAgICAgaWYgKGlkID09
IENTU19WQUxfQVVUTyB8fCBpZCA9PSBDU1NfVkFMX1NSR0IgfHwgaWQgPT0gQ1NTX1ZBTF9MSU5F
QVJSR0IpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVh
azsKIApAQCAtMTY0LDI2ICsxNjIsMjYgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUo
aW50IHByb3BJZAogICAgICAqIGNvcnJlY3RseSBhbmQgYWxsb3dzIG9wdGltaXphdGlvbiBpbiBh
cHBseVJ1bGUoLi4pCiAgICAgICovCiAKLSAgICBjYXNlIFNWR0NTU19QUk9QX1BPSU5URVJfRVZF
TlRTOgorICAgIGNhc2UgQ1NTX1BST1BfUE9JTlRFUl9FVkVOVFM6CiAgICAgLy8gbm9uZSB8IHZp
c2libGVQYWludGVkIHwgdmlzaWJsZUZpbGwgfCB2aXNpYmxlU3Ryb2tlIHwgdmlzaWJsZSB8CiAg
ICAgLy8gcGFpbnRlZCB8IGZpbGwgfCBzdHJva2UgfCBub25lIHwgYWxsIHwgaW5oZXJpdAogICAg
ICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9WSVNJQkxFIHx8IGlkID09IENTU19WQUxfTk9ORSB8fAot
ICAgICAgICAgIChpZCA+PSBTVkdDU1NfVkFMX1ZJU0lCTEVQQUlOVEVEICYmIGlkIDw9IFNWR0NT
U19WQUxfQUxMKSkKKyAgICAgICAgICAoaWQgPj0gQ1NTX1ZBTF9WSVNJQkxFUEFJTlRFRCAmJiBp
ZCA8PSBDU1NfVkFMX0FMTCkpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwog
ICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfVEVYVF9BTkNIT1I6ICAgIC8v
IHN0YXJ0IHwgbWlkZGxlIHwgZW5kIHwgaW5oZXJpdAorICAgIGNhc2UgQ1NTX1BST1BfVEVYVF9B
TkNIT1I6ICAgIC8vIHN0YXJ0IHwgbWlkZGxlIHwgZW5kIHwgaW5oZXJpdAogICAgICAgICBpZiAo
aWQgPT0gQ1NTX1ZBTF9TVEFSVCB8fCBpZCA9PSBDU1NfVkFMX01JRERMRSB8fCBpZCA9PSBDU1Nf
VkFMX0VORCkKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJy
ZWFrOwogCi0gICAgY2FzZSBTVkdDU1NfUFJPUF9HTFlQSF9PUklFTlRBVElPTl9WRVJUSUNBTDog
Ly8gYXV0byB8IDxhbmdsZT4gfCBpbmhlcml0CisgICAgY2FzZSBDU1NfUFJPUF9HTFlQSF9PUklF
TlRBVElPTl9WRVJUSUNBTDogLy8gYXV0byB8IDxhbmdsZT4gfCBpbmhlcml0CiAgICAgICAgIGlm
IChpZCA9PSBDU1NfVkFMX0FVVE8pIHsKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRy
dWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAvKiBmYWxsdGhyb3Vn
aCBpbnRlbnRpb25hbCAqLwotICAgIGNhc2UgU1ZHQ1NTX1BST1BfR0xZUEhfT1JJRU5UQVRJT05f
SE9SSVpPTlRBTDogLy8gPGFuZ2xlPiB8IGluaGVyaXQKKyAgICBjYXNlIENTU19QUk9QX0dMWVBI
X09SSUVOVEFUSU9OX0hPUklaT05UQUw6IC8vIDxhbmdsZT4gfCBpbmhlcml0CiAgICAgICAgIGlm
ICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RFRykKICAgICAgICAgICAg
IHBhcnNlZFZhbHVlID0gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHZhbHVlLT5mVmFsdWUsIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfREVHKTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0g
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19HUkFEKQpAQCAtMTkyLDEyICsxOTAsMTIgQEAgYm9vbCBD
U1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUoaW50IHByb3BJZAogICAgICAgICAgICAgcGFyc2VkVmFs
dWUgPSBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUodmFsdWUtPmZWYWx1ZSwgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19SQUQpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfRklM
TDogICAgICAgICAgICAgICAgIC8vIDxwYWludD4gfCBpbmhlcml0Ci0gICAgY2FzZSBTVkdDU1Nf
UFJPUF9TVFJPS0U6ICAgICAgICAgICAgICAgLy8gPHBhaW50PiB8IGluaGVyaXQKKyAgICBjYXNl
IENTU19QUk9QX0ZJTEw6ICAgICAgICAgICAgICAgICAvLyA8cGFpbnQ+IHwgaW5oZXJpdAorICAg
IGNhc2UgQ1NTX1BST1BfU1RST0tFOiAgICAgICAgICAgICAgIC8vIDxwYWludD4gfCBpbmhlcml0
CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX05PTkUpCiAgICAgICAg
ICAgICAgICAgcGFyc2VkVmFsdWUgPSBuZXcgU1ZHUGFpbnQoU1ZHUGFpbnQ6OlNWR19QQUlOVFRZ
UEVfTk9ORSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChpZCA9PSBTVkdDU1NfVkFMX0NVUlJFTlRD
T0xPUikKKyAgICAgICAgICAgIGVsc2UgaWYgKGlkID09IENTU19WQUxfQ1VSUkVOVENPTE9SKQog
ICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gbmV3IFNWR1BhaW50KFNWR1BhaW50OjpTVkdf
UEFJTlRUWVBFX0NVUlJFTlRDT0xPUik7CiAgICAgICAgICAgICBlbHNlIGlmICh2YWx1ZS0+dW5p
dCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSkgewogICAgICAgICAgICAgICAgIFJHQkEz
MiBjID0gQ29sb3I6OnRyYW5zcGFyZW50OwpAQCAtMjE1LDcgKzIxMyw3IEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZVNWR1ZhbHVlKGludCBwcm9wSWQKIAogICAgIGNhc2UgQ1NTX1BST1BfQ09MT1I6
ICAgICAgICAgICAgICAgIC8vIDxjb2xvcj4gfCBpbmhlcml0CiAgICAgICAgIGlmICgoaWQgPj0g
Q1NTX1ZBTF9BUVVBICYmIGlkIDw9IENTU19WQUxfV0lORE9XVEVYVCkgfHwKLSAgICAgICAgICAg
KGlkID49IFNWR0NTU19WQUxfQUxJQ0VCTFVFICYmIGlkIDw9IFNWR0NTU19WQUxfWUVMTE9XR1JF
RU4pKQorICAgICAgICAgICAoaWQgPj0gQ1NTX1ZBTF9BTElDRUJMVUUgJiYgaWQgPD0gQ1NTX1ZB
TF9ZRUxMT1dHUkVFTikpCiAgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IG5ldyBTVkdDb2xvcihk
b21TdHJpbmcodmFsdWUtPnN0cmluZykpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBwYXJz
ZWRWYWx1ZSA9IHBhcnNlU1ZHQ29sb3IoKTsKQEAgLTIyNCwxMyArMjIyLDEzIEBAIGJvb2wgQ1NT
UGFyc2VyOjpwYXJzZVNWR1ZhbHVlKGludCBwcm9wSWQKICAgICAgICAgICAgIHZhbHVlTGlzdC0+
bmV4dCgpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfU1RPUF9DT0xP
UjogLy8gVE9ETyA6IGljY2NvbG9yCi0gICAgY2FzZSBTVkdDU1NfUFJPUF9GTE9PRF9DT0xPUjoK
LSAgICBjYXNlIFNWR0NTU19QUk9QX0xJR0hUSU5HX0NPTE9SOgorICAgIGNhc2UgQ1NTX1BST1Bf
U1RPUF9DT0xPUjogLy8gVE9ETyA6IGljY2NvbG9yCisgICAgY2FzZSBDU1NfUFJPUF9GTE9PRF9D
T0xPUjoKKyAgICBjYXNlIENTU19QUk9QX0xJR0hUSU5HX0NPTE9SOgogICAgICAgICBpZiAoKGlk
ID49IENTU19WQUxfQVFVQSAmJiBpZCA8PSBDU1NfVkFMX1dJTkRPV1RFWFQpIHx8Ci0gICAgICAg
ICAgIChpZCA+PSBTVkdDU1NfVkFMX0FMSUNFQkxVRSAmJiBpZCA8PSBTVkdDU1NfVkFMX1lFTExP
V0dSRUVOKSkKKyAgICAgICAgICAgKGlkID49IENTU19WQUxfQUxJQ0VCTFVFICYmIGlkIDw9IENT
U19WQUxfWUVMTE9XR1JFRU4pKQogICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBuZXcgU1ZHQ29s
b3IoZG9tU3RyaW5nKHZhbHVlLT5zdHJpbmcpKTsKLSAgICAgICAgZWxzZSBpZiAoaWQgPT0gU1ZH
Q1NTX1ZBTF9DVVJSRU5UQ09MT1IpCisgICAgICAgIGVsc2UgaWYgKGlkID09IENTU19WQUxfQ1VS
UkVOVENPTE9SKQogICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBuZXcgU1ZHQ29sb3IoU1ZHQ29s
b3I6OlNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SKTsKICAgICAgICAgZWxzZSAvLyBUT0RPIDog
c3ZnY29sb3IgKGljY0NvbG9yKQogICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBwYXJzZVNWR0Nv
bG9yKCk7CkBAIC0yNDAsMTcgKzIzOCwxNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VTVkdWYWx1
ZShpbnQgcHJvcElkCiAKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFNWR0NTU19QUk9QX1dS
SVRJTkdfTU9ERToKKyAgICBjYXNlIENTU19QUk9QX1dSSVRJTkdfTU9ERToKICAgICAvLyBsci10
YiB8IHJsX3RiIHwgdGItcmwgfCBsciB8IHJsIHwgdGIgfCBpbmhlcml0Ci0gICAgICAgIGlmIChp
ZCA+PSBTVkdDU1NfVkFMX0xSX1RCICYmIGlkIDw9IFNWR0NTU19WQUxfVEIpCisgICAgICAgIGlm
IChpZCA+PSBDU1NfVkFMX0xSX1RCICYmIGlkIDw9IENTU19WQUxfVEIpCiAgICAgICAgICAgICB2
YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NT
X1BST1BfU1RST0tFX1dJRFRIOiAgICAgICAgIC8vIDxsZW5ndGg+IHwgaW5oZXJpdAotICAgIGNh
c2UgU1ZHQ1NTX1BST1BfU1RST0tFX0RBU0hPRkZTRVQ6CisgICAgY2FzZSBDU1NfUFJPUF9TVFJP
S0VfV0lEVEg6ICAgICAgICAgLy8gPGxlbmd0aD4gfCBpbmhlcml0CisgICAgY2FzZSBDU1NfUFJP
UF9TVFJPS0VfREFTSE9GRlNFVDoKICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0
KHZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQsIGZhbHNlKTsKICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBTVkdDU1NfUFJPUF9TVFJPS0VfREFTSEFSUkFZOiAgICAgLy8gbm9uZSB8IDxkYXNoYXJy
YXk+IHwgaW5oZXJpdAorICAgIGNhc2UgQ1NTX1BST1BfU1RST0tFX0RBU0hBUlJBWTogICAgIC8v
IG5vbmUgfCA8ZGFzaGFycmF5PiB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkID09IENTU19WQUxf
Tk9ORSkKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UK
QEAgLTI1OCwxNSArMjU2LDE1IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVNWR1ZhbHVlKGludCBw
cm9wSWQKIAogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgU1ZHQ1NTX1BST1BfS0VSTklORzog
ICAgICAgICAgICAgIC8vIGF1dG8gfCBub3JtYWwgfCA8bGVuZ3RoPiB8IGluaGVyaXQKKyAgICBj
YXNlIENTU19QUk9QX0tFUk5JTkc6ICAgICAgICAgICAgICAvLyBhdXRvIHwgbm9ybWFsIHwgPGxl
bmd0aD4gfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX0FVVE8gfHwgaWQgPT0g
Q1NTX1ZBTF9OT1JNQUwpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUs
IEZMZW5ndGgsIGZhbHNlKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFNWR0NTU19QUk9Q
X0NMSVBfUEFUSDogICAgLy8gPHVyaT4gfCBub25lIHwgaW5oZXJpdAotICAgIGNhc2UgU1ZHQ1NT
X1BST1BfRklMVEVSOgorICAgIGNhc2UgQ1NTX1BST1BfQ0xJUF9QQVRIOiAgICAvLyA8dXJpPiB8
IG5vbmUgfCBpbmhlcml0CisgICAgY2FzZSBDU1NfUFJPUF9GSUxURVI6CiAgICAgICAgIGlmIChp
ZCA9PSBDU1NfVkFMX05PTkUpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwog
ICAgICAgICBlbHNlIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VS
SSkgewpAQCAtMjc3LDE4ICsyNzUsMjEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUo
aW50IHByb3BJZAogICAgICAgICBicmVhazsKIAogICAgIC8qIHNob3J0aGFuZCBwcm9wZXJ0aWVz
ICovCi0gICAgY2FzZSBTVkdDU1NfUFJPUF9NQVJLRVI6CisgICAgY2FzZSBDU1NfUFJPUF9NQVJL
RVI6CiAgICAgewotICAgICAgICBpZiAoIXBhcnNlVmFsdWUoU1ZHQ1NTX1BST1BfTUFSS0VSX1NU
QVJULCBpbXBvcnRhbnQpKQorICAgICAgICBpZiAoIXBhcnNlVmFsdWUoQ1NTX1BST1BfTUFSS0VS
X1NUQVJULCBpbXBvcnRhbnQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBD
U1NWYWx1ZSAqdmFsdWUgPSBwYXJzZWRQcm9wZXJ0aWVzW251bVBhcnNlZFByb3BlcnRpZXMgLSAx
XS0+dmFsdWUoKTsKICAgICAgICAgbV9pbXBsaWNpdFNob3J0aGFuZCA9IHRydWU7Ci0gICAgICAg
IGFkZFByb3BlcnR5KFNWR0NTU19QUk9QX01BUktFUl9NSUQsIHZhbHVlLCBpbXBvcnRhbnQpOwot
ICAgICAgICBhZGRQcm9wZXJ0eShTVkdDU1NfUFJPUF9NQVJLRVJfRU5ELCB2YWx1ZSwgaW1wb3J0
YW50KTsKKyAgICAgICAgYWRkUHJvcGVydHkoQ1NTX1BST1BfTUFSS0VSX01JRCwgdmFsdWUsIGlt
cG9ydGFudCk7CisgICAgICAgIGFkZFByb3BlcnR5KENTU19QUk9QX01BUktFUl9FTkQsIHZhbHVl
LCBpbXBvcnRhbnQpOwogICAgICAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gZmFsc2U7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBkZWZhdWx0OgorICAgICAgICAvLyBJZiB5b3Ug
Y3Jhc2ggaGVyZSwgaXQncyBiZWNhdXNlIHlvdSBhZGRlZCBhIGNzcyBwcm9wZXJ0eSBhbmQgYXJl
IG5vdCBoYW5kbGluZyBpdAorICAgICAgICAvLyBpbiBlaXRoZXIgdGhpcyBzd2l0Y2ggc3RhdGVt
ZW50IG9yIHRoZSBvbmUgaW4gQ1NTUGFyc2VyOjpwYXJzZVZhbHVlCisgICAgICAgIEFTU0VSVF9X
SVRIX01FU1NBR0UoMCwgInVuaW1wbGVtZW50ZWQgcHJvcGVydHlJRDogJWQiLCBwcm9wSWQpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4OiBXZWJDb3JlL2tzdmcyL2Nzcy9T
VkdDU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL2Nzcy9T
VkdDU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gMjYxMDYpCisrKyBXZWJDb3JlL2tzdmcy
L2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEs
NyBAQAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogCisj
aW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMu
aCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKICNpbmNsdWRlICJTVkdDb2xvci5oIgpAQCAt
MzksOCArNDAsNiBAQAogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU1ZH
UmVuZGVyU3R5bGVEZWZzLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgotI2luY2x1
ZGUgImtzdmdjc3Nwcm9wZXJ0aWVzLmgiCi0jaW5jbHVkZSAia3N2Z2Nzc3ZhbHVlcy5oIgogI2lu
Y2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4
dHJhcy5oPgpAQCAtOTgsNDggKzk3LDQ3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlT
VkdQcm9wZXJ0eSgKICAgICBzd2l0Y2ggKGlkKQogICAgIHsKICAgICAgICAgLy8gaWRlbnQgb25s
eSBwcm9wZXJ0aWVzCi0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfQUxJR05NRU5UX0JBU0VMSU5F
OgorICAgICAgICBjYXNlIENTU19QUk9QX0FMSUdOTUVOVF9CQVNFTElORToKICAgICAgICAgewog
ICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoYWxpZ25tZW50QmFzZWxpbmUs
IEFsaWdubWVudEJhc2VsaW5lKQogICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKICAg
ICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1
ZS0+Z2V0SWRlbnQoKSkKLSAgICAgICAgICAgIHsKKyAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0
aXZlVmFsdWUtPmdldElkZW50KCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfQVVU
TzoKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldEFsaWdubWVudEJhc2VsaW5lKEFC
X0FVVE8pOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNl
IENTU19WQUxfQkFTRUxJTkU6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRBbGln
bm1lbnRCYXNlbGluZShBQl9CQVNFTElORSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9CRUZPUkVfRURHRToKKyAgICAgICAgICAg
ICAgICBjYXNlIENTU19WQUxfQkVGT1JFX0VER0U6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0
eWxlLT5zZXRBbGlnbm1lbnRCYXNlbGluZShBQl9CRUZPUkVfRURHRSk7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9URVhUX0JFRk9S
RV9FREdFOgorICAgICAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9URVhUX0JFRk9SRV9FREdFOgog
ICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0QWxpZ25tZW50QmFzZWxpbmUoQUJfVEVY
VF9CRUZPUkVfRURHRSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIGNhc2UgQ1NTX1ZBTF9NSURETEU6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5z
ZXRBbGlnbm1lbnRCYXNlbGluZShBQl9NSURETEUpOwogICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfQ0VOVFJBTDoKKyAgICAgICAgICAg
ICAgICBjYXNlIENTU19WQUxfQ0VOVFJBTDoKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUt
PnNldEFsaWdubWVudEJhc2VsaW5lKEFCX0NFTlRSQUwpOwogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfQUZURVJfRURHRToKKyAgICAg
ICAgICAgICAgICBjYXNlIENTU19WQUxfQUZURVJfRURHRToKICAgICAgICAgICAgICAgICAgICAg
c3Znc3R5bGUtPnNldEFsaWdubWVudEJhc2VsaW5lKEFCX0FGVEVSX0VER0UpOwogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfVEVYVF9B
RlRFUl9FREdFOgorICAgICAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9URVhUX0FGVEVSX0VER0U6
CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRBbGlnbm1lbnRCYXNlbGluZShBQl9U
RVhUX0FGVEVSX0VER0UpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICBjYXNlIFNWR0NTU19WQUxfSURFT0dSQVBISUM6CisgICAgICAgICAgICAgICAgY2FzZSBD
U1NfVkFMX0lERU9HUkFQSElDOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0QWxp
Z25tZW50QmFzZWxpbmUoQUJfSURFT0dSQVBISUMpOwogICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfQUxQSEFCRVRJQzoKKyAgICAgICAg
ICAgICAgICBjYXNlIENTU19WQUxfQUxQSEFCRVRJQzoKICAgICAgICAgICAgICAgICAgICAgc3Zn
c3R5bGUtPnNldEFsaWdubWVudEJhc2VsaW5lKEFCX0FMUEhBQkVUSUMpOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfSEFOR0lORzoK
KyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfSEFOR0lORzoKICAgICAgICAgICAgICAgICAg
ICAgc3Znc3R5bGUtPnNldEFsaWdubWVudEJhc2VsaW5lKEFCX0hBTkdJTkcpOwogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfTUFUSEVN
QVRJQ0FMOgorICAgICAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9NQVRIRU1BVElDQUw6CiAgICAg
ICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRBbGlnbm1lbnRCYXNlbGluZShBQl9NQVRIRU1B
VElDQUwpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBkZWZh
dWx0OgpAQCAtMTQ4LDcgKzE0Niw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQ
cm9wZXJ0eSgKIAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBT
VkdDU1NfUFJPUF9CQVNFTElORV9TSElGVDoKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9CQVNFTElO
RV9TSElGVDoKICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJ
QUwoYmFzZWxpbmVTaGlmdCwgQmFzZWxpbmVTaGlmdCk7CiAgICAgICAgICAgICBpZiAoIXByaW1p
dGl2ZVZhbHVlKQpAQCAtMTc1LDUzICsxNzMsNTIgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjph
cHBseVNWR1Byb3BlcnR5KAogCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAg
ICBjYXNlIFNWR0NTU19QUk9QX0tFUk5JTkc6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfS0VSTklO
RzoKICAgICAgICAgewogICAgICAgICAgICAgaWYgKGlzSW5oZXJpdCkgewotICAgICAgICAgICAg
ICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoU1ZHQ1NTX1BST1BfS0VSTklORywga2VybmluZywgS2Vy
bmluZykKKyAgICAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU19QUk9QX0tFUk5J
TkcsIGtlcm5pbmcsIEtlcm5pbmcpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgZWxzZSBpZiAoaXNJbml0aWFsKSB7Ci0gICAgICAgICAgICAgICAg
SEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKFNWR0NTU19QUk9QX0tFUk5JTkcsIEtlcm5p
bmcsIEtlcm5pbmcpCisgICAgICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZB
TFVFKENTU19QUk9QX0tFUk5JTkcsIEtlcm5pbmcsIEtlcm5pbmcpCiAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0S2Vybmlu
ZyhwcmltaXRpdmVWYWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAg
ICBjYXNlIFNWR0NTU19QUk9QX1BPSU5URVJfRVZFTlRTOgorICAgICAgICBjYXNlIENTU19QUk9Q
X1BPSU5URVJfRVZFTlRTOgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9B
TkRfSU5JVElBTChwb2ludGVyRXZlbnRzLCBQb2ludGVyRXZlbnRzKQogICAgICAgICAgICAgaWYg
KCFwcmltaXRpdmVWYWx1ZSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX0FMTDoKKyAgICAgICAg
ICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgICAgICAg
ICBjYXNlIENTU19WQUxfQUxMOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0UG9p
bnRlckV2ZW50cyhQRV9BTEwpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICBjYXNlIENTU19WQUxfTk9ORToKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUt
PnNldFBvaW50ZXJFdmVudHMoUEVfTk9ORSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9WSVNJQkxFUEFJTlRFRDoKKyAgICAgICAg
ICAgICAgICBjYXNlIENTU19WQUxfVklTSUJMRVBBSU5URUQ6CiAgICAgICAgICAgICAgICAgICAg
IHN2Z3N0eWxlLT5zZXRQb2ludGVyRXZlbnRzKFBFX1ZJU0lCTEVfUEFJTlRFRCk7CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9WSVNJ
QkxFRklMTDoKKyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfVklTSUJMRUZJTEw6CiAgICAg
ICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRQb2ludGVyRXZlbnRzKFBFX1ZJU0lCTEVfRklM
TCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgU1ZH
Q1NTX1ZBTF9WSVNJQkxFU1RST0tFOgorICAgICAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9WSVNJ
QkxFU1RST0tFOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0UG9pbnRlckV2ZW50
cyhQRV9WSVNJQkxFX1NUUk9LRSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9WSVNJQkxFOgogICAgICAgICAgICAgICAgICAgICBzdmdz
dHlsZS0+c2V0UG9pbnRlckV2ZW50cyhQRV9WSVNJQkxFKTsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX1BBSU5URUQ6CisgICAgICAg
ICAgICAgICAgY2FzZSBDU1NfVkFMX1BBSU5URUQ6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0
eWxlLT5zZXRQb2ludGVyRXZlbnRzKFBFX1BBSU5URUQpOwogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfRklMTDoKKyAgICAgICAgICAg
ICAgICBjYXNlIENTU19WQUxfRklMTDoKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNl
dFBvaW50ZXJFdmVudHMoUEVfRklMTCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9TVFJPS0U6CisgICAgICAgICAgICAgICAgY2Fz
ZSBDU1NfVkFMX1NUUk9LRToKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldFBvaW50
ZXJFdmVudHMoUEVfU1RST0tFKTsKICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CkBAIC0yMjksNDggKzIyNiw0NyBAQCB2b2lkIENTU1N0eWxlU2Vs
ZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
Ci0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfRE9NSU5BTlRfQkFTRUxJTkU6CisgICAgICAgIGNh
c2UgQ1NTX1BST1BfRE9NSU5BTlRfQkFTRUxJTkU6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhB
TkRMRV9JTkhFUklUX0FORF9JTklUSUFMKGRvbWluYW50QmFzZWxpbmUsIERvbWluYW50QmFzZWxp
bmUpCiAgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgIAotICAgICAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQo
KSkKLSAgICAgICAgICAgIHsKKyAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdl
dElkZW50KCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfQVVUTzoKICAgICAgICAg
ICAgICAgICAgICAgc3Znc3R5bGUtPnNldERvbWluYW50QmFzZWxpbmUoREJfQVVUTyk7CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9V
U0VfU0NSSVBUOgorICAgICAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9VU0VfU0NSSVBUOgogICAg
ICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0RG9taW5hbnRCYXNlbGluZShEQl9VU0VfU0NS
SVBUKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBT
VkdDU1NfVkFMX05PX0NIQU5HRToKKyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfTk9fQ0hB
TkdFOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0RG9taW5hbnRCYXNlbGluZShE
Ql9OT19DSEFOR0UpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICBjYXNlIFNWR0NTU19WQUxfUkVTRVRfU0laRToKKyAgICAgICAgICAgICAgICBjYXNlIENTU19W
QUxfUkVTRVRfU0laRToKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldERvbWluYW50
QmFzZWxpbmUoREJfUkVTRVRfU0laRSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9JREVPR1JBUEhJQzoKKyAgICAgICAgICAgICAg
ICBjYXNlIENTU19WQUxfSURFT0dSQVBISUM6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxl
LT5zZXREb21pbmFudEJhc2VsaW5lKERCX0lERU9HUkFQSElDKTsKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX0FMUEhBQkVUSUM6Cisg
ICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0FMUEhBQkVUSUM6CiAgICAgICAgICAgICAgICAg
ICAgIHN2Z3N0eWxlLT5zZXREb21pbmFudEJhc2VsaW5lKERCX0FMUEhBQkVUSUMpOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfSEFO
R0lORzoKKyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfSEFOR0lORzoKICAgICAgICAgICAg
ICAgICAgICAgc3Znc3R5bGUtPnNldERvbWluYW50QmFzZWxpbmUoREJfSEFOR0lORyk7CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9N
QVRIRU1BVElDQUw6CisgICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFMX01BVEhFTUFUSUNBTDoK
ICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldERvbWluYW50QmFzZWxpbmUoREJfTUFU
SEVNQVRJQ0FMKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg
Y2FzZSBTVkdDU1NfVkFMX0NFTlRSQUw6CisgICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0NF
TlRSQUw6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXREb21pbmFudEJhc2VsaW5l
KERCX0NFTlRSQUwpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICBjYXNlIENTU19WQUxfTUlERExFOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0
RG9taW5hbnRCYXNlbGluZShEQl9NSURETEUpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfVEVYVF9BRlRFUl9FREdFOgorICAgICAg
ICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9URVhUX0FGVEVSX0VER0U6CiAgICAgICAgICAgICAgICAg
ICAgIHN2Z3N0eWxlLT5zZXREb21pbmFudEJhc2VsaW5lKERCX1RFWFRfQUZURVJfRURHRSk7CiAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZB
TF9URVhUX0JFRk9SRV9FREdFOgorICAgICAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9URVhUX0JF
Rk9SRV9FREdFOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0RG9taW5hbnRCYXNl
bGluZShEQl9URVhUX0JFRk9SRV9FREdFKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgZGVmYXVsdDoKQEAgLTI3OSwxOCArMjc1LDE3IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfQ09MT1JfSU5URVJQT0xBVElPTjoK
KyAgICAgICAgY2FzZSBDU1NfUFJPUF9DT0xPUl9JTlRFUlBPTEFUSU9OOgogICAgICAgICB7CiAg
ICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChjb2xvckludGVycG9sYXRpb24s
IENvbG9ySW50ZXJwb2xhdGlvbikKICAgICAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgc3dp
dGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBjYXNlIFNWR0NTU19WQUxfU1JHQjoKKyAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0
aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfU1JH
QjoKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldENvbG9ySW50ZXJwb2xhdGlvbihD
SV9TUkdCKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2Fz
ZSBTVkdDU1NfVkFMX0xJTkVBUlJHQjoKKyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfTElO
RUFSUkdCOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0Q29sb3JJbnRlcnBvbGF0
aW9uKENJX0xJTkVBUlJHQik7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIGNhc2UgQ1NTX1ZBTF9BVVRPOgpAQCAtMzAxLDE4ICsyOTYsMTcgQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KAogICAgIAogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBTVkdDU1NfUFJPUF9DT0xPUl9JTlRFUlBPTEFUSU9O
X0ZJTFRFUlM6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfQ09MT1JfSU5URVJQT0xBVElPTl9GSUxU
RVJTOgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChj
b2xvckludGVycG9sYXRpb25GaWx0ZXJzLCBDb2xvckludGVycG9sYXRpb25GaWx0ZXJzKQogICAg
ICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJ
ZGVudCgpKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9T
UkdCOgorICAgICAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgewor
ICAgICAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9TUkdCOgogICAgICAgICAgICAgICAgICAgICBz
dmdzdHlsZS0+c2V0Q29sb3JJbnRlcnBvbGF0aW9uRmlsdGVycyhDSV9TUkdCKTsKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX0xJTkVB
UlJHQjoKKyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfTElORUFSUkdCOgogICAgICAgICAg
ICAgICAgICAgICBzdmdzdHlsZS0+c2V0Q29sb3JJbnRlcnBvbGF0aW9uRmlsdGVycyhDSV9MSU5F
QVJSR0IpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNl
IENTU19WQUxfQVVUTzoKQEAgLTMyMywxOCArMzE3LDE3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rv
cjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAgICAgIAogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KLSAgICAgICAgY2FzZSBTVkdDU1NfUFJPUF9DTElQX1JVTEU6CisgICAgICAgIGNh
c2UgQ1NTX1BST1BfQ0xJUF9SVUxFOgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5ETEVfSU5I
RVJJVF9BTkRfSU5JVElBTChjbGlwUnVsZSwgQ2xpcFJ1bGUpCiAgICAgICAgICAgICBpZiAoIXBy
aW1pdGl2ZVZhbHVlKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR0NTU19WQUxfTk9OWkVSTzoKKyAgICAgICAg
ICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgICAgICAg
ICBjYXNlIENTU19WQUxfTk9OWkVSTzoKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNl
dENsaXBSdWxlKFJVTEVfTk9OWkVSTyk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9FVkVOT0REOgorICAgICAgICAgICAgICAgIGNh
c2UgQ1NTX1ZBTF9FVkVOT0REOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0Q2xp
cFJ1bGUoUlVMRV9FVkVOT0REKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAgICAgZGVmYXVsdDoKQEAgLTM0MywxOCArMzM2LDE3IEBAIHZvaWQgQ1NTU3R5bGVTZWxl
Y3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAgCiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQotICAgICAgICBjYXNlIFNWR0NTU19QUk9QX0ZJTExfUlVMRToKKyAgICAgICAgY2Fz
ZSBDU1NfUFJPUF9GSUxMX1JVTEU6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhF
UklUX0FORF9JTklUSUFMKGZpbGxSdWxlLCBGaWxsUnVsZSkKICAgICAgICAgICAgIGlmICghcHJp
bWl0aXZlVmFsdWUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdDU1NfVkFMX05PTlpFUk86CisgICAgICAgICAgICBz
d2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICAgICAgY2Fz
ZSBDU1NfVkFMX05PTlpFUk86CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRGaWxs
UnVsZShSVUxFX05PTlpFUk8pOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICBjYXNlIFNWR0NTU19WQUxfRVZFTk9ERDoKKyAgICAgICAgICAgICAgICBjYXNlIENT
U19WQUxfRVZFTk9ERDoKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldEZpbGxSdWxl
KFJVTEVfRVZFTk9ERCk7CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtMzYyLDIyICszNTQsMjEgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9y
OjphcHBseVNWR1Byb3BlcnR5KAogICAgICAgICAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9Ci0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfU1RST0tFX0xJTkVKT0lOOgorICAgICAgICBj
YXNlIENTU19QUk9QX1NUUk9LRV9MSU5FSk9JTjoKICAgICAgICAgewogICAgICAgICAgICAgSEFO
RExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoam9pblN0eWxlLCBKb2luU3R5bGUpCiAKICAgICAgICAg
ICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgp
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9NSVRFUjoK
KyAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAg
ICAgICAgICAgICBjYXNlIENTU19WQUxfTUlURVI6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0
eWxlLT5zZXRKb2luU3R5bGUoTWl0ZXJKb2luKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFMX1JPVU5EOgogICAgICAgICAgICAgICAgICAg
ICBzdmdzdHlsZS0+c2V0Sm9pblN0eWxlKFJvdW5kSm9pbik7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9CRVZFTDoKKyAgICAgICAg
ICAgICAgICBjYXNlIENTU19WQUxfQkVWRUw6CiAgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxl
LT5zZXRKb2luU3R5bGUoQmV2ZWxKb2luKTsKICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0zODUsMjQgKzM3Niw2MCBAQCB2b2lkIENTU1N0
eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAgICAgICAgICAgICAKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfSU1BR0VfUkVOREVS
SU5HOgorICAgICAgICBjYXNlIENTU19QUk9QX0lNQUdFX1JFTkRFUklORzoKICAgICAgICAgewog
ICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoaW1hZ2VSZW5kZXJpbmcsIElt
YWdlUmVuZGVyaW5nKQogICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0
aXZlVmFsdWUtPmdldElkZW50KCkpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY2Fz
ZSBTVkdDU1NfVkFMX09QVElNSVpFU1BFRUQ6CisgICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2
ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0FVVE86
CisgICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRJbWFnZVJlbmRlcmluZyhJUl9BVVRP
KTsKKyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfT1BUSU1JWkVTUEVFRDoKICAgICAgICAg
ICAgICAgICAgICAgc3Znc3R5bGUtPnNldEltYWdlUmVuZGVyaW5nKElSX09QVElNSVpFU1BFRUQp
OwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgICAgICBjYXNlIENTU19WQUxfT1BUSU1JWkVRVUFMSVRZOgorICAgICAgICAg
ICAgICAgICAgICBzdmdzdHlsZS0+c2V0SW1hZ2VSZW5kZXJpbmcoSVJfT1BUSU1JWkVRVUFMSVRZ
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IGNhc2UgQ1NTX1BST1BfU0hBUEVfUkVOREVSSU5HOgorICAgICAgICB7CisgICAgICAgICAgICBI
QU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChzaGFwZVJlbmRlcmluZywgU2hhcGVSZW5kZXJpbmcp
CisgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQorICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0
SWRlbnQoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9BVVRPOgorICAgICAgICAg
ICAgICAgICAgICBzdmdzdHlsZS0+c2V0U2hhcGVSZW5kZXJpbmcoU1JfQVVUTyk7CisgICAgICAg
ICAgICAgICAgY2FzZSBDU1NfVkFMX09QVElNSVpFU1BFRUQ6CisgICAgICAgICAgICAgICAgICAg
IHN2Z3N0eWxlLT5zZXRTaGFwZVJlbmRlcmluZyhTUl9PUFRJTUlaRVNQRUVEKTsKKyAgICAgICAg
ICAgICAgICBjYXNlIENTU19WQUxfQ1JJU1BFREdFUzoKKyAgICAgICAgICAgICAgICAgICAgc3Zn
c3R5bGUtPnNldFNoYXBlUmVuZGVyaW5nKFNSX0NSSVNQRURHRVMpOworICAgICAgICAgICAgICAg
IGNhc2UgQ1NTX1ZBTF9HRU9NRVRSSUNQUkVDSVNJT046CisgICAgICAgICAgICAgICAgICAgIHN2
Z3N0eWxlLT5zZXRTaGFwZVJlbmRlcmluZyhTUl9HRU9NRVRSSUNQUkVDSVNJT04pOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBDU1Nf
UFJPUF9URVhUX1JFTkRFUklORzoKKyAgICAgICAgeworICAgICAgICAgICAgSEFORExFX0lOSEVS
SVRfQU5EX0lOSVRJQUwodGV4dFJlbmRlcmluZywgVGV4dFJlbmRlcmluZykKKyAgICAgICAgICAg
IGlmICghcHJpbWl0aXZlVmFsdWUpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7Cisg
ICAgICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0FVVE86CisgICAgICAgICAgICAgICAgICAgIHN2
Z3N0eWxlLT5zZXRUZXh0UmVuZGVyaW5nKFRSX0FVVE8pOworICAgICAgICAgICAgICAgIGNhc2Ug
Q1NTX1ZBTF9PUFRJTUlaRVNQRUVEOgorICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0
VGV4dFJlbmRlcmluZyhUUl9PUFRJTUlaRVNQRUVEKTsKKyAgICAgICAgICAgICAgICBjYXNlIENT
U19WQUxfT1BUSU1JWkVMRUdJQklMSVRZOgorICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+
c2V0VGV4dFJlbmRlcmluZyhUUl9PUFRJTUlaRUxFR0lCSUxJVFkpOworICAgICAgICAgICAgICAg
IGNhc2UgQ1NTX1ZBTF9HRU9NRVRSSUNQUkVDSVNJT046CisgICAgICAgICAgICAgICAgICAgIHN2
Z3N0eWxlLT5zZXRUZXh0UmVuZGVyaW5nKFRSX0dFT01FVFJJQ1BSRUNJU0lPTik7CiAgICAgICAg
ICAgICB9Ci0gICAgCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAvLyBl
bmQgb2YgaWRlbnQgb25seSBwcm9wZXJ0aWVzCi0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfRklM
TDoKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9GSUxMOgogICAgICAgICB7CiAgICAgICAgICAgICBI
QU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChmaWxsUGFpbnQsIEZpbGxQYWludCkKICAgICAgICAg
ICAgIGlmICghcHJpbWl0aXZlVmFsdWUgJiYgdmFsdWUpIHsKQEAgLTQxMyw3ICs0NDAsNyBAQCB2
b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfU1RS
T0tFOgorICAgICAgICBjYXNlIENTU19QUk9QX1NUUk9LRToKICAgICAgICAgewogICAgICAgICAg
ICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoc3Ryb2tlUGFpbnQsIFN0cm9rZVBhaW50KQog
ICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSAmJiB2YWx1ZSkgewpAQCAtNDI0LDcgKzQ1
MSw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBTVkdDU1Nf
UFJPUF9TVFJPS0VfV0lEVEg6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfU1RST0tFX1dJRFRIOgog
ICAgICAgICB7CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChzdHJva2VX
aWR0aCwgU3Ryb2tlV2lkdGgpCiAgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQpAQCAt
NDMzLDcgKzQ2MCw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgK
ICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRTdHJva2VXaWR0aChwcmltaXRpdmVWYWx1ZSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIFNWR0NTU19QUk9QX1NU
Uk9LRV9EQVNIQVJSQVk6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfU1RST0tFX0RBU0hBUlJBWToK
ICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoc3Ryb2tl
RGFzaEFycmF5LCBTdHJva2VEYXNoQXJyYXkpCiAgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZh
bHVlICYmIHZhbHVlKSB7CkBAIC00NDQsNyArNDcxLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9y
OjphcHBseVNWR1Byb3BlcnR5KAogICAgICAgICAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9Ci0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfU1RST0tFX0RBU0hPRkZTRVQ6CisgICAgICAg
IGNhc2UgQ1NTX1BST1BfU1RST0tFX0RBU0hPRkZTRVQ6CiAgICAgICAgIHsKICAgICAgICAgICAg
IEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHN0cm9rZURhc2hPZmZzZXQsIFN0cm9rZURhc2hP
ZmZzZXQpCiAgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQpAQCAtNDUzLDcgKzQ4MCw3
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAgICAg
IHN2Z3N0eWxlLT5zZXRTdHJva2VEYXNoT2Zmc2V0KHByaW1pdGl2ZVZhbHVlKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfRklMTF9PUEFD
SVRZOgorICAgICAgICBjYXNlIENTU19QUk9QX0ZJTExfT1BBQ0lUWToKICAgICAgICAgewogICAg
ICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoZmlsbE9wYWNpdHksIEZpbGxPcGFj
aXR5KQogICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKQEAgLTQ3MSw3ICs0OTgsNyBA
QCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAgICAgICAgICAgICBz
dmdzdHlsZS0+c2V0RmlsbE9wYWNpdHkoZik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQotICAgICAgICBjYXNlIFNWR0NTU19QUk9QX1NUUk9LRV9PUEFDSVRZOgorICAgICAgICBjYXNl
IENTU19QUk9QX1NUUk9LRV9PUEFDSVRZOgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5ETEVf
SU5IRVJJVF9BTkRfSU5JVElBTChzdHJva2VPcGFjaXR5LCBTdHJva2VPcGFjaXR5KQogICAgICAg
ICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKQEAgLTQ4OSw3ICs1MTYsNyBAQCB2b2lkIENTU1N0
eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0
U3Ryb2tlT3BhY2l0eShmKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAg
IGNhc2UgU1ZHQ1NTX1BST1BfU1RPUF9PUEFDSVRZOgorICAgICAgICBjYXNlIENTU19QUk9QX1NU
T1BfT1BBQ0lUWToKICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lO
SVRJQUwoc3RvcE9wYWNpdHksIFN0b3BPcGFjaXR5KQogICAgICAgICAgICAgaWYgKCFwcmltaXRp
dmVWYWx1ZSkKQEAgLTUwNyw3ICs1MzQsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5
U1ZHUHJvcGVydHkoCiAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0U3RvcE9wYWNpdHkoZik7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIFNWR0NTU19QUk9QX01B
UktFUl9TVEFSVDoKKyAgICAgICAgY2FzZSBDU1NfUFJPUF9NQVJLRVJfU1RBUlQ6CiAgICAgICAg
IHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHN0YXJ0TWFya2VyLCBT
dGFydE1hcmtlcikKICAgICAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCkBAIC01MjMsNyAr
NTUwLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KAogICAgICAg
ICAgICAgc3Znc3R5bGUtPnNldFN0YXJ0TWFya2VyKHMpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KLSAgICAgICAgY2FzZSBTVkdDU1NfUFJPUF9NQVJLRVJfTUlEOgorICAgICAgICBj
YXNlIENTU19QUk9QX01BUktFUl9NSUQ6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9J
TkhFUklUX0FORF9JTklUSUFMKG1pZE1hcmtlciwgTWlkTWFya2VyKQogICAgICAgICAgICAgaWYg
KCFwcmltaXRpdmVWYWx1ZSkKQEAgLTUzOSw3ICs1NjYsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0
b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0TWlkTWFya2Vy
KHMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBTVkdDU1Nf
UFJPUF9NQVJLRVJfRU5EOgorICAgICAgICBjYXNlIENTU19QUk9QX01BUktFUl9FTkQ6CiAgICAg
ICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKGVuZE1hcmtlciwg
RW5kTWFya2VyKQogICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKQEAgLTU1NSwxNSAr
NTgyLDE0IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAg
ICAgICAgIHN2Z3N0eWxlLT5zZXRFbmRNYXJrZXIocyk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQotICAgICAgICBjYXNlIFNWR0NTU19QUk9QX1NUUk9LRV9MSU5FQ0FQOgorICAgICAg
ICBjYXNlIENTU19QUk9QX1NUUk9LRV9MSU5FQ0FQOgogICAgICAgICB7CiAgICAgICAgICAgICBI
QU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChjYXBTdHlsZSwgQ2FwU3R5bGUpCiAgICAgICAgICAg
ICBpZiAoIXByaW1pdGl2ZVZhbHVlKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgCi0gICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIGNhc2UgU1ZHQ1NTX1ZBTF9CVVRUOgorICAgICAg
ICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAg
ICAgIGNhc2UgQ1NTX1ZBTF9CVVRUOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0
Q2FwU3R5bGUoQnV0dENhcCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIGNhc2UgQ1NTX1ZBTF9ST1VORDoKQEAgLTU3Nyw3ICs2MDMsNyBAQCB2b2lkIENTU1N0
eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9Ci0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfU1RST0tFX01JVEVSTElNSVQ6CisgICAg
ICAgIGNhc2UgQ1NTX1BST1BfU1RST0tFX01JVEVSTElNSVQ6CiAgICAgICAgIHsKICAgICAgICAg
ICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHN0cm9rZU1pdGVyTGltaXQsIFN0cm9rZU1p
dGVyTGltaXQpCiAgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQpAQCAtNTkzLDcgKzYx
OSw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAg
ICAgIHN2Z3N0eWxlLT5zZXRTdHJva2VNaXRlckxpbWl0KGYpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBTVkdDU1NfUFJPUF9GSUxURVI6CisgICAgICAgIGNh
c2UgQ1NTX1BST1BfRklMVEVSOgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJ
VF9BTkRfSU5JVElBTChmaWx0ZXIsIEZpbHRlcikKICAgICAgICAgICAgIGlmICghcHJpbWl0aXZl
VmFsdWUpCkBAIC02MDgsNyArNjM0LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNW
R1Byb3BlcnR5KAogICAgICAgICAgICAgc3Znc3R5bGUtPnNldEZpbHRlcihzKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfTUFTSzoKKyAg
ICAgICAgY2FzZSBDU1NfUFJPUF9NQVNLOgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5ETEVf
SU5IRVJJVF9BTkRfSU5JVElBTChtYXNrRWxlbWVudCwgTWFza0VsZW1lbnQpCiAgICAgICAgICAg
ICBpZiAoIXByaW1pdGl2ZVZhbHVlKQpAQCAtNjI0LDcgKzY1MCw3IEBAIHZvaWQgQ1NTU3R5bGVT
ZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRNYXNr
RWxlbWVudChzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2Ug
U1ZHQ1NTX1BST1BfQ0xJUF9QQVRIOgorICAgICAgICBjYXNlIENTU19QUk9QX0NMSVBfUEFUSDoK
ICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoY2xpcFBh
dGgsIENsaXBQYXRoKQogICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKQEAgLTY0MCwx
NCArNjY2LDEzIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAg
ICAgICAgICAgIHN2Z3N0eWxlLT5zZXRDbGlwUGF0aChzKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfVEVYVF9BTkNIT1I6CisgICAgICAg
IGNhc2UgQ1NTX1BST1BfVEVYVF9BTkNIT1I6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRM
RV9JTkhFUklUX0FORF9JTklUSUFMKHRleHRBbmNob3IsIFRleHRBbmNob3IpCiAgICAgICAgICAg
ICBpZiAoIXByaW1pdGl2ZVZhbHVlKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgCi0gICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKQotICAg
ICAgICAgICAgeworICAgICAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQo
KSkgewogICAgICAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9TVEFSVDoKICAgICAgICAgICAgICAg
ICAgICAgc3Znc3R5bGUtPnNldFRleHRBbmNob3IoVEFfU1RBUlQpOwogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKQEAgLTY2MiwzNSArNjg3LDE0IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6
YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAgICAgIAogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KLSAgICAgICAgY2FzZSBTVkdDU1NfUFJPUF9XUklUSU5HX01PREU6CisgICAgICAgIGNh
c2UgQ1NTX1BST1BfV1JJVElOR19NT0RFOgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5ETEVf
SU5IRVJJVF9BTkRfSU5JVElBTCh3cml0aW5nTW9kZSwgV3JpdGluZ01vZGUpCiAgICAgICAgICAg
ICBpZiAocHJpbWl0aXZlVmFsdWUpCi0gICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldFdyaXRp
bmdNb2RlKChFV3JpdGluZ01vZGUpKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpIC0gU1ZHQ1NT
X1ZBTF9MUl9UQikpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0gICAgICAgCi0jaWYg
MAotICAgICAgICBjYXNlIENTU19QUk9QX0NPTE9SOiAvLyBjb2xvcnMgfHwgaW5oZXJpdAotICAg
ICAgICB7Ci0gICAgICAgICAgICBDb2xvciBjb2w7Ci0gICAgICAgICAgICBpZiAoaXNJbmhlcml0
KSB7Ci0gICAgICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NfUFJPUF9DT0xPUiwg
Y29sb3IsIENvbG9yKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0gZWxz
ZSBpZiAoaXNJbml0aWFsKQotICAgICAgICAgICAgICAgIGNvbCA9IFJlbmRlclN0eWxlOjppbml0
aWFsQ29sb3IoKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIFNWR0NvbG9y
ICpjID0gc3RhdGljX2Nhc3Q8U1ZHQ29sb3IqPih2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYg
KCFjKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQ
cm9wZXJ0eShpZCwgdmFsdWUpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGNv
bCA9IGMtPmNvbG9yKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICAgICAgc3Zn
c3R5bGUtPnNldENvbG9yKGNvbCk7CisgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldFdyaXRp
bmdNb2RlKChFV3JpdGluZ01vZGUpKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpIC0gQ1NTX1ZB
TF9MUl9UQikpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSNlbmRpZgotICAgICAg
ICBjYXNlIFNWR0NTU19QUk9QX1NUT1BfQ09MT1I6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfU1RP
UF9DT0xPUjoKICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJ
QUwoc3RvcENvbG9yLCBTdG9wQ29sb3IpOwogCkBAIC03MDcsNyArNzExLDcgQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KAogICAgICAgICAgICAgc3Znc3R5bGUtPnNl
dFN0b3BDb2xvcihjb2wpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICBj
YXNlIFNWR0NTU19QUk9QX0xJR0hUSU5HX0NPTE9SOgorICAgICAgIGNhc2UgQ1NTX1BST1BfTElH
SFRJTkdfQ09MT1I6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9J
TklUSUFMKGxpZ2h0aW5nQ29sb3IsIExpZ2h0aW5nQ29sb3IpOwogCkBAIC03MjQsNyArNzI4LDcg
QEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KAogICAgICAgICAgICAg
c3Znc3R5bGUtPnNldExpZ2h0aW5nQ29sb3IoY29sKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9Ci0gICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfRkxPT0RfT1BBQ0lUWToKKyAgICAgICAg
Y2FzZSBDU1NfUFJPUF9GTE9PRF9PUEFDSVRZOgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5E
TEVfSU5IRVJJVF9BTkRfSU5JVElBTChmbG9vZE9wYWNpdHksIEZsb29kT3BhY2l0eSkKICAgICAg
ICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCkBAIC03NDIsNyArNzQ2LDcgQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KAogICAgICAgICAgICAgc3Znc3R5bGUtPnNl
dEZsb29kT3BhY2l0eShmKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAg
IGNhc2UgU1ZHQ1NTX1BST1BfRkxPT0RfQ09MT1I6CisgICAgICAgIGNhc2UgQ1NTX1BST1BfRkxP
T0RfQ09MT1I6CiAgICAgICAgIHsKICAgICAgICAgICAgIENvbG9yIGNvbDsKICAgICAgICAgICAg
IGlmIChpc0luaXRpYWwpCkBAIC03NjEsNyArNzY1LDE0IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rv
cjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRGbG9vZENvbG9y
KGNvbCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBjYXNlIENTU19Q
Uk9QX0dMWVBIX09SSUVOVEFUSU9OX1ZFUlRJQ0FMOgorICAgICAgICBjYXNlIENTU19QUk9QX0dM
WVBIX09SSUVOVEFUSU9OX0hPUklaT05UQUw6CisgICAgICAgICAgICAvLyBzdXBwb3J0IGZvciBh
Ym92ZSBwcm9wZXJ0aWVzIGhhcyBub3QgYmVlbiBpbXBsZW1lbnRlZCBpbiB0aGUgZW5naW5lIHll
dAorICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyBJ
ZiB5b3UgY3Jhc2ggaGVyZSwgaXQncyBiZWNhdXNlIHlvdSBhZGRlZCBhIGNzcyBwcm9wZXJ0eSBh
bmQgYXJlIG5vdCBoYW5kbGluZyBpdAorICAgICAgICAgICAgLy8gaW4gZWl0aGVyIHRoaXMgc3dp
dGNoIHN0YXRlbWVudCBvciB0aGUgb25lIGluIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVy
dHkKKyAgICAgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoMCwgInVuaW1wbGVtZW50ZWQgcHJv
cGVydHlJRDogJWQiLCBpZCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogfQpJbmRleDog
V2ViQ29yZS9rc3ZnMi9zY3JpcHRzL2Nzc21ha2Vwcm9wcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2tzdmcyL3NjcmlwdHMvY3NzbWFrZXByb3BzCShyZXZpc2lvbiAyNjEwNikKKysrIFdlYkNvcmUv
a3N2ZzIvc2NyaXB0cy9jc3NtYWtlcHJvcHMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTg0ICswLDAg
QEAKLSMhL3Vzci9iaW4vcGVybCAtdwotIwotIyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBL
REUgbGlicmFyaWVzCi0jCi0jICAgQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xs
QG1waS1oZC5tcGcuZGUpCi0jICAgICAgICAgICAgICAgICAyMDA0LTIwMDUgTmlrb2xhcyBaaW1t
ZXJtYW5uICh3aWxkZm94QGtkZS5vcmcpCi0jCi0jICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotIyAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0jICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0j
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotIwotIyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotIyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0jICAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSMgICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSMKLSMgICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0jICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSMgICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotIyAgIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotIwotCi11c2Ugc3RyaWN0OwotCi1teSAkbnNGdWxs
ID0gJEFSR1ZbMV07Ci1teSAkbnMgPSAkbnNGdWxsOyAkbnMgPX4gcy9LLy87Ci1teSAkYmFzZW5h
bWUgPSAiY3NzcHJvcGVydGllcyI7Ci1pZiAoZGVmaW5lZCgkQVJHVlsyXSkgJiYgJEFSR1ZbMl0g
ZXEgIi1mIikgewotICAgIG15ICRpbnB1dGZpbGUgPSAkQVJHVlszXTsKLSAgICAkaW5wdXRmaWxl
ID1+IG0vKC4qKVwuaW4vOwotICAgICRiYXNlbmFtZSA9ICQxOwotfQotCi1teSAkZmlsZWMgPSAi
JGJhc2VuYW1lLmMiOwotbXkgJGZpbGVoID0gIiRiYXNlbmFtZS5oIjsKLW15ICRmaWxlaW4gPSAi
JGJhc2VuYW1lLmluIjsKLW15ICRmaWxlZ3BlcmYgPSAiJGJhc2VuYW1lLmdwZXJmIjsKLQotb3Bl
biBJTiwgJGZpbGVpbiBvciBkaWUgIkNhbid0IG9wZW4gJGZpbGVpblxuIjsKLW9wZW4gSEVBREVS
LCAiPiRmaWxlaCIgb3IgZGllICJDYW4ndCBvcGVuICRmaWxlaFxuIjsKLW9wZW4gT1VULCAiPiRm
aWxlZ3BlcmYiIG9yIGRpZSAiQ2FuJ3Qgb3BlbiAkZmlsZWdwZXJmXG4iOwotCi1wcmludCBPVVQg
IiV7XG4vKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSAkZmlsZWlu
IGJ5IGNzc21ha2Vwcm9wcywgZG8gbm90IGVkaXQgKi9cbiNpbmNsdWRlIFwiJGZpbGVoXCJcbiV9
XG4iOwotcHJpbnQgT1VUICJzdHJ1Y3QgY3NzX3Byb3Age1xuICAgIGNvbnN0IGNoYXIqIG5hbWU7
XG4gICAgaW50IGlkO1xufTtcblxuIjsKLXByaW50IE9VVCAic3RhdGljIGNvbnN0IHN0cnVjdCBj
c3NfcHJvcCAqZmluZCR7bnN9UHJvcCAocmVnaXN0ZXIgY29uc3QgY2hhciAqc3RyLCByZWdpc3Rl
ciB1bnNpZ25lZCBpbnQgbGVuKTtcblxuJSVcbiI7Ci0KLXByaW50IEhFQURFUiAiLyogVGhpcyBm
aWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gJGZpbGVpbiBieSBjc3NtYWtlcHJv
cHMsIGRvIG5vdCBlZGl0ICovXG4vKiBDb3B5cmlnaHQgMTk5OSBMYXJzIEtub2xsICovXG5cbiNp
Zm5kZWYgJHtuc0Z1bGx9X0NTU1BST1BFUlRJRVNfSFxuI2RlZmluZSAke25zRnVsbH1fQ1NTUFJP
UEVSVElFU19IXG5cbiI7Ci0KLW15ICVhbWFwID0gKCk7Ci1teSBAYSA9ICgpOwotCi1teSAkbnVt
ID0gMDsKLWlmICgkbnNGdWxsIG5lICJLRE9NIikgewotCSRudW0gPSAxMDAwMTsgIyBCaWdnZXIg
dGhhbiBhbGwgcHJvcGVydGllcyBmcm9tIEhUTUwgQ1NTCi0KLQlwcmludCBIRUFERVIgIiNkZWZp
bmUgJHtuc31DU1NfUFJPUF9JTlZBTElEIDBcbiI7Ci0JcHJpbnQgSEVBREVSICIjZGVmaW5lICR7
bnN9Q1NTX1BST1BfTUlOICRudW1cbiI7Ci0KLQkkbnVtID0gJG51bSAtIDE7Ci19IGVsc2Ugewot
CXByaW50IEhFQURFUiAiI2RlZmluZSBDU1NfUFJPUF9JTlZBTElEIDBcbiI7Ci0JcHJpbnQgSEVB
REVSICIjZGVmaW5lIENTU19QUk9QX01JTiAxXG4iOwotfQotCi13aGlsZSAoPElOPikgewotICAg
IGNob21wOwotICAgIG15ICRwcm9wID0gJF87Ci0KLQlpZihub3QoJHByb3AgPX4gLyMvKSBhbmQg
KGxlbmd0aCgkcHJvcCkgPiAwKSkgewotCSAgICAkbnVtID0gJG51bSArIDE7Ci0KLQkgICAgbXkg
JHVwID0gdWMoJHByb3ApOwotCSAgICBwdXNoKEBhLCAkdXApOwotCi0JCW15ICRwdXAgPSAkdXA7
Ci0JCSRwdXAgPX4gcy8tL18vZzsKLQotCSAgICAkYW1hcHskcHVwfSA9ICRudW07Ci0JCQotCQlp
ZiAoJG5zRnVsbCBlcSAiS0RPTSIpIHsKLQkgICAgCXByaW50IE9VVCAkcHJvcCAuICIsIENTU19Q
Uk9QXyIgLiAkcHVwIC4gIlxuIjsKLQkJICAgIHByaW50IEhFQURFUiAiI2RlZmluZSBDU1NfUFJP
UF8iIC4gJHB1cCAuICIgIiAuICRudW0gLiAiXG4iOwotCQl9IGVsc2UgewotCSAgICAJcHJpbnQg
T1VUICRwcm9wIC4gIiwgJHtuc31DU1NfUFJPUF8iIC4gJHB1cCAuICJcbiI7Ci0JCSAgICBwcmlu
dCBIRUFERVIgIiNkZWZpbmUgJHtuc31DU1NfUFJPUF8iIC4gJHB1cCAuICIgIiAuICRudW0gLiAi
XG4iOwotCQl9Ci0gICAgfQotfQotCi1jbG9zZShJTik7Ci0KLWlmICgkbnNGdWxsIGVxICJLRE9N
IikgewotCXByaW50IEhFQURFUiAiI2RlZmluZSBDU1NfUFJPUF9NQVggJG51bVxuIjsKLX0gZWxz
ZSB7Ci0JcHJpbnQgSEVBREVSICIjZGVmaW5lICR7bnN9Q1NTX1BST1BfTUFYICRudW1cbiI7Ci19
Ci0KLXByaW50IE9VVCAiJSVcbiI7Ci1jbG9zZSBPVVQ7Ci0KLXByaW50IEhFQURFUiAiXG5uYW1l
c3BhY2UgJHtuc0Z1bGx9XG57XG4iOwotcHJpbnQgSEVBREVSICIgICAgY29uc3QgY2hhciAqZ2V0
U1ZHQ1NTUHJvcGVydHlOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTtcbiI7Ci1wcmludCBIRUFERVIg
IiAgICBpbnQgZ2V0U1ZHQ1NTUHJvcGVydHlJRChjb25zdCBjaGFyICp0YWdTdHIsIGludCBsZW4p
O1xuIjsKLXByaW50IEhFQURFUiAifVxuIjsKLQotcHJpbnQgSEVBREVSICJcbiNlbmRpZlxuIjsK
LWNsb3NlIEhFQURFUjsKLQotbXkgJHJlc3VsdCA9IHN5c3RlbSgiZ3BlcmYgLWMgLWEgLUwgQU5T
SS1DIC1HIC1EIC1FIC1DIC1vIC10IC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtTmZpbmQke25zfVBy
b3AgLUhoYXNoX3Byb3AgLVd3b3JkbGlzdF9wcm9wIC1EIC1zIDMgJGZpbGVncGVyZiA+ICRmaWxl
YyIpOwotaWYgKCRyZXN1bHQpIHsKLSAgdW5saW5rICIkZmlsZWMiOwotICBleGl0ICRyZXN1bHQ7
Ci19Ci0KLSMgQXZvaWQgY2xhc2hlcyBpbiBwYXJzZXIuY3BwLCB3aGljaCBpbmNsdWRlcyBib3Ro
IENTU1ZhbHVlS2V5d29yZHMuYyAmIENTU1Byb3BlcnR5TmFtZXMuYwotb3BlbiBGLCAiPCRmaWxl
YyI7Ci1teSAkdG1wID0gIiI7Ci13aGlsZSAoPEY+KSB7Ci0gICAgcy9UT1RBTF9LRVlXT1JEUy9Q
Uk9QX1RPVEFMX0tFWVdPUkRTLzsKLSAgICBzL01JTl9XT1JEX0xFTkdUSC9QUk9QX01JTl9XT1JE
X0xFTkdUSC87Ci0gICAgcy9NQVhfV09SRF9MRU5HVEgvUFJPUF9NQVhfV09SRF9MRU5HVEgvOwot
ICAgIHMvTUlOX0hBU0hfVkFMVUUvUFJPUF9NSU5fSEFTSF9WQUxVRS87Ci0gICAgcy9NQVhfSEFT
SF9WQUxVRS9QUk9QX01BWF9IQVNIX1ZBTFVFLzsKLSAgICBzL2xvb2t1cC9sb29rdXBQcm9wL2c7
Ci0gICAgJHRtcCA9ICR0bXAgLiAkXzsKLX0KLWNsb3NlIEY7Ci1vcGVuIEYsICI+JGZpbGVjIjsK
LXByaW50IEYgJHRtcDsKLWNsb3NlIEY7Ci0KLSMgcmVhZCB0aGUgaGFzaCBtYXBwaW5ncyAoaXMg
dGhlcmUgYSBiZXR0ZXIgd2F5PykKLW15ICVobWFwID0gKCk7Ci1vcGVuKElOLCAiPCAkZmlsZWMi
KTsKLW15ICRpID0gMDsKLXdoaWxlKDxJTj4pIHsKLQlteSAkbG9va0ZvciA9ICJDU1NfUFJPUF8i
OwotCWlmICgkbnNGdWxsIG5lICJLRE9NIikgewotCQkkbG9va0ZvciA9ICRucyAuICRsb29rRm9y
OwotCX0KLQotCWlmICgvIltcdy1dKyIsICR7bG9va0Zvcn0oW1x3X10rKS8pIHsKLQkJJGhtYXB7
JGFtYXB7JDF9fSA9ICRpOwotCQkkaSArPSAxOwotCX0KLX0KLWNsb3NlKElOKTsgIAotCi1vcGVu
KE9VVCwgIj4+ICRmaWxlYyIpOwotcHJpbnQgT1VUICJcbm5hbWVzcGFjZSAke25zRnVsbH1cbntc
biI7Ci1wcmludCBPVVQgIlxuXG5zdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgcHJvcExpc3Rb
XSA9IHtcbiI7Ci1wcmludCBPVVQgIiAgICA2NTUzNSxcbiI7Ci0KLXdoaWxlKGRlZmluZWQgKG15
ICRsaW5lID0gc2hpZnQgQGEpKSB7Ci0gICAgbXkgJGwgPSAkbGluZTsKLQotCWlmKG5vdCgkbCA9
fiAvIy8pIGFuZCAobGVuZ3RoKCRsKSA+IDApKSB7Ci0JCSRsID1+IHkvLS9fLzsKLSAgICAJCi0J
CWRpZSBpZiAhbGVuZ3RoKCRobWFweyRhbWFweyRsfX0pOwotCi0JICAgIHByaW50IE9VVCAiICAg
ICIgLiRobWFweyRhbWFweyRsfX0uIixcbiI7Ci0JfQotfQotCi1teSAkbG9va0ZvciA9ICJDU1Nf
UFJPUF9NQVgiOwotaWYgKCRuc0Z1bGwgbmUgIktET00iKSB7Ci0JJGxvb2tGb3IgPSAkbnMgLiAk
bG9va0ZvcjsKLX0KLQotcHJpbnQgT1VUICIgICAgNjU1MzVcbn07XG5cbiI7Ci1wcmludCBPVVQg
ImNvbnN0IGNoYXIgKmdldFNWR0NTU1Byb3BlcnR5TmFtZSh1bnNpZ25lZCBzaG9ydCBpZClcbntc
biI7Ci1wcmludCBPVVQgIiAgICBpZiAoIWlkIHx8IGlkID4gJGxvb2tGb3IpIHJldHVybiBcIlwi
O1xuIjsKLXByaW50IE9VVCAiICAgIHJldHVybiB3b3JkbGlzdF9wcm9wW3Byb3BMaXN0W2lkXV0u
bmFtZTtcbiI7Ci1wcmludCBPVVQgIn1cbiI7Ci1wcmludCBPVVQgIlxuaW50IGdldFNWR0NTU1By
b3BlcnR5SUQoY29uc3QgY2hhciAqdGFnU3RyLCBpbnQgbGVuKVxuIjsKLXByaW50IE9VVCAie1xu
IjsKLXByaW50IE9VVCAiICAgIGNvbnN0IHN0cnVjdCBjc3NfcHJvcCAqcHJvcFB0ciA9IGZpbmQk
e25zfVByb3AodGFnU3RyLCBsZW4pO1xuIjsKLXByaW50IE9VVCAiICAgIGlmKCFwcm9wUHRyKVxu
IjsKLXByaW50IE9VVCAiICAgICAgcmV0dXJuIDA7XG4iOwotcHJpbnQgT1VUICIgICAgcmV0dXJu
IHByb3BQdHItPmlkO1xuIjsKLXByaW50IE9VVCAifVxuXG4iOwotcHJpbnQgT1VUICJ9XG4iOwpJ
bmRleDogV2ViQ29yZS9rc3ZnMi9zY3JpcHRzL2Nzc21ha2V2YWx1ZXMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9rc3ZnMi9zY3JpcHRzL2Nzc21ha2V2YWx1ZXMJKHJldmlzaW9uIDI2MTA2KQorKysg
V2ViQ29yZS9rc3ZnMi9zY3JpcHRzL2Nzc21ha2V2YWx1ZXMJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTg1ICswLDAgQEAKLSMhL3Vzci9iaW4vcGVybCAtdwotIwotIyAgIFRoaXMgZmlsZSBpcyBwYXJ0
IG9mIHRoZSBLREUgbGlicmFyaWVzCi0jCi0jICAgQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25v
bGwgKGtub2xsQG1waS1oZC5tcGcuZGUpCi0jICAgICAgICAgICAgICAgICAyMDA0LTIwMDUgTmlr
b2xhcyBaaW1tZXJtYW5uICh3aWxkZm94QGtkZS5vcmcpCi0jCi0jICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotIyAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0j
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0jICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotIwotIyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotIyAgIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0jICAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKLSMgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSMKLSMgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0jICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSMgICB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAotIyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotIwotCi11c2Ugc3RyaWN0OwotCi1t
eSAkbnNGdWxsID0gJEFSR1ZbMV07Ci1teSAkbnMgPSAkbnNGdWxsOyAkbnMgPX4gcy9LLy87Ci1t
eSAkYmFzZW5hbWUgPSAiY3NzdmFsdWVzIjsKLWlmIChkZWZpbmVkKCRBUkdWWzJdKSAmJiAkQVJH
VlsyXSBlcSAiLWYiKSB7Ci0gICAgbXkgJGlucHV0ZmlsZSA9ICRBUkdWWzNdOwotICAgICRpbnB1
dGZpbGUgPX4gbS8oLiopXC5pbi87Ci0gICAgJGJhc2VuYW1lID0gJDE7Ci19Ci0KLW15ICRmaWxl
YyA9ICIkYmFzZW5hbWUuYyI7Ci1teSAkZmlsZWggPSAiJGJhc2VuYW1lLmgiOwotbXkgJGZpbGVp
biA9ICIkYmFzZW5hbWUuaW4iOwotbXkgJGZpbGVncGVyZiA9ICIkYmFzZW5hbWUuZ3BlcmYiOwot
Ci1vcGVuIElOLCAkZmlsZWluIG9yIGRpZSAiQ2FuJ3Qgb3BlbiAkZmlsZWluXG4iOwotb3BlbiBI
RUFERVIsICI+JGZpbGVoIiBvciBkaWUgIkNhbid0IG9wZW4gJGZpbGVoXG4iOwotb3BlbiBPVVQs
ICI+JGZpbGVncGVyZiIgb3IgZGllICJDYW4ndCBvcGVuICRmaWxlZ3BlcmZcbiI7Ci0KLXByaW50
IE9VVCAiJXtcbi8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tICRm
aWxlaW4gYnkgY3NzbWFrZXZhbHVlcywgZG8gbm90IGVkaXQgKi9cbiNpbmNsdWRlIFwiJGZpbGVo
XCJcbiV9XG4iOwotcHJpbnQgT1VUICJzdHJ1Y3QgY3NzX3ZhbCB7XG4gICAgY29uc3QgY2hhciog
bmFtZTtcbiAgICBpbnQgaWQ7XG59O1xuXG4iOwotcHJpbnQgT1VUICJzdGF0aWMgY29uc3Qgc3Ry
dWN0IGNzc192YWwgKmZpbmQke25zfVZhbCAocmVnaXN0ZXIgY29uc3QgY2hhciAqc3RyLCByZWdp
c3RlciB1bnNpZ25lZCBpbnQgbGVuKTtcblxuJSVcbiI7Ci0KLXByaW50IEhFQURFUiAiLyogVGhp
cyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gJGZpbGVpbiBieSBjc3NtYWtl
dmFsdWVzLCBkbyBub3QgZWRpdCAqL1xuLyogQ29weXJpZ2h0IDE5OTkgTGFycyBLbm9sbCAqL1xu
XG4jaWZuZGVmICR7bnNGdWxsfV9DU1NWQUxVRVNfSFxuI2RlZmluZSAke25zRnVsbH1fQ1NTVkFM
VUVTX0hcblxuIjsKLQotbXkgJWFtYXAgPSAoKTsKLQotbXkgJG51bSA9IDA7Ci1pZiAoJG5zRnVs
bCBuZSAiS0RPTSIpIHsKLQkkbnVtID0gMTAwMDE7ICMgQmlnZ2VyIHRoYW4gYWxsIHZhbHVlcyBm
cm9tIEhUTUwgQ1NTCi0KLQlwcmludCBIRUFERVIgIiNkZWZpbmUgJHtuc31DU1NfVkFMX0lOVkFM
SUQgMFxuIjsKLQlwcmludCBIRUFERVIgIiNkZWZpbmUgJHtuc31DU1NfVkFMX01JTiAkbnVtXG4i
OwotCi0gICAgJG51bSA9ICRudW0gLSAxOwotfSBlbHNlIHsKLQlwcmludCBIRUFERVIgIiNkZWZp
bmUgQ1NTX1ZBTF9JTlZBTElEIDBcbiI7Ci0JcHJpbnQgSEVBREVSICIjZGVmaW5lIENTU19WQUxf
TUlOIDFcbiI7Ci19Ci0KLW15IEBhID0gKCk7Ci0KLXdoaWxlICg8SU4+KSB7Ci0gICAgY2hvbXA7
Ci0gICAgbXkgJHByb3AgPSAkXzsKLQotCWlmKG5vdCgkcHJvcCA9fiAvIy8pIGFuZCAobGVuZ3Ro
KCRwcm9wKSA+IDApKSB7Ci0JICAgICRudW0gPSAkbnVtICsgMTsKLQotCSAgICBteSAkdXAgPSB1
YygkcHJvcCk7Ci0JICAgIHB1c2goQGEsICR1cCk7Ci0KLQkJbXkgJHB1cCA9ICR1cDsKLQkJJHB1
cCA9fiBzLy0vXy9nOwotCi0JICAgICRhbWFweyRwdXB9ID0gJG51bTsKLQkJCi0JCWlmICgkbnNG
dWxsIGVxICJLRE9NIikgewotCSAgICAJcHJpbnQgT1VUICRwcm9wIC4gIiwgQ1NTX1ZBTF8iIC4g
JHB1cCAuICJcbiI7Ci0JCSAgICBwcmludCBIRUFERVIgIiNkZWZpbmUgQ1NTX1ZBTF8iIC4gJHB1
cCAuICIgIiAuICRudW0gLiAiXG4iOwotCQl9IGVsc2UgewotCSAgICAJcHJpbnQgT1VUICRwcm9w
IC4gIiwgJHtuc31DU1NfVkFMXyIgLiAkcHVwIC4gIlxuIjsKLQkJICAgIHByaW50IEhFQURFUiAi
I2RlZmluZSAke25zfUNTU19WQUxfIiAuICRwdXAgLiAiICIgLiAkbnVtIC4gIlxuIjsKLQkJfQot
ICAgIH0KLX0KLQotY2xvc2UoSU4pOwotCi1pZiAoJG5zRnVsbCBlcSAiS0RPTSIpIHsKLQlwcmlu
dCBIRUFERVIgIiNkZWZpbmUgQ1NTX1ZBTF9NQVggJG51bVxuIjsKLX0gZWxzZSB7Ci0JcHJpbnQg
SEVBREVSICIjZGVmaW5lICR7bnN9Q1NTX1ZBTF9NQVggJG51bVxuIjsKLX0KLQotcHJpbnQgT1VU
ICIlJVxuIjsKLWNsb3NlIE9VVDsKLQotcHJpbnQgSEVBREVSICJcbm5hbWVzcGFjZSAke25zRnVs
bH1cbntcbiI7Ci1wcmludCBIRUFERVIgIiAgICBjb25zdCBjaGFyKiBnZXRTVkdDU1NWYWx1ZU5h
bWUodW5zaWduZWQgc2hvcnQgaWQpO1xuIjsKLXByaW50IEhFQURFUiAiICAgIGludCBnZXRTVkdD
U1NWYWx1ZUlEKGNvbnN0IGNoYXIgKnRhZ1N0ciwgaW50IGxlbik7XG4iOwotcHJpbnQgSEVBREVS
ICJ9XG4iOwotCi1wcmludCBIRUFERVIgIlxuI2VuZGlmXG4iOwotY2xvc2UgSEVBREVSOwotCi1t
eSAkcmVzdWx0ID0gc3lzdGVtKCJncGVyZiAtYyAtYSAtTCBBTlNJLUMgLUcgLUQgLUUgLUMgLW8g
LXQgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1OZmluZCR7bnN9VmFsIC1IaGFzaF92YWwgLVd3b3Jk
bGlzdF92YWwgLUQgLXMgMyAkZmlsZWdwZXJmID4gJGZpbGVjIik7Ci1pZiAoJHJlc3VsdCkgewot
ICB1bmxpbmsgIiRmaWxlYyI7Ci0gIGV4aXQgJHJlc3VsdDsKLX0KLQotIyBBdm9pZCBjbGFzaGVz
IGluIHBhcnNlci5jcHAsIHdoaWNoIGluY2x1ZGVzIGJvdGggQ1NTVmFsdWVLZXl3b3Jkcy5jICYg
Q1NTUHJvcGVydHlOYW1lcy5jCi1vcGVuIEYsICI8JGZpbGVjIjsKLW15ICR0bXAgPSAiIjsKLXdo
aWxlICg8Rj4pIHsKLSAgICBzL1RPVEFMX0tFWVdPUkRTL1ZBTF9UT1RBTF9LRVlXT1JEUy87Ci0g
ICAgcy9NSU5fV09SRF9MRU5HVEgvVkFMX01JTl9XT1JEX0xFTkdUSC87Ci0gICAgcy9NQVhfV09S
RF9MRU5HVEgvVkFMX01BWF9XT1JEX0xFTkdUSC87Ci0gICAgcy9NSU5fSEFTSF9WQUxVRS9WQUxf
TUlOX0hBU0hfVkFMVUUvOwotICAgIHMvTUFYX0hBU0hfVkFMVUUvVkFMX01BWF9IQVNIX1ZBTFVF
LzsKLSAgICBzL2xvb2t1cC9sb29rdXBWYWwvZzsKLSAgICAkdG1wID0gJHRtcCAuICRfOwotfQot
Y2xvc2UgRjsKLW9wZW4gRiwgIj4kZmlsZWMiOwotcHJpbnQgRiAkdG1wOwotY2xvc2UgRjsKLQot
IyByZWFkIHRoZSBoYXNoIG1hcHBpbmdzIChpcyB0aGVyZSBhIGJldHRlciB3YXk/KQotbXkgJWht
YXAgPSAoKTsKLW9wZW4oSU4sICI8ICRmaWxlYyIpOwotbXkgJGkgPSAwOwotd2hpbGUoPElOPikg
ewotCW15ICRsb29rRm9yID0gIkNTU19WQUxfIjsKLQlpZiAoJG5zRnVsbCBuZSAiS0RPTSIpIHsK
LQkJJGxvb2tGb3IgPSAkbnMgLiAkbG9va0ZvcjsKLQl9Ci0KLQlpZiAoLyJbXHctXSsiLCAke2xv
b2tGb3J9KFtcd19dKykvKSB7Ci0JCSRobWFweyRhbWFweyQxfX0gPSAkaTsKLQkJJGkgKz0gMTsK
LQl9Ci19Ci1jbG9zZShJTik7ICAKLQotb3BlbihPVVQsICI+PiAkZmlsZWMiKTsKLXByaW50IE9V
VCAiXG5uYW1lc3BhY2UgJHtuc0Z1bGx9XG57XG4iOwotcHJpbnQgT1VUICJcblxuc3RhdGljIGNv
bnN0IHVuc2lnbmVkIHNob3J0IHZhbExpc3RbXSA9IHtcbiI7Ci1wcmludCBPVVQgIiAgICA2NTUz
NSxcbiI7Ci0KLXdoaWxlKGRlZmluZWQgKG15ICRsaW5lID0gc2hpZnQgQGEpKSB7Ci0gICAgbXkg
JGwgPSAkbGluZTsKLQotCWlmKG5vdCgkbCA9fiAvIy8pIGFuZCAobGVuZ3RoKCRsKSA+IDApKSB7
Ci0JCSRsID1+IHkvLS9fLzsKLQotICAgIAlkaWUgaWYgIWxlbmd0aCgkaG1hcHskYW1hcHskbH19
KTsKLQotCSAgICBwcmludCBPVVQgIiAgICAiIC4kaG1hcHskYW1hcHskbH19LiIsXG4iOwotCX0K
LX0KLQotbXkgJGxvb2tGb3IgPSAiQ1NTX1ZBTF9NQVgiOwotaWYgKCRuc0Z1bGwgbmUgIktET00i
KSB7Ci0JJGxvb2tGb3IgPSAkbnMgLiAkbG9va0ZvcjsKLX0KLQotcHJpbnQgT1VUICIgICAgNjU1
MzVcbn07XG5cbiI7Ci1wcmludCBPVVQgImNvbnN0IGNoYXIgKmdldFNWR0NTU1ZhbHVlSUQodW5z
aWduZWQgc2hvcnQgaWQpXG57XG4iOwotcHJpbnQgT1VUICIgICAgaWYgKCFpZCB8fCBpZCA+ICRs
b29rRm9yKSByZXR1cm4gXCJcIjtcbiI7Ci1wcmludCBPVVQgIiAgICByZXR1cm4gd29yZGxpc3Rf
dmFsW3ZhbExpc3RbaWRdXS5uYW1lO1xuIjsKLXByaW50IE9VVCAifVxuIjsKLXByaW50IE9VVCAi
XG5pbnQgZ2V0U1ZHQ1NTVmFsdWVJRChjb25zdCBjaGFyICp0YWdTdHIsIGludCBsZW4pXG4iOwot
cHJpbnQgT1VUICJ7XG4iOwotcHJpbnQgT1VUICIgICAgY29uc3Qgc3RydWN0IGNzc192YWwgKnZh
bFB0ciA9IGZpbmQke25zfVZhbCh0YWdTdHIsIGxlbik7XG4iOwotcHJpbnQgT1VUICIgICAgaWYo
IXZhbFB0cilcbiI7Ci1wcmludCBPVVQgIiAgICAgIHJldHVybiAwO1xuIjsKLXByaW50IE9VVCAi
ICAgIHJldHVybiB2YWxQdHItPmlkO1xuIjsKLXByaW50IE9VVCAifVxuXG4iOwotcHJpbnQgT1VU
ICJ9XG4iOwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDI2MTA2KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJDU1NQcm9w
ZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGbG9hdENvbnZl
cnNpb24uaCIKLSNpbmNsdWRlICJrc3ZnY3NzcHJvcGVydGllcy5oIgogI2luY2x1ZGUgIlNWR1Bh
cnNlclV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJT
VkdVUklSZWZlcmVuY2UuaCIKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAyNjEwNikKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiU1ZHTmFt
ZXMuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1l
bnQuaCIKLSNpbmNsdWRlICJrc3ZnY3NzcHJvcGVydGllcy5oIgogI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTcxLDI0ICs3MCwyMCBAQCBSZW5k
ZXJPYmplY3QqIFNWR1N0eWxlZEVsZW1lbnQ6OmNyZWF0ZVJlCiAgICAgcmV0dXJuIG5ldyAoYXJl
bmEpIFJlbmRlclBhdGgoc3R5bGUsIHRoaXMpOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBjc3NQ
cm9wZXJ0eUlkRm9yTmFtZShjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIGludCBwcm9wZXJ0eUxl
bmd0aCkKLXsKLSAgICBpbnQgcHJvcGVydHlJZCA9IGdldFByb3BlcnR5SUQocHJvcGVydHlOYW1l
LCBwcm9wZXJ0eUxlbmd0aCk7Ci0gICAgaWYgKHByb3BlcnR5SWQgPT0gMCkKLSAgICAgICAgcHJv
cGVydHlJZCA9IFNWRzo6Z2V0U1ZHQ1NTUHJvcGVydHlJRChwcm9wZXJ0eU5hbWUsIHByb3BlcnR5
TGVuZ3RoKTsKLSAgICByZXR1cm4gcHJvcGVydHlJZDsKLX0KLQogc3RhdGljIGlubGluZSB2b2lk
IG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkoSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgaW50
PiogcHJvcGVydHlOYW1lVG9JZE1hcCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNv
bnN0IGNoYXIqIGNzc1Byb3BlcnR5TmFtZSA9IDApCiB7CiAgICAgaW50IHByb3BlcnR5SWQgPSAw
OwogICAgIGlmIChjc3NQcm9wZXJ0eU5hbWUpCi0gICAgICAgIHByb3BlcnR5SWQgPSBjc3NQcm9w
ZXJ0eUlkRm9yTmFtZShjc3NQcm9wZXJ0eU5hbWUsIHN0cmxlbihjc3NQcm9wZXJ0eU5hbWUpKTsK
KyAgICAgICAgcHJvcGVydHlJZCA9IGdldFByb3BlcnR5SUQoY3NzUHJvcGVydHlOYW1lLCBzdHJs
ZW4oY3NzUHJvcGVydHlOYW1lKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIERlcHJlY2F0ZWRTdHJp
bmcgcHJvcGVydHlOYW1lID0gYXR0ck5hbWUubG9jYWxOYW1lKCkuZGVwcmVjYXRlZFN0cmluZygp
OwotICAgICAgICBwcm9wZXJ0eUlkID0gY3NzUHJvcGVydHlJZEZvck5hbWUocHJvcGVydHlOYW1l
LmFzY2lpKCksIHByb3BlcnR5TmFtZS5sZW5ndGgoKSk7CisgICAgICAgIHByb3BlcnR5SWQgPSBn
ZXRQcm9wZXJ0eUlEKHByb3BlcnR5TmFtZS5hc2NpaSgpLCBwcm9wZXJ0eU5hbWUubGVuZ3RoKCkp
OworICAgIH0KKyAgICBpZiAocHJvcGVydHlJZCA8PSAwKSB7CisgICAgICAgIGZwcmludGYoc3Rk
ZXJyLCAiRmFpbGVkIHRvIGZpbmQgcHJvcGlkIGZvcjogJXMiLCBhdHRyTmFtZS5sb2NhbE5hbWUo
KS5kZXByZWNhdGVkU3RyaW5nKCkuYXNjaWkoKSk7CisgICAgICAgIHJldHVybjsKICAgICB9Ci0g
ICAgQVNTRVJUKHByb3BlcnR5SWQgPiAwKTsKKyAgICAvL0FTU0VSVChwcm9wZXJ0eUlkID4gMCk7
CiAgICAgcHJvcGVydHlOYW1lVG9JZE1hcC0+c2V0KGF0dHJOYW1lLmxvY2FsTmFtZSgpLmltcGwo
KSwgcHJvcGVydHlJZCk7CiB9CiAKQEAgLTEyNCw3ICsxMTksNiBAQCBpbnQgU1ZHU3R5bGVkRWxl
bWVudDo6Y3NzUHJvcGVydHlJZEZvclNWCiAgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVy
dHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZmxvb2Rfb3BhY2l0eUF0dHIpOwogICAgICAgICBtYXBB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfZmFtaWx5QXR0
cik7CiAgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1h
cCwgZm9udF9zaXplQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJv
cGVydHlOYW1lVG9JZE1hcCwgZm9udF9zaXplX2FkanVzdEF0dHIpOwogICAgICAgICBtYXBBdHRy
aWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfc3RyZXRjaEF0dHIp
OwogICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAs
IGZvbnRfc3R5bGVBdHRyKTsKICAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9w
ZXJ0eU5hbWVUb0lkTWFwLCBmb250X3ZhcmlhbnRBdHRyKTsKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2
MTA4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTEgQEAKKzIwMDctMTAtMDggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3ZnL2NzczogQWRk
ZWQuCisgICAgICAgICogc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLnhodG1s
OiBBZGRlZC4KKwogMjAwNy0xMC0wOCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEZhbGtlbmJ1cmcuCkluZGV4OiBMYXlvdXRUZXN0cy9z
dmcvY3NzL2dldENvbXB1dGVkU3R5bGUtYmFzaWMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS1iYXNpYy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3NzL2dldENvbXB1dGVkU3R5bGUtYmFz
aWMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY4NSBAQAorcmVjdDogc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZShiYWNrZ3JvdW5kLWF0dGFjaG1lbnQpIDogc2Nyb2xsCityZWN0
OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGJhY2tncm91bmQtYXR0YWNobWVudCkgOiBbb2Jq
ZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShiYWNr
Z3JvdW5kLWNvbG9yKSA6IHJnYmEoMCwgMCwgMCwgMCkKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5
Q1NTVmFsdWUoYmFja2dyb3VuZC1jb2xvcikgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQor
cmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShiYWNrZ3JvdW5kLWltYWdlKSA6IG5vbmUKK3Jl
Y3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoYmFja2dyb3VuZC1pbWFnZSkgOiBbb2JqZWN0
IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShiYWNrZ3Jv
dW5kLXBvc2l0aW9uKSA6IDAlIDAlCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGJh
Y2tncm91bmQtcG9zaXRpb24pIDogW29iamVjdCBDU1NWYWx1ZUxpc3RdCityZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKGJhY2tncm91bmQtcmVwZWF0KSA6IHJlcGVhdAorcmVjdDogc3R5bGUu
Z2V0UHJvcGVydHlDU1NWYWx1ZShiYWNrZ3JvdW5kLXJlcGVhdCkgOiBbb2JqZWN0IENTU1ByaW1p
dGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShib3JkZXItYm90dG9tLWNv
bG9yKSA6IHJnYigwLCAwLCAwKQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShib3Jk
ZXItYm90dG9tLWNvbG9yKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKGJvcmRlci1ib3R0b20tc3R5bGUpIDogbm9uZQorcmVjdDogc3R5
bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShib3JkZXItYm90dG9tLXN0eWxlKSA6IFtvYmplY3QgQ1NT
UHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGJvcmRlci1ib3R0
b20td2lkdGgpIDogMHB4CityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGJvcmRlci1i
b3R0b20td2lkdGgpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoYm9yZGVyLWNvbGxhcHNlKSA6IHNlcGFyYXRlCityZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKGJvcmRlci1jb2xsYXBzZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2
ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShib3JkZXItbGVmdC1jb2xvcikg
OiByZ2IoMCwgMCwgMCkKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoYm9yZGVyLWxl
ZnQtY29sb3IpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoYm9yZGVyLWxlZnQtc3R5bGUpIDogbm9uZQorcmVjdDogc3R5bGUuZ2V0UHJv
cGVydHlDU1NWYWx1ZShib3JkZXItbGVmdC1zdHlsZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZh
bHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShib3JkZXItbGVmdC13aWR0aCkgOiAw
cHgKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoYm9yZGVyLWxlZnQtd2lkdGgpIDog
W29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUo
Ym9yZGVyLXJpZ2h0LWNvbG9yKSA6IHJnYigwLCAwLCAwKQorcmVjdDogc3R5bGUuZ2V0UHJvcGVy
dHlDU1NWYWx1ZShib3JkZXItcmlnaHQtY29sb3IpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1
ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoYm9yZGVyLXJpZ2h0LXN0eWxlKSA6IG5v
bmUKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoYm9yZGVyLXJpZ2h0LXN0eWxlKSA6
IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVl
KGJvcmRlci1yaWdodC13aWR0aCkgOiAwcHgKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFs
dWUoYm9yZGVyLXJpZ2h0LXdpZHRoKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGJvcmRlci10b3AtY29sb3IpIDogcmdiKDAsIDAsIDAp
CityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGJvcmRlci10b3AtY29sb3IpIDogW29i
amVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoYm9y
ZGVyLXRvcC1zdHlsZSkgOiBub25lCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGJv
cmRlci10b3Atc3R5bGUpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxl
LmdldFByb3BlcnR5VmFsdWUoYm9yZGVyLXRvcC13aWR0aCkgOiAwcHgKK3JlY3Q6IHN0eWxlLmdl
dFByb3BlcnR5Q1NTVmFsdWUoYm9yZGVyLXRvcC13aWR0aCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2
ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShib3R0b20pIDogYXV0bworcmVj
dDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShib3R0b20pIDogW29iamVjdCBDU1NQcmltaXRp
dmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoY2FwdGlvbi1zaWRlKSA6IHRv
cAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShjYXB0aW9uLXNpZGUpIDogW29iamVj
dCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoY2xlYXIp
IDogbm9uZQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShjbGVhcikgOiBbb2JqZWN0
IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShjb2xvcikg
OiByZ2IoMCwgMCwgMCkKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoY29sb3IpIDog
W29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUo
Y3Vyc29yKSA6IGF1dG8KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoY3Vyc29yKSA6
IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVl
KGRpcmVjdGlvbikgOiBsdHIKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoZGlyZWN0
aW9uKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKGRpc3BsYXkpIDogaW5saW5lCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KGRpc3BsYXkpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoZW1wdHktY2VsbHMpIDogc2hvdworcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlD
U1NWYWx1ZShlbXB0eS1jZWxscykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDog
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShmbG9hdCkgOiBub25lCityZWN0OiBzdHlsZS5nZXRQcm9w
ZXJ0eUNTU1ZhbHVlKGZsb2F0KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBz
dHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGZvbnQtZmFtaWx5KSA6IFRpbWVzCityZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKGZvbnQtZmFtaWx5KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFs
dWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGZvbnQtc2l6ZSkgOiAxNnB4CityZWN0
OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGZvbnQtc2l6ZSkgOiBbb2JqZWN0IENTU1ByaW1p
dGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShmb250LXN0eWxlKSA6IG5v
cm1hbAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShmb250LXN0eWxlKSA6IFtvYmpl
Y3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGZvbnQt
dmFyaWFudCkgOiBub3JtYWwKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoZm9udC12
YXJpYW50KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKGZvbnQtd2VpZ2h0KSA6IG5vcm1hbAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlD
U1NWYWx1ZShmb250LXdlaWdodCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDog
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShoZWlnaHQpIDogMHB4CityZWN0OiBzdHlsZS5nZXRQcm9w
ZXJ0eUNTU1ZhbHVlKGhlaWdodCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDog
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShsZWZ0KSA6IGF1dG8KK3JlY3Q6IHN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUobGVmdCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZShsZXR0ZXItc3BhY2luZykgOiBub3JtYWwKK3JlY3Q6IHN0eWxl
LmdldFByb3BlcnR5Q1NTVmFsdWUobGV0dGVyLXNwYWNpbmcpIDogW29iamVjdCBDU1NQcmltaXRp
dmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUobGluZS1oZWlnaHQpIDogbm9y
bWFsCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGxpbmUtaGVpZ2h0KSA6IFtvYmpl
Y3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGxpc3Qt
c3R5bGUtaW1hZ2UpIDogbm9uZQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShsaXN0
LXN0eWxlLWltYWdlKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKGxpc3Qtc3R5bGUtcG9zaXRpb24pIDogb3V0c2lkZQorcmVjdDogc3R5
bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShsaXN0LXN0eWxlLXBvc2l0aW9uKSA6IFtvYmplY3QgQ1NT
UHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGxpc3Qtc3R5bGUt
dHlwZSkgOiBkaXNjCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGxpc3Qtc3R5bGUt
dHlwZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZShtYXJnaW4tYm90dG9tKSA6IDBweAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NW
YWx1ZShtYXJnaW4tYm90dG9tKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBz
dHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG1hcmdpbi1sZWZ0KSA6IDBweAorcmVjdDogc3R5bGUuZ2V0
UHJvcGVydHlDU1NWYWx1ZShtYXJnaW4tbGVmdCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVl
XQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShtYXJnaW4tcmlnaHQpIDogMHB4CityZWN0
OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKG1hcmdpbi1yaWdodCkgOiBbb2JqZWN0IENTU1By
aW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShtYXJnaW4tdG9wKSA6
IDBweAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShtYXJnaW4tdG9wKSA6IFtvYmpl
Y3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG1heC1o
ZWlnaHQpIDogbm9uZQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShtYXgtaGVpZ2h0
KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKG1heC13aWR0aCkgOiBub25lCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKG1h
eC13aWR0aCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZShtaW4taGVpZ2h0KSA6IDBweAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NW
YWx1ZShtaW4taGVpZ2h0KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKG1pbi13aWR0aCkgOiAwcHgKK3JlY3Q6IHN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUobWluLXdpZHRoKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG9wYWNpdHkpIDogMQorcmVjdDogc3R5bGUuZ2V0UHJv
cGVydHlDU1NWYWx1ZShvcGFjaXR5KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG9ycGhhbnMpIDogMgorcmVjdDogc3R5bGUuZ2V0UHJv
cGVydHlDU1NWYWx1ZShvcnBoYW5zKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG91dGxpbmUtY29sb3IpIDogcmdiKDAsIDAsIDApCity
ZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKG91dGxpbmUtY29sb3IpIDogW29iamVjdCBD
U1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUob3V0bGluZS1z
dHlsZSkgOiBub25lCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKG91dGxpbmUtc3R5
bGUpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5
VmFsdWUob3V0bGluZS13aWR0aCkgOiAwcHgKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFs
dWUob3V0bGluZS13aWR0aCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZShvdmVyZmxvdy14KSA6IHZpc2libGUKK3JlY3Q6IHN0eWxlLmdl
dFByb3BlcnR5Q1NTVmFsdWUob3ZlcmZsb3cteCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVl
XQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShvdmVyZmxvdy15KSA6IHZpc2libGUKK3Jl
Y3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUob3ZlcmZsb3cteSkgOiBbb2JqZWN0IENTU1By
aW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwYWRkaW5nLWJvdHRv
bSkgOiAwcHgKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUocGFkZGluZy1ib3R0b20p
IDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFs
dWUocGFkZGluZy1sZWZ0KSA6IDBweAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShw
YWRkaW5nLWxlZnQpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdl
dFByb3BlcnR5VmFsdWUocGFkZGluZy1yaWdodCkgOiAwcHgKK3JlY3Q6IHN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUocGFkZGluZy1yaWdodCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQor
cmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwYWRkaW5nLXRvcCkgOiAwcHgKK3JlY3Q6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUocGFkZGluZy10b3ApIDogW29iamVjdCBDU1NQcmltaXRp
dmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUocGFnZS1icmVhay1hZnRlcikg
OiBhdXRvCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHBhZ2UtYnJlYWstYWZ0ZXIp
IDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFs
dWUocGFnZS1icmVhay1iZWZvcmUpIDogYXV0bworcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NW
YWx1ZShwYWdlLWJyZWFrLWJlZm9yZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVj
dDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwYWdlLWJyZWFrLWluc2lkZSkgOiBhdXRvCityZWN0
OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHBhZ2UtYnJlYWstaW5zaWRlKSA6IFtvYmplY3Qg
Q1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHBvc2l0aW9u
KSA6IHN0YXRpYworcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShwb3NpdGlvbikgOiBb
b2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShy
ZXNpemUpIDogbm9uZQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShyZXNpemUpIDog
W29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUo
cmlnaHQpIDogYXV0bworcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShyaWdodCkgOiBb
b2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSh0
YWJsZS1sYXlvdXQpIDogYXV0bworcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSh0YWJs
ZS1sYXlvdXQpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFBy
b3BlcnR5VmFsdWUodGV4dC1hbGlnbikgOiBhdXRvCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNT
U1ZhbHVlKHRleHQtYWxpZ24pIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0
eWxlLmdldFByb3BlcnR5VmFsdWUodGV4dC1kZWNvcmF0aW9uKSA6IG5vbmUKK3JlY3Q6IHN0eWxl
LmdldFByb3BlcnR5Q1NTVmFsdWUodGV4dC1kZWNvcmF0aW9uKSA6IFtvYmplY3QgQ1NTUHJpbWl0
aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHRleHQtaW5kZW50KSA6IDBw
eAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSh0ZXh0LWluZGVudCkgOiBbb2JqZWN0
IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSh0ZXh0LXNo
YWRvdykgOiBub25lCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHRleHQtc2hhZG93
KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKHRleHQtdHJhbnNmb3JtKSA6IG5vbmUKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFs
dWUodGV4dC10cmFuc2Zvcm0pIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0
eWxlLmdldFByb3BlcnR5VmFsdWUodG9wKSA6IGF1dG8KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5
Q1NTVmFsdWUodG9wKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKHVuaWNvZGUtYmlkaSkgOiBub3JtYWwKK3JlY3Q6IHN0eWxlLmdldFBy
b3BlcnR5Q1NTVmFsdWUodW5pY29kZS1iaWRpKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVd
CityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHZlcnRpY2FsLWFsaWduKSA6IGJhc2VsaW5l
CityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHZlcnRpY2FsLWFsaWduKSA6IFtvYmpl
Y3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHZpc2li
aWxpdHkpIDogdmlzaWJsZQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSh2aXNpYmls
aXR5KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKHdoaXRlLXNwYWNlKSA6IG5vcm1hbAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NW
YWx1ZSh3aGl0ZS1zcGFjZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZSh3aWRvd3MpIDogMgorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlD
U1NWYWx1ZSh3aWRvd3MpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxl
LmdldFByb3BlcnR5VmFsdWUod2lkdGgpIDogMHB4CityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNT
U1ZhbHVlKHdpZHRoKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKHdvcmQtc3BhY2luZykgOiAwcHgKK3JlY3Q6IHN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUod29yZC1zcGFjaW5nKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCity
ZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHdvcmQtd3JhcCkgOiBub3JtYWwKK3JlY3Q6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUod29yZC13cmFwKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZl
VmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHotaW5kZXgpIDogYXV0bworcmVj
dDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSh6LWluZGV4KSA6IFtvYmplY3QgQ1NTUHJpbWl0
aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYXBwZWFyYW5j
ZSkgOiBub25lCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYXBwZWFy
YW5jZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZSgtd2Via2l0LWJhY2tncm91bmQtY2xpcCkgOiBib3JkZXIKK3JlY3Q6IHN0eWxlLmdl
dFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXApIDogW29iamVjdCBDU1NQ
cmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1iYWNr
Z3JvdW5kLWNvbXBvc2l0ZSkgOiBzb3VyY2Utb3ZlcgorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlD
U1NWYWx1ZSgtd2Via2l0LWJhY2tncm91bmQtY29tcG9zaXRlKSA6IFtvYmplY3QgQ1NTUHJpbWl0
aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYmFja2dyb3Vu
ZC1vcmlnaW4pIDogcGFkZGluZworcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Vi
a2l0LWJhY2tncm91bmQtb3JpZ2luKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYmFja2dyb3VuZC1zaXplKSA6IGF1dG8g
YXV0bworcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWJhY2tncm91bmQt
c2l6ZSkgOiBbb2JqZWN0IENTU1ZhbHVlTGlzdF0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFs
dWUoLXdlYmtpdC1ib3JkZXItZml0KSA6IGJvcmRlcgorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlD
U1NWYWx1ZSgtd2Via2l0LWJvcmRlci1maXQpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0K
K3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1ib3JkZXItaG9yaXpvbnRhbC1z
cGFjaW5nKSA6IDBweAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWJv
cmRlci1ob3Jpem9udGFsLXNwYWNpbmcpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3Jl
Y3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1ib3JkZXItdmVydGljYWwtc3BhY2lu
ZykgOiAwcHgKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1ib3JkZXIt
dmVydGljYWwtc3BhY2luZykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWJveC1hbGlnbikgOiBzdHJldGNoCityZWN0OiBz
dHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYm94LWFsaWduKSA6IFtvYmplY3QgQ1NT
UHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYm94
LWRpcmVjdGlvbikgOiBub3JtYWwKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdl
YmtpdC1ib3gtZGlyZWN0aW9uKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBz
dHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYm94LWZsZXgpIDogMAorcmVjdDogc3R5bGUu
Z2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWJveC1mbGV4KSA6IFtvYmplY3QgQ1NTUHJpbWl0
aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYm94LWZsZXgt
Z3JvdXApIDogMQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWJveC1m
bGV4LWdyb3VwKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKC13ZWJraXQtYm94LWxpbmVzKSA6IHNpbmdsZQorcmVjdDogc3R5bGUuZ2V0
UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWJveC1saW5lcykgOiBbb2JqZWN0IENTU1ByaW1pdGl2
ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWJveC1vcmRpbmFs
LWdyb3VwKSA6IDEKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1ib3gt
b3JkaW5hbC1ncm91cCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWJveC1vcmllbnQpIDogaG9yaXpvbnRhbAorcmVjdDog
c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWJveC1vcmllbnQpIDogW29iamVjdCBD
U1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1i
b3gtcGFjaykgOiBzdGFydAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0
LWJveC1wYWNrKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKC13ZWJraXQtYm94LXNoYWRvdykgOiBub25lCityZWN0OiBzdHlsZS5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYm94LXNoYWRvdykgOiBbb2JqZWN0IENTU1ByaW1pdGl2
ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWJveC1zaXppbmcp
IDogY29udGVudC1ib3gKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1i
b3gtc2l6aW5nKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKC13ZWJraXQtY29sdW1uLWJyZWFrLWFmdGVyKSA6IGF1dG8KK3JlY3Q6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1jb2x1bW4tYnJlYWstYWZ0ZXIpIDogW29i
amVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdl
YmtpdC1jb2x1bW4tYnJlYWstYmVmb3JlKSA6IGF1dG8KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5
Q1NTVmFsdWUoLXdlYmtpdC1jb2x1bW4tYnJlYWstYmVmb3JlKSA6IFtvYmplY3QgQ1NTUHJpbWl0
aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtY29sdW1uLWJy
ZWFrLWluc2lkZSkgOiBhdXRvCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJr
aXQtY29sdW1uLWJyZWFrLWluc2lkZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVj
dDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWNvbHVtbi1jb3VudCkgOiBhdXRvCity
ZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtY29sdW1uLWNvdW50KSA6IFtv
YmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13
ZWJraXQtY29sdW1uLWdhcCkgOiBub3JtYWwKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFs
dWUoLXdlYmtpdC1jb2x1bW4tZ2FwKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtY29sdW1uLXJ1bGUtY29sb3IpIDogcmdi
KDAsIDAsIDApCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtY29sdW1u
LXJ1bGUtY29sb3IpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoLXdlYmtpdC1jb2x1bW4tcnVsZS1zdHlsZSkgOiBub25lCityZWN0OiBz
dHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtY29sdW1uLXJ1bGUtc3R5bGUpIDogW29i
amVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdl
YmtpdC1jb2x1bW4tcnVsZS13aWR0aCkgOiAwcHgKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUoLXdlYmtpdC1jb2x1bW4tcnVsZS13aWR0aCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZh
bHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWNvbHVtbi13aWR0aCkg
OiBhdXRvCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtY29sdW1uLXdp
ZHRoKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKC13ZWJraXQtaGlnaGxpZ2h0KSA6IG5vbmUKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5
Q1NTVmFsdWUoLXdlYmtpdC1oaWdobGlnaHQpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0K
K3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1saW5lLWJyZWFrKSA6IG5vcm1h
bAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWxpbmUtYnJlYWspIDog
W29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUo
LXdlYmtpdC1saW5lLWNsYW1wKSA6IG5vbmUKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFs
dWUoLXdlYmtpdC1saW5lLWNsYW1wKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtbWFyZ2luLWJvdHRvbS1jb2xsYXBzZSkg
OiBjb2xsYXBzZQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LW1hcmdp
bi1ib3R0b20tY29sbGFwc2UpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0
eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlKSA6IGNvbGxh
cHNlCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtbWFyZ2luLXRvcC1j
b2xsYXBzZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgtd2Via2l0LW1hcnF1ZWUtZGlyZWN0aW9uKSA6IGF1dG8KK3JlY3Q6IHN0eWxl
LmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1tYXJxdWVlLWRpcmVjdGlvbikgOiBbb2JqZWN0
IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0
LW1hcnF1ZWUtaW5jcmVtZW50KSA6IDZweAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1
ZSgtd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVd
CityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtbWFycXVlZS1yZXBldGl0aW9u
KSA6IGluZmluaXRlCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtbWFy
cXVlZS1yZXBldGl0aW9uKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtbWFycXVlZS1zdHlsZSkgOiBzY3JvbGwKK3JlY3Q6
IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1tYXJxdWVlLXN0eWxlKSA6IFtvYmpl
Y3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJr
aXQtbmJzcC1tb2RlKSA6IG5vcm1hbAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgt
d2Via2l0LW5ic3AtbW9kZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LXJ0bC1vcmRlcmluZykgOiBsb2dpY2FsCityZWN0
OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtcnRsLW9yZGVyaW5nKSA6IFtvYmpl
Y3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJr
aXQtdGV4dC1kZWNvcmF0aW9ucy1pbi1lZmZlY3QpIDogbm9uZQorcmVjdDogc3R5bGUuZ2V0UHJv
cGVydHlDU1NWYWx1ZSgtd2Via2l0LXRleHQtZGVjb3JhdGlvbnMtaW4tZWZmZWN0KSA6IFtvYmpl
Y3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJr
aXQtdGV4dC1maWxsLWNvbG9yKSA6IHJnYigwLCAwLCAwKQorcmVjdDogc3R5bGUuZ2V0UHJvcGVy
dHlDU1NWYWx1ZSgtd2Via2l0LXRleHQtZmlsbC1jb2xvcikgOiBbb2JqZWN0IENTU1ByaW1pdGl2
ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LXRleHQtc2VjdXJp
dHkpIDogbm9uZQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LXRleHQt
c2VjdXJpdHkpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoLXdlYmtpdC10ZXh0LXN0cm9rZS1jb2xvcikgOiByZ2IoMCwgMCwgMCkKK3Jl
Y3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC10ZXh0LXN0cm9rZS1jb2xvcikg
OiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZSgtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoKSA6IDAKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5
Q1NTVmFsdWUoLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2
ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LXVzZXItZHJhZykg
OiBhdXRvCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtdXNlci1kcmFn
KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKC13ZWJraXQtdXNlci1tb2RpZnkpIDogcmVhZC1vbmx5CityZWN0OiBzdHlsZS5nZXRQcm9w
ZXJ0eUNTU1ZhbHVlKC13ZWJraXQtdXNlci1tb2RpZnkpIDogW29iamVjdCBDU1NQcmltaXRpdmVW
YWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC11c2VyLXNlbGVjdCkg
OiB0ZXh0CityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtdXNlci1zZWxl
Y3QpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5
VmFsdWUoLXdlYmtpdC1kYXNoYm9hcmQtcmVnaW9uKSA6IG51bGwKK3JlY3Q6IHN0eWxlLmdldFBy
b3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1kYXNoYm9hcmQtcmVnaW9uKSA6IFtvYmplY3QgQ1NTUHJp
bWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYm9yZGVy
LWJvdHRvbS1sZWZ0LXJhZGl1cykgOiAwcHgKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFs
dWUoLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzKSA6IFtvYmplY3QgQ1NTUHJpbWl0
aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYm9yZGVyLWJv
dHRvbS1yaWdodC1yYWRpdXMpIDogMHB4CityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMpIDogW29iamVjdCBDU1NQcmltaXRp
dmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1ib3JkZXItdG9w
LWxlZnQtcmFkaXVzKSA6IDBweAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Vi
a2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXMpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0K
K3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJh
ZGl1cykgOiAwcHgKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1ib3Jk
ZXItdG9wLXJpZ2h0LXJhZGl1cykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDog
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShjbGlwLXBhdGgpIDogbm9uZQorcmVjdDogc3R5bGUuZ2V0
UHJvcGVydHlDU1NWYWx1ZShjbGlwLXBhdGgpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0K
K3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoY2xpcC1ydWxlKSA6IG5vbnplcm8KK3JlY3Q6
IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoY2xpcC1ydWxlKSA6IFtvYmplY3QgQ1NTUHJpbWl0
aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG1hc2spIDogbm9uZQorcmVj
dDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShtYXNrKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZl
VmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGVuYWJsZS1iYWNrZ3JvdW5kKSA6
IAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShlbmFibGUtYmFja2dyb3VuZCkgOiBu
dWxsCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGZpbHRlcikgOiBub25lCityZWN0OiBz
dHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGZpbHRlcikgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZh
bHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShmbG9vZC1jb2xvcikgOiByZ2IoMCwg
MCwgMCkKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoZmxvb2QtY29sb3IpIDogW29i
amVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoZmxv
b2Qtb3BhY2l0eSkgOiAxCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGZsb29kLW9w
YWNpdHkpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3Bl
cnR5VmFsdWUobGlnaHRpbmctY29sb3IpIDogcmdiKDI1NSwgMjU1LCAyNTUpCityZWN0OiBzdHls
ZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGxpZ2h0aW5nLWNvbG9yKSA6IFtvYmplY3QgQ1NTUHJpbWl0
aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHN0b3AtY29sb3IpIDogcmdi
KDAsIDAsIDApCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHN0b3AtY29sb3IpIDog
W29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUo
c3RvcC1vcGFjaXR5KSA6IDEKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoc3RvcC1v
cGFjaXR5KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKHBvaW50ZXItZXZlbnRzKSA6IHZpc2libGVwYWludGVkCityZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKHBvaW50ZXItZXZlbnRzKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZl
VmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGNvbG9yLWludGVycG9sYXRpb24p
IDogc3JnYgorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShjb2xvci1pbnRlcnBvbGF0
aW9uKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycykgOiBsaW5lYXJyZ2IKK3JlY3Q6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzKSA6IFtv
YmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGNv
bG9yLXByb2ZpbGUpIDogCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGNvbG9yLXBy
b2ZpbGUpIDogbnVsbAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShjb2xvci1yZW5kZXJp
bmcpIDogYXV0bworcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShjb2xvci1yZW5kZXJp
bmcpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5
VmFsdWUoZmlsbCkgOiAjMDAwMEZGCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGZp
bGwpIDogW29iamVjdCBTVkdQYWludF0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoZmls
bC1vcGFjaXR5KSA6IDEKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoZmlsbC1vcGFj
aXR5KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKGZpbGwtcnVsZSkgOiBub256ZXJvCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1Zh
bHVlKGZpbGwtcnVsZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZShpbWFnZS1yZW5kZXJpbmcpIDogYXV0bworcmVjdDogc3R5bGUuZ2V0
UHJvcGVydHlDU1NWYWx1ZShpbWFnZS1yZW5kZXJpbmcpIDogW29iamVjdCBDU1NQcmltaXRpdmVW
YWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUobWFya2VyLWVuZCkgOiBub25lCity
ZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKG1hcmtlci1lbmQpIDogW29iamVjdCBDU1NQ
cmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUobWFya2VyLW1pZCkg
OiBub25lCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKG1hcmtlci1taWQpIDogW29i
amVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUobWFy
a2VyLXN0YXJ0KSA6IG5vbmUKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUobWFya2Vy
LXN0YXJ0KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKHNoYXBlLXJlbmRlcmluZykgOiBhdXRvCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0
eUNTU1ZhbHVlKHNoYXBlLXJlbmRlcmluZykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQor
cmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShzdHJva2UpIDogI0ZGQTUwMAorcmVjdDogc3R5
bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShzdHJva2UpIDogW29iamVjdCBTVkdQYWludF0KK3JlY3Q6
IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoc3Ryb2tlLWRhc2hhcnJheSkgOiAKK3JlY3Q6IHN0eWxl
LmdldFByb3BlcnR5Q1NTVmFsdWUoc3Ryb2tlLWRhc2hhcnJheSkgOiBudWxsCityZWN0OiBzdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKHN0cm9rZS1kYXNob2Zmc2V0KSA6IAorcmVjdDogc3R5bGUuZ2V0
UHJvcGVydHlDU1NWYWx1ZShzdHJva2UtZGFzaG9mZnNldCkgOiBudWxsCityZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKHN0cm9rZS1saW5lY2FwKSA6IGJ1dHQKK3JlY3Q6IHN0eWxlLmdldFBy
b3BlcnR5Q1NTVmFsdWUoc3Ryb2tlLWxpbmVjYXApIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1
ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoc3Ryb2tlLWxpbmVqb2luKSA6IG1pdGVy
CityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHN0cm9rZS1saW5lam9pbikgOiBbb2Jq
ZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShzdHJv
a2UtbWl0ZXJsaW1pdCkgOiA0CityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHN0cm9r
ZS1taXRlcmxpbWl0KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKHN0cm9rZS1vcGFjaXR5KSA6IDEKK3JlY3Q6IHN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUoc3Ryb2tlLW9wYWNpdHkpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0K
K3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoc3Ryb2tlLXdpZHRoKSA6IDJweAorcmVjdDog
c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShzdHJva2Utd2lkdGgpIDogW29iamVjdCBDU1NQcmlt
aXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUodGV4dC1yZW5kZXJpbmcp
IDogYXV0bworcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSh0ZXh0LXJlbmRlcmluZykg
OiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZShhbGlnbm1lbnQtYmFzZWxpbmUpIDogYXV0bworcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NW
YWx1ZShhbGlnbm1lbnQtYmFzZWxpbmUpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3Jl
Y3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoYmFzZWxpbmUtc2hpZnQpIDogCityZWN0OiBzdHls
ZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGJhc2VsaW5lLXNoaWZ0KSA6IG51bGwKK3JlY3Q6IHN0eWxl
LmdldFByb3BlcnR5VmFsdWUoZG9taW5hbnQtYmFzZWxpbmUpIDogYXV0bworcmVjdDogc3R5bGUu
Z2V0UHJvcGVydHlDU1NWYWx1ZShkb21pbmFudC1iYXNlbGluZSkgOiBbb2JqZWN0IENTU1ByaW1p
dGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShnbHlwaC1vcmllbnRhdGlv
bi1ob3Jpem9udGFsKSA6IAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShnbHlwaC1v
cmllbnRhdGlvbi1ob3Jpem9udGFsKSA6IG51bGwKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFs
dWUoZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwpIDogCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0
eUNTU1ZhbHVlKGdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsKSA6IG51bGwKK3JlY3Q6IHN0eWxl
LmdldFByb3BlcnR5VmFsdWUoa2VybmluZykgOiAKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUoa2VybmluZykgOiBudWxsCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHRleHQt
YW5jaG9yKSA6IHN0YXJ0CityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHRleHQtYW5j
aG9yKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKHdyaXRpbmctbW9kZSkgOiBsci10YgorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NW
YWx1ZSh3cml0aW5nLW1vZGUpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxl
LmdldFByb3BlcnR5VmFsdWUoYmFja2dyb3VuZC1hdHRhY2htZW50KSA6IHNjcm9sbAorZzogc3R5
bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShiYWNrZ3JvdW5kLWF0dGFjaG1lbnQpIDogW29iamVjdCBD
U1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoYmFja2dyb3VuZC1j
b2xvcikgOiByZ2JhKDAsIDAsIDAsIDApCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGJh
Y2tncm91bmQtY29sb3IpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoYmFja2dyb3VuZC1pbWFnZSkgOiBub25lCitnOiBzdHlsZS5nZXRQcm9w
ZXJ0eUNTU1ZhbHVlKGJhY2tncm91bmQtaW1hZ2UpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1
ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoYmFja2dyb3VuZC1wb3NpdGlvbikgOiAwJSAw
JQorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShiYWNrZ3JvdW5kLXBvc2l0aW9uKSA6IFtv
YmplY3QgQ1NTVmFsdWVMaXN0XQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShiYWNrZ3JvdW5k
LXJlcGVhdCkgOiByZXBlYXQKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoYmFja2dyb3Vu
ZC1yZXBlYXQpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3Bl
cnR5VmFsdWUoYm9yZGVyLWJvdHRvbS1jb2xvcikgOiByZ2IoMCwgMCwgMCkKK2c6IHN0eWxlLmdl
dFByb3BlcnR5Q1NTVmFsdWUoYm9yZGVyLWJvdHRvbS1jb2xvcikgOiBbb2JqZWN0IENTU1ByaW1p
dGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShib3JkZXItYm90dG9tLXN0eWxl
KSA6IG5vbmUKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoYm9yZGVyLWJvdHRvbS1zdHls
ZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZShib3JkZXItYm90dG9tLXdpZHRoKSA6IDBweAorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1
ZShib3JkZXItYm90dG9tLXdpZHRoKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBz
dHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGJvcmRlci1jb2xsYXBzZSkgOiBzZXBhcmF0ZQorZzogc3R5
bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShib3JkZXItY29sbGFwc2UpIDogW29iamVjdCBDU1NQcmlt
aXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoYm9yZGVyLWxlZnQtY29sb3Ip
IDogcmdiKDAsIDAsIDApCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGJvcmRlci1sZWZ0
LWNvbG9yKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKGJvcmRlci1sZWZ0LXN0eWxlKSA6IG5vbmUKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUoYm9yZGVyLWxlZnQtc3R5bGUpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6
IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoYm9yZGVyLWxlZnQtd2lkdGgpIDogMHB4CitnOiBzdHls
ZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGJvcmRlci1sZWZ0LXdpZHRoKSA6IFtvYmplY3QgQ1NTUHJp
bWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGJvcmRlci1yaWdodC1jb2xv
cikgOiByZ2IoMCwgMCwgMCkKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoYm9yZGVyLXJp
Z2h0LWNvbG9yKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKGJvcmRlci1yaWdodC1zdHlsZSkgOiBub25lCitnOiBzdHlsZS5nZXRQcm9wZXJ0
eUNTU1ZhbHVlKGJvcmRlci1yaWdodC1zdHlsZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVl
XQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShib3JkZXItcmlnaHQtd2lkdGgpIDogMHB4Citn
OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGJvcmRlci1yaWdodC13aWR0aCkgOiBbb2JqZWN0
IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShib3JkZXItdG9w
LWNvbG9yKSA6IHJnYigwLCAwLCAwKQorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShib3Jk
ZXItdG9wLWNvbG9yKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKGJvcmRlci10b3Atc3R5bGUpIDogbm9uZQorZzogc3R5bGUuZ2V0UHJvcGVy
dHlDU1NWYWx1ZShib3JkZXItdG9wLXN0eWxlKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVd
CitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGJvcmRlci10b3Atd2lkdGgpIDogMHB4CitnOiBz
dHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGJvcmRlci10b3Atd2lkdGgpIDogW29iamVjdCBDU1NQ
cmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoYm90dG9tKSA6IGF1dG8K
K2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoYm90dG9tKSA6IFtvYmplY3QgQ1NTUHJpbWl0
aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGNhcHRpb24tc2lkZSkgOiB0b3AK
K2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoY2FwdGlvbi1zaWRlKSA6IFtvYmplY3QgQ1NT
UHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGNsZWFyKSA6IG5vbmUK
K2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoY2xlYXIpIDogW29iamVjdCBDU1NQcmltaXRp
dmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoY29sb3IpIDogcmdiKDAsIDAsIDAp
CitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGNvbG9yKSA6IFtvYmplY3QgQ1NTUHJpbWl0
aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGN1cnNvcikgOiBhdXRvCitnOiBz
dHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGN1cnNvcikgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZh
bHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShkaXJlY3Rpb24pIDogbHRyCitnOiBzdHls
ZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGRpcmVjdGlvbikgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZh
bHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShkaXNwbGF5KSA6IGlubGluZQorZzogc3R5
bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShkaXNwbGF5KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFs
dWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGVtcHR5LWNlbGxzKSA6IHNob3cKK2c6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoZW1wdHktY2VsbHMpIDogW29iamVjdCBDU1NQcmltaXRp
dmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoZmxvYXQpIDogbm9uZQorZzogc3R5
bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShmbG9hdCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVl
XQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShmb250LWZhbWlseSkgOiBUaW1lcworZzogc3R5
bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShmb250LWZhbWlseSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2
ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShmb250LXNpemUpIDogMTZweAorZzog
c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShmb250LXNpemUpIDogW29iamVjdCBDU1NQcmltaXRp
dmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoZm9udC1zdHlsZSkgOiBub3JtYWwK
K2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoZm9udC1zdHlsZSkgOiBbb2JqZWN0IENTU1By
aW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShmb250LXZhcmlhbnQpIDog
bm9ybWFsCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGZvbnQtdmFyaWFudCkgOiBbb2Jq
ZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShmb250LXdl
aWdodCkgOiBub3JtYWwKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoZm9udC13ZWlnaHQp
IDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUo
aGVpZ2h0KSA6IDBweAorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShoZWlnaHQpIDogW29i
amVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUobGVmdCkg
OiBhdXRvCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGxlZnQpIDogW29iamVjdCBDU1NQ
cmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUobGV0dGVyLXNwYWNpbmcp
IDogbm9ybWFsCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGxldHRlci1zcGFjaW5nKSA6
IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGxp
bmUtaGVpZ2h0KSA6IG5vcm1hbAorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShsaW5lLWhl
aWdodCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZShsaXN0LXN0eWxlLWltYWdlKSA6IG5vbmUKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFs
dWUobGlzdC1zdHlsZS1pbWFnZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZShsaXN0LXN0eWxlLXBvc2l0aW9uKSA6IG91dHNpZGUKK2c6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUobGlzdC1zdHlsZS1wb3NpdGlvbikgOiBbb2JqZWN0IENT
U1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShsaXN0LXN0eWxlLXR5
cGUpIDogZGlzYworZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShsaXN0LXN0eWxlLXR5cGUp
IDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUo
bWFyZ2luLWJvdHRvbSkgOiAwcHgKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUobWFyZ2lu
LWJvdHRvbSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZShtYXJnaW4tbGVmdCkgOiAwcHgKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUo
bWFyZ2luLWxlZnQpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFBy
b3BlcnR5VmFsdWUobWFyZ2luLXJpZ2h0KSA6IDBweAorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NW
YWx1ZShtYXJnaW4tcmlnaHQpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxl
LmdldFByb3BlcnR5VmFsdWUobWFyZ2luLXRvcCkgOiAwcHgKK2c6IHN0eWxlLmdldFByb3BlcnR5
Q1NTVmFsdWUobWFyZ2luLXRvcCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZShtYXgtaGVpZ2h0KSA6IG5vbmUKK2c6IHN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUobWF4LWhlaWdodCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzog
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShtYXgtd2lkdGgpIDogbm9uZQorZzogc3R5bGUuZ2V0UHJv
cGVydHlDU1NWYWx1ZShtYXgtd2lkdGgpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6
IHN0eWxlLmdldFByb3BlcnR5VmFsdWUobWluLWhlaWdodCkgOiAwcHgKK2c6IHN0eWxlLmdldFBy
b3BlcnR5Q1NTVmFsdWUobWluLWhlaWdodCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQor
Zzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShtaW4td2lkdGgpIDogMHB4CitnOiBzdHlsZS5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKG1pbi13aWR0aCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQor
Zzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShvcGFjaXR5KSA6IDEKK2c6IHN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUob3BhY2l0eSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZShvcnBoYW5zKSA6IDIKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUob3JwaGFucykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZShvdXRsaW5lLWNvbG9yKSA6IHJnYigwLCAwLCAwKQorZzogc3R5bGUuZ2V0
UHJvcGVydHlDU1NWYWx1ZShvdXRsaW5lLWNvbG9yKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFs
dWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG91dGxpbmUtc3R5bGUpIDogbm9uZQorZzog
c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShvdXRsaW5lLXN0eWxlKSA6IFtvYmplY3QgQ1NTUHJp
bWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG91dGxpbmUtd2lkdGgpIDog
MHB4CitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKG91dGxpbmUtd2lkdGgpIDogW29iamVj
dCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUob3ZlcmZsb3ct
eCkgOiB2aXNpYmxlCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKG92ZXJmbG93LXgpIDog
W29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUob3Zl
cmZsb3cteSkgOiB2aXNpYmxlCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKG92ZXJmbG93
LXkpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFs
dWUocGFkZGluZy1ib3R0b20pIDogMHB4CitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHBh
ZGRpbmctYm90dG9tKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKHBhZGRpbmctbGVmdCkgOiAwcHgKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUocGFkZGluZy1sZWZ0KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKHBhZGRpbmctcmlnaHQpIDogMHB4CitnOiBzdHlsZS5nZXRQcm9w
ZXJ0eUNTU1ZhbHVlKHBhZGRpbmctcmlnaHQpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0K
K2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUocGFkZGluZy10b3ApIDogMHB4CitnOiBzdHlsZS5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKHBhZGRpbmctdG9wKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFs
dWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHBhZ2UtYnJlYWstYWZ0ZXIpIDogYXV0bwor
Zzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShwYWdlLWJyZWFrLWFmdGVyKSA6IFtvYmplY3Qg
Q1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHBhZ2UtYnJlYWst
YmVmb3JlKSA6IGF1dG8KK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUocGFnZS1icmVhay1i
ZWZvcmUpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5
VmFsdWUocGFnZS1icmVhay1pbnNpZGUpIDogYXV0bworZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NW
YWx1ZShwYWdlLWJyZWFrLWluc2lkZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzog
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwb3NpdGlvbikgOiBzdGF0aWMKK2c6IHN0eWxlLmdldFBy
b3BlcnR5Q1NTVmFsdWUocG9zaXRpb24pIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6
IHN0eWxlLmdldFByb3BlcnR5VmFsdWUocmVzaXplKSA6IG5vbmUKK2c6IHN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUocmVzaXplKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKHJpZ2h0KSA6IGF1dG8KK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUocmlnaHQpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFBy
b3BlcnR5VmFsdWUodGFibGUtbGF5b3V0KSA6IGF1dG8KK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUodGFibGUtbGF5b3V0KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKHRleHQtYWxpZ24pIDogYXV0bworZzogc3R5bGUuZ2V0UHJvcGVy
dHlDU1NWYWx1ZSh0ZXh0LWFsaWduKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBz
dHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHRleHQtZGVjb3JhdGlvbikgOiBub25lCitnOiBzdHlsZS5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKHRleHQtZGVjb3JhdGlvbikgOiBbb2JqZWN0IENTU1ByaW1pdGl2
ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSh0ZXh0LWluZGVudCkgOiAwcHgKK2c6
IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUodGV4dC1pbmRlbnQpIDogW29iamVjdCBDU1NQcmlt
aXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUodGV4dC1zaGFkb3cpIDogbm9u
ZQorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSh0ZXh0LXNoYWRvdykgOiBbb2JqZWN0IENT
U1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSh0ZXh0LXRyYW5zZm9y
bSkgOiBub25lCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHRleHQtdHJhbnNmb3JtKSA6
IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHRv
cCkgOiBhdXRvCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHRvcCkgOiBbb2JqZWN0IENT
U1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSh1bmljb2RlLWJpZGkp
IDogbm9ybWFsCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHVuaWNvZGUtYmlkaSkgOiBb
b2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSh2ZXJ0
aWNhbC1hbGlnbikgOiBiYXNlbGluZQorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSh2ZXJ0
aWNhbC1hbGlnbikgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSh2aXNpYmlsaXR5KSA6IHZpc2libGUKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUodmlzaWJpbGl0eSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZSh3aGl0ZS1zcGFjZSkgOiBub3JtYWwKK2c6IHN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUod2hpdGUtc3BhY2UpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6
IHN0eWxlLmdldFByb3BlcnR5VmFsdWUod2lkb3dzKSA6IDIKK2c6IHN0eWxlLmdldFByb3BlcnR5
Q1NTVmFsdWUod2lkb3dzKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKHdpZHRoKSA6IDBweAorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1
ZSh3aWR0aCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZSh3b3JkLXNwYWNpbmcpIDogMHB4CitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KHdvcmQtc3BhY2luZykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZSh3b3JkLXdyYXApIDogbm9ybWFsCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNT
U1ZhbHVlKHdvcmQtd3JhcCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZSh6LWluZGV4KSA6IGF1dG8KK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUoei1pbmRleCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZSgtd2Via2l0LWFwcGVhcmFuY2UpIDogbm9uZQorZzogc3R5bGUuZ2V0UHJv
cGVydHlDU1NWYWx1ZSgtd2Via2l0LWFwcGVhcmFuY2UpIDogW29iamVjdCBDU1NQcmltaXRpdmVW
YWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXAp
IDogYm9yZGVyCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYmFja2dyb3Vu
ZC1jbGlwKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKC13ZWJraXQtYmFja2dyb3VuZC1jb21wb3NpdGUpIDogc291cmNlLW92ZXIKK2c6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1iYWNrZ3JvdW5kLWNvbXBvc2l0ZSkgOiBb
b2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Vi
a2l0LWJhY2tncm91bmQtb3JpZ2luKSA6IHBhZGRpbmcKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUoLXdlYmtpdC1iYWNrZ3JvdW5kLW9yaWdpbikgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZh
bHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWJhY2tncm91bmQtc2l6ZSkg
OiBhdXRvIGF1dG8KK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1iYWNrZ3Jv
dW5kLXNpemUpIDogW29iamVjdCBDU1NWYWx1ZUxpc3RdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKC13ZWJraXQtYm9yZGVyLWZpdCkgOiBib3JkZXIKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUoLXdlYmtpdC1ib3JkZXItZml0KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitn
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYm9yZGVyLWhvcml6b250YWwtc3BhY2lu
ZykgOiAwcHgKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1ib3JkZXItaG9y
aXpvbnRhbC1zcGFjaW5nKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYm9yZGVyLXZlcnRpY2FsLXNwYWNpbmcpIDogMHB4Citn
OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYm9yZGVyLXZlcnRpY2FsLXNwYWNp
bmcpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFs
dWUoLXdlYmtpdC1ib3gtYWxpZ24pIDogc3RyZXRjaAorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NW
YWx1ZSgtd2Via2l0LWJveC1hbGlnbikgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzog
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWJveC1kaXJlY3Rpb24pIDogbm9ybWFsCitn
OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYm94LWRpcmVjdGlvbikgOiBbb2Jq
ZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0
LWJveC1mbGV4KSA6IDAKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1ib3gt
ZmxleCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgtd2Via2l0LWJveC1mbGV4LWdyb3VwKSA6IDEKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUoLXdlYmtpdC1ib3gtZmxleC1ncm91cCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVl
XQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWJveC1saW5lcykgOiBzaW5nbGUK
K2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1ib3gtbGluZXMpIDogW29iamVj
dCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1i
b3gtb3JkaW5hbC1ncm91cCkgOiAxCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJr
aXQtYm94LW9yZGluYWwtZ3JvdXApIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0
eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1ib3gtb3JpZW50KSA6IGhvcml6b250YWwKK2c6
IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1ib3gtb3JpZW50KSA6IFtvYmplY3Qg
Q1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYm94
LXBhY2spIDogc3RhcnQKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1ib3gt
cGFjaykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgtd2Via2l0LWJveC1zaGFkb3cpIDogbm9uZQorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NW
YWx1ZSgtd2Via2l0LWJveC1zaGFkb3cpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6
IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1ib3gtc2l6aW5nKSA6IGNvbnRlbnQtYm94
CitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYm94LXNpemluZykgOiBbb2Jq
ZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0
LWNvbHVtbi1icmVhay1hZnRlcikgOiBhdXRvCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KC13ZWJraXQtY29sdW1uLWJyZWFrLWFmdGVyKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVd
CitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtY29sdW1uLWJyZWFrLWJlZm9yZSkg
OiBhdXRvCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtY29sdW1uLWJyZWFr
LWJlZm9yZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZSgtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGUpIDogYXV0bworZzogc3R5bGUuZ2V0
UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGUpIDogW29iamVjdCBD
U1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1jb2x1
bW4tY291bnQpIDogYXV0bworZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWNv
bHVtbi1jb3VudCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgtd2Via2l0LWNvbHVtbi1nYXApIDogbm9ybWFsCitnOiBzdHlsZS5nZXRQcm9w
ZXJ0eUNTU1ZhbHVlKC13ZWJraXQtY29sdW1uLWdhcCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZh
bHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWNvbHVtbi1ydWxlLWNvbG9y
KSA6IHJnYigwLCAwLCAwKQorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWNv
bHVtbi1ydWxlLWNvbG9yKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtY29sdW1uLXJ1bGUtc3R5bGUpIDogbm9uZQorZzogc3R5
bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWNvbHVtbi1ydWxlLXN0eWxlKSA6IFtvYmpl
Y3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQt
Y29sdW1uLXJ1bGUtd2lkdGgpIDogMHB4CitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13
ZWJraXQtY29sdW1uLXJ1bGUtd2lkdGgpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6
IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1jb2x1bW4td2lkdGgpIDogYXV0bworZzog
c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWNvbHVtbi13aWR0aCkgOiBbb2JqZWN0
IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWhp
Z2hsaWdodCkgOiBub25lCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtaGln
aGxpZ2h0KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKC13ZWJraXQtbGluZS1icmVhaykgOiBub3JtYWwKK2c6IHN0eWxlLmdldFByb3BlcnR5
Q1NTVmFsdWUoLXdlYmtpdC1saW5lLWJyZWFrKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVd
CitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtbGluZS1jbGFtcCkgOiBub25lCitn
OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtbGluZS1jbGFtcCkgOiBbb2JqZWN0
IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LW1h
cmdpbi1ib3R0b20tY29sbGFwc2UpIDogY29sbGFwc2UKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUoLXdlYmtpdC1tYXJnaW4tYm90dG9tLWNvbGxhcHNlKSA6IFtvYmplY3QgQ1NTUHJpbWl0
aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtbWFyZ2luLXRvcC1j
b2xsYXBzZSkgOiBjb2xsYXBzZQorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0
LW1hcmdpbi10b3AtY29sbGFwc2UpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0
eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1tYXJxdWVlLWRpcmVjdGlvbikgOiBhdXRvCitn
OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtbWFycXVlZS1kaXJlY3Rpb24pIDog
W29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdl
YmtpdC1tYXJxdWVlLWluY3JlbWVudCkgOiA2cHgKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFs
dWUoLXdlYmtpdC1tYXJxdWVlLWluY3JlbWVudCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVl
XQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LW1hcnF1ZWUtcmVwZXRpdGlvbikg
OiBpbmZpbml0ZQorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LW1hcnF1ZWUt
cmVwZXRpdGlvbikgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgtd2Via2l0LW1hcnF1ZWUtc3R5bGUpIDogc2Nyb2xsCitnOiBzdHlsZS5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtbWFycXVlZS1zdHlsZSkgOiBbb2JqZWN0IENTU1ByaW1p
dGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LW5ic3AtbW9kZSkg
OiBub3JtYWwKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1uYnNwLW1vZGUp
IDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUo
LXdlYmtpdC1ydGwtb3JkZXJpbmcpIDogbG9naWNhbAorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NW
YWx1ZSgtd2Via2l0LXJ0bC1vcmRlcmluZykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQor
Zzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LXRleHQtZGVjb3JhdGlvbnMtaW4tZWZm
ZWN0KSA6IG5vbmUKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC10ZXh0LWRl
Y29yYXRpb25zLWluLWVmZmVjdCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LXRleHQtZmlsbC1jb2xvcikgOiByZ2IoMCwgMCwg
MCkKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC10ZXh0LWZpbGwtY29sb3Ip
IDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUo
LXdlYmtpdC10ZXh0LXNlY3VyaXR5KSA6IG5vbmUKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFs
dWUoLXdlYmtpdC10ZXh0LXNlY3VyaXR5KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitn
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtdGV4dC1zdHJva2UtY29sb3IpIDogcmdi
KDAsIDAsIDApCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtdGV4dC1zdHJv
a2UtY29sb3IpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3Bl
cnR5VmFsdWUoLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aCkgOiAwCitnOiBzdHlsZS5nZXRQcm9w
ZXJ0eUNTU1ZhbHVlKC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGgpIDogW29iamVjdCBDU1NQcmlt
aXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC11c2VyLWRyYWcp
IDogYXV0bworZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LXVzZXItZHJhZykg
OiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgt
d2Via2l0LXVzZXItbW9kaWZ5KSA6IHJlYWQtb25seQorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NW
YWx1ZSgtd2Via2l0LXVzZXItbW9kaWZ5KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitn
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtdXNlci1zZWxlY3QpIDogdGV4dAorZzog
c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LXVzZXItc2VsZWN0KSA6IFtvYmplY3Qg
Q1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtZGFz
aGJvYXJkLXJlZ2lvbikgOiBudWxsCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJr
aXQtZGFzaGJvYXJkLXJlZ2lvbikgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMpIDog
MHB4CitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYm9yZGVyLWJvdHRvbS1s
ZWZ0LXJhZGl1cykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzKSA6IDBweAorZzog
c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFk
aXVzKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cykgOiAwcHgKK2c6IHN0eWxlLmdldFBy
b3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzKSA6IFtvYmplY3Qg
Q1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYm9y
ZGVyLXRvcC1yaWdodC1yYWRpdXMpIDogMHB4CitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMpIDogW29iamVjdCBDU1NQcmltaXRpdmVW
YWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoY2xpcC1wYXRoKSA6IG5vbmUKK2c6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoY2xpcC1wYXRoKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZl
VmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGNsaXAtcnVsZSkgOiBub256ZXJvCitn
OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGNsaXAtcnVsZSkgOiBbb2JqZWN0IENTU1ByaW1p
dGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShtYXNrKSA6IG5vbmUKK2c6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUobWFzaykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVl
XQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShlbmFibGUtYmFja2dyb3VuZCkgOiAKK2c6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoZW5hYmxlLWJhY2tncm91bmQpIDogbnVsbAorZzogc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZShmaWx0ZXIpIDogbm9uZQorZzogc3R5bGUuZ2V0UHJvcGVydHlD
U1NWYWx1ZShmaWx0ZXIpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoZmxvb2QtY29sb3IpIDogcmdiKDAsIDAsIDApCitnOiBzdHlsZS5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKGZsb29kLWNvbG9yKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVd
CitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGZsb29kLW9wYWNpdHkpIDogMQorZzogc3R5bGUu
Z2V0UHJvcGVydHlDU1NWYWx1ZShmbG9vZC1vcGFjaXR5KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZl
VmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGxpZ2h0aW5nLWNvbG9yKSA6IHJnYigy
NTUsIDI1NSwgMjU1KQorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShsaWdodGluZy1jb2xv
cikgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZShzdG9wLWNvbG9yKSA6IHJnYigwLCAwLCAwKQorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1
ZShzdG9wLWNvbG9yKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKHN0b3Atb3BhY2l0eSkgOiAxCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1Zh
bHVlKHN0b3Atb3BhY2l0eSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZShwb2ludGVyLWV2ZW50cykgOiB2aXNpYmxlcGFpbnRlZAorZzogc3R5
bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShwb2ludGVyLWV2ZW50cykgOiBbb2JqZWN0IENTU1ByaW1p
dGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShjb2xvci1pbnRlcnBvbGF0aW9u
KSA6IHNyZ2IKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoY29sb3ItaW50ZXJwb2xhdGlv
bikgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZShjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMpIDogbGluZWFycmdiCitnOiBzdHlsZS5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycykgOiBbb2JqZWN0IENT
U1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShjb2xvci1wcm9maWxl
KSA6IAorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShjb2xvci1wcm9maWxlKSA6IG51bGwK
K2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoY29sb3ItcmVuZGVyaW5nKSA6IGF1dG8KK2c6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoY29sb3ItcmVuZGVyaW5nKSA6IFtvYmplY3QgQ1NTUHJp
bWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGZpbGwpIDogIzAwMDAwMAor
Zzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShmaWxsKSA6IFtvYmplY3QgU1ZHUGFpbnRdCitn
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGZpbGwtb3BhY2l0eSkgOiAxCitnOiBzdHlsZS5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKGZpbGwtb3BhY2l0eSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVl
XQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShmaWxsLXJ1bGUpIDogbm9uemVybworZzogc3R5
bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShmaWxsLXJ1bGUpIDogW29iamVjdCBDU1NQcmltaXRpdmVW
YWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoaW1hZ2UtcmVuZGVyaW5nKSA6IGF1dG8K
K2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoaW1hZ2UtcmVuZGVyaW5nKSA6IFtvYmplY3Qg
Q1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG1hcmtlci1lbmQp
IDogbm9uZQorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShtYXJrZXItZW5kKSA6IFtvYmpl
Y3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG1hcmtlci1t
aWQpIDogbm9uZQorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShtYXJrZXItbWlkKSA6IFtv
YmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG1hcmtl
ci1zdGFydCkgOiBub25lCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKG1hcmtlci1zdGFy
dCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZShzaGFwZS1yZW5kZXJpbmcpIDogYXV0bworZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShz
aGFwZS1yZW5kZXJpbmcpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoc3Ryb2tlKSA6ICNGRkE1MDAKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUoc3Ryb2tlKSA6IFtvYmplY3QgU1ZHUGFpbnRdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKHN0cm9rZS1kYXNoYXJyYXkpIDogCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHN0
cm9rZS1kYXNoYXJyYXkpIDogbnVsbAorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShzdHJva2Ut
ZGFzaG9mZnNldCkgOiAKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoc3Ryb2tlLWRhc2hv
ZmZzZXQpIDogbnVsbAorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShzdHJva2UtbGluZWNhcCkg
OiBidXR0CitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHN0cm9rZS1saW5lY2FwKSA6IFtv
YmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHN0cm9r
ZS1saW5lam9pbikgOiBtaXRlcgorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShzdHJva2Ut
bGluZWpvaW4pIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3Bl
cnR5VmFsdWUoc3Ryb2tlLW1pdGVybGltaXQpIDogNAorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NW
YWx1ZShzdHJva2UtbWl0ZXJsaW1pdCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzog
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShzdHJva2Utb3BhY2l0eSkgOiAxCitnOiBzdHlsZS5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKHN0cm9rZS1vcGFjaXR5KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFs
dWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHN0cm9rZS13aWR0aCkgOiAycHgKK2c6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoc3Ryb2tlLXdpZHRoKSA6IFtvYmplY3QgQ1NTUHJpbWl0
aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHRleHQtcmVuZGVyaW5nKSA6IGF1
dG8KK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUodGV4dC1yZW5kZXJpbmcpIDogW29iamVj
dCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoYWxpZ25tZW50
LWJhc2VsaW5lKSA6IGF1dG8KK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoYWxpZ25tZW50
LWJhc2VsaW5lKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKGJhc2VsaW5lLXNoaWZ0KSA6IAorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1
ZShiYXNlbGluZS1zaGlmdCkgOiBudWxsCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGRvbWlu
YW50LWJhc2VsaW5lKSA6IGF1dG8KK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoZG9taW5h
bnQtYmFzZWxpbmUpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCkgOiAKK2c6IHN0eWxlLmdl
dFByb3BlcnR5Q1NTVmFsdWUoZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCkgOiBudWxsCitn
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsKSA6IAor
Zzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCkg
OiBudWxsCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGtlcm5pbmcpIDogCitnOiBzdHlsZS5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKGtlcm5pbmcpIDogbnVsbAorZzogc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSh0ZXh0LWFuY2hvcikgOiBzdGFydAorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSh0
ZXh0LWFuY2hvcikgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSh3cml0aW5nLW1vZGUpIDogbHItdGIKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUod3JpdGluZy1tb2RlKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCisKSW5kZXg6
IExheW91dFRlc3RzL3N2Zy9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS1iYXNpYy54aHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3NzL2dldENvbXB1dGVkU3R5bGUtYmFzaWMueGh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3NzL2dldENvbXB1dGVkU3R5bGUtYmFz
aWMueGh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzcgQEAKKzxodG1sIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgPGJvZHk+CisgICAgPHN2ZyB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hsaW5rIj4KKyAgICAgIDxnIGlkPSJnIiBzdHJva2U9Im9yYW5nZSIgc3Ryb2tlLXdpZHRo
PSIycHgiPgorICAgICAgICA8cmVjdCBpZD0icmVjdCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAi
IGZpbGw9ImJsdWUiIC8+CisgICAgICA8L2c+CisgICAgPC9zdmc+CisgICAgPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KKyAgICA8c2NyaXB0PjwhW0NEQVRBWworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisKKyAgICAgIGZ1bmN0aW9uIGRlYnVnTG9nKHMpIHsKKyAgICAgICAgdmFyIGxvZ0RpdiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKTsKKyAgICAgICAgbG9nRGl2LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHMpKTsKKyAgICAgICAgbG9nRGl2LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCIsICJiciIpKTsKKyAgICAgIH0KKworICAgICAgZnVuY3Rpb24gcHJpbnRTdHlsZShlbGVtZW50
SWQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVt
ZW50SWQpOworICAgICAgICB2YXIgc3R5bGUgPSBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21w
dXRlZFN0eWxlKGVsZW1lbnQpOworICAgICAgCisgICAgICAgIGZvciAodmFyIHggPSAwOyB4IDwg
c3R5bGUubGVuZ3RoOyB4KyspIHsKKyAgICAgICAgICB2YXIgbmFtZSA9IHN0eWxlLml0ZW0oeCk7
CisgICAgICAgICAgdmFyIHZhbHVlID0gc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKTsKKyAg
ICAgICAgICB2YXIgY3NzVmFsdWUgPSBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKG5hbWUpOwor
ICAKKyAgICAgICAgICBkZWJ1Z0xvZyhlbGVtZW50SWQgKyAiOiBzdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCIgKyBuYW1lICsgIikgOiAiICsgdmFsdWUpOworICAgICAgICAgIGRlYnVnTG9nKGVsZW1l
bnRJZCArICI6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoIiArIG5hbWUgKyAiKSA6ICIgKyBj
c3NWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIAorICAgICAgcHJpbnRTdHlsZSgi
cmVjdCIpOworICAgICAgcHJpbnRTdHlsZSgiZyIpOworICAgIF1dPjwvc2NyaXB0PgorICA8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="7002"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>