<?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>212849</bug_id>
          
          <creation_ts>2020-06-05 15:14:57 -0700</creation_ts>
          <short_desc>AX: aria-modal nodes wrapped in aria-hidden are not honored</short_desc>
          <delta_ts>2020-06-29 11:54:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1659819</commentid>
    <comment_count>0</comment_count>
      <attachid>401207</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-06-05 15:14:57 -0700</bug_when>
    <thetext>Created attachment 401207
problem

We determined that the div[role=“dialog”, aria-modal=“true”] in question is wrapped by div[aria-hidden=“true”]. Bc of this wrapper, the div[role=“dialog”, aria-modal=“true”] should be ignored.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659820</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-05 15:15:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/64047019&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659821</commentid>
    <comment_count>2</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-06-05 15:15:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/63985730&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663934</commentid>
    <comment_count>3</comment_count>
      <attachid>402217</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-06-18 11:44:19 -0700</bug_when>
    <thetext>Created attachment 402217
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663935</commentid>
    <comment_count>4</comment_count>
      <attachid>402218</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-06-18 11:45:00 -0700</bug_when>
    <thetext>Created attachment 402218
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663938</commentid>
    <comment_count>5</comment_count>
      <attachid>402219</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-06-18 11:48:44 -0700</bug_when>
    <thetext>Created attachment 402219
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663978</commentid>
    <comment_count>6</comment_count>
      <attachid>402233</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-06-18 13:32:53 -0700</bug_when>
    <thetext>Created attachment 402233
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667211</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-29 11:54:24 -0700</bug_when>
    <thetext>Committed r263673: &lt;https://trac.webkit.org/changeset/263673&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402233.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>401207</attachid>
            <date>2020-06-05 15:14:57 -0700</date>
            <delta_ts>2020-06-05 15:14:57 -0700</delta_ts>
            <desc>problem</desc>
            <filename>reduced-problem.html</filename>
            <type>text/html</type>
            <size>962</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KICAgIDxoZWFkPgogICAgICAgIDx0aXRs
ZT5SZWR1Y2VkIHRlc3QgY2FzZSAtIEJlbmV2aXR5PC90aXRsZT4KICAgIDwvaGVhZD4KICAgIDxi
b2R5PgogICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPmhlbGxvPC9saT4KICAgICAgICAgICAg
PGxpPmJyb3dzZXI8L2xpPgogICAgICAgICAgICA8bGk+YnVnPC9saT4KICAgICAgICA8L3VsPgoK
ICAgICAgICA8ZGl2IGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgICAgICAgICAgPGRpdj4KICAgICAg
ICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICByb2xlPSJkaWFsb2ciCiAgICAgICAg
ICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJtb2RhbF90aXRsZSIKICAgICAgICAgICAgICAg
ICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJtb2RhbF9kZXNjcmlwdGlvbiIKICAgICAgICAgICAgICAg
ICAgICBhcmlhLW1vZGFsPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSItMSIK
ICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAg
ICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJoZWFkaW5n
IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sZXZlbD0iMiIKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlkPSJtb2RhbF90aXRsZSIKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRhYmluZGV4PSIwIgogICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAg
ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ibW9kYWxfZGVz
Y3JpcHRpb24iIHRhYmluZGV4PSIwIj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAg
ICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402217</attachid>
            <date>2020-06-18 11:44:19 -0700</date>
            <delta_ts>2020-06-18 11:45:00 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_212849.txt</filename>
            <type>text/plain</type>
            <size>27054</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggNWEwODlkNDQ1ZTYuLjY3MmMxY2QzNmJlIDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTgg
QEANCisyMDIwLTA2LTE4ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogYXJpYS1tb2RhbCBub2RlcyB3cmFwcGVkIGluIGFyaWEtaGlkZGVuIGFy
ZSBub3QgaG9ub3JlZA0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMjg0OQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0MDQ3MDE5Pg0KKw0KKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvYXJpYS1oaWRkZW4tbmVnYXRlcy1uby12aXNpYmlsaXR5LWV4cGVjdGVkLnR4dDoNCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1uZWdhdGVzLW5vLXZpc2liaWxpdHku
aHRtbDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLW1vZGFsLWluLWFyaWEtaGlkZGVu
LWV4cGVjdGVkLnR4dDogQWRkZWQuDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1tb2Rh
bC1pbi1hcmlhLWhpZGRlbi5odG1sOiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9h
cmlhLW1vZGFsLmh0bWw6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbW9kYWwt
YXV0by1mb2N1cy5odG1sOg0KKw0KIDIwMjAtMDYtMTggIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBp
bm9AaWdhbGlhLmNvbT4NCiANCiAgICAgICAgIFtHVEtdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5p
bmcuIFVwZGF0ZSBzdGF0dXMgb2YgZmxha3kgdGltZW91dCBmYWlsdXJlcyBhZnRlciByMjYzMjA2
Lg0KQEAgLTI3MTUsNiArMjczMCw4IEBADQogICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zOg0KICAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9uczoNCiAN
Cis9PT09PT09DQorPj4+Pj4+PiBTdGFzaGVkIGNoYW5nZXMNCiAyMDIwLTA2LTA0ICBBbnRvaW5l
IFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPg0KIA0KICAgICAgICAgWyBpT1Mgd2syIF0gYW5p
bWF0aW9ucy9wbGF5LXN0YXRlLXBhdXNlZC5odG1sIGlzIGZsYWt5IGZhaWxpbmcuDQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1uZWdhdGVzLW5vLXZp
c2liaWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWhp
ZGRlbi1uZWdhdGVzLW5vLXZpc2liaWxpdHktZXhwZWN0ZWQudHh0DQppbmRleCBiYjVlY2ZiMDIz
Zi4uY2FkMjQzYTAyYjAgMTAwNjQ0DQotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Fy
aWEtaGlkZGVuLW5lZ2F0ZXMtbm8tdmlzaWJpbGl0eS1leHBlY3RlZC50eHQNCisrKyBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tbmVnYXRlcy1uby12aXNpYmlsaXR5LWV4
cGVjdGVkLnR4dA0KQEAgLTIsNyArMiw2IEBAIGhlYWRpbmcxLjINCiANCiANCiANCi0NCiBUaGlz
IHRlc3RzIGVuc3VyZXMgdGhhdCBhcmlhLWhpZGRlbj1mYWxzZSB3aWxsIGFsbG93IGEgbm9kZSB0
byBiZSBpbiB0aGUgQVggaGllcmFyY2h5IGV2ZW4gaWYgaXQncyBub3QgcmVuZGVyZWQgb3Igdmlz
aWJsZQ0KIA0KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4NCkBAIC0xOCw3ICsxNyw3IEBAIFBB
U1MgcGFyZW50LmNoaWxkQXRJbmRleCgxKS5pc0VxdWFsKGhlYWRpbmczKSBpcyB0cnVlDQogUEFT
UyBoZWFkaW5nNC5yb2xlIGlzICdBWFJvbGU6IEFYSGVhZGluZycNCiBQQVNTIHBhcmVudC5jaGls
ZEF0SW5kZXgoMikuaXNFcXVhbChoZWFkaW5nNCkgaXMgdHJ1ZQ0KIFRleHRmaWVsZCBUaXRsZTog
QVhUaXRsZTogDQotUEFTUyB2aWRlby5jaGlsZHJlbkNvdW50IGlzIDANCitQQVNTICF2aWRlbyB8
fCB2aWRlby5jaGlsZHJlbkNvdW50ID09IDAgaXMgdHJ1ZQ0KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUNCiANCiBURVNUIENPTVBMRVRFDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1uZWdhdGVzLW5vLXZpc2liaWxpdHkuaHRtbCBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tbmVnYXRlcy1uby12aXNpYmlsaXR5
Lmh0bWwNCmluZGV4IDQ3NGI2MDlmZGM4Li40MGIzZjc0ZWY4MSAxMDA2NDQNCi0tLSBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tbmVnYXRlcy1uby12aXNpYmlsaXR5Lmh0
bWwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tbmVnYXRlcy1u
by12aXNpYmlsaXR5Lmh0bWwNCkBAIC0xNiwxMSArMTYsMTMgQEANCiA8ZGl2IGhpZGRlbiBhcmlh
LWhpZGRlbj0iZmFsc2UiIGlkPSJoaWRkZW5EaXYiPkhpZGRlblRleHQxPC9kaXY+DQogPGlucHV0
IHR5cGU9InRleHQiIGFyaWEtbGFiZWxsZWRieT0iaGlkZGVuRGl2IiBpZD0idGV4dEZpZWxkV2l0
aEhpZGRlbkxhYmVsbGVyIj4NCiANCis8ZGl2Pg0KIDxkaXYgYXJpYS1oaWRkZW49ImZhbHNlIj4N
Ci08dmlkZW8gaWQ9InZpZGVvIj4NCis8dmlkZW8gaGlkZGVuIGlkPSJ2aWRlbyI+DQogSGlkZGVu
IGNvbnRlbnQNCiA8L3ZpZGVvPg0KIDwvZGl2Pg0KKzwvZGl2Pg0KIA0KIDxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPg0KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pg0KQEAgLTYzLDcgKzY1LDcgQEAg
SGlkZGVuIGNvbnRlbnQNCiAgICAgICAgIA0KICAgICAgICAgLy8gYXJpYS1oaWRkZW49ImZhbHNl
IiBuZWVkIHRvIGJlIG9uIGVhY2ggcGFyZW50LCBpbmNsdWRpbmcgcmVuZGVyZWQgcGFyZW50cy4N
CiAgICAgICAgIHZhciB2aWRlbyA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVF
bGVtZW50QnlJZCgidmlkZW8iKTsNCi0gICAgICAgIHNob3VsZEJlKCJ2aWRlby5jaGlsZHJlbkNv
dW50IiwgIjAiKTsNCisgICAgICAgIHNob3VsZEJlVHJ1ZSgiIXZpZGVvIHx8IHZpZGVvLmNoaWxk
cmVuQ291bnQgPT0gMCIpOw0KICAgICB9DQogDQogPC9zY3JpcHQ+DQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLW1vZGFsLWluLWFyaWEtaGlkZGVuLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1tb2RhbC1pbi1hcmlhLWhpZGRl
bi1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4u
ZmJhYzJlNjU0MDINCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvYXJpYS1tb2RhbC1pbi1hcmlhLWhpZGRlbi1leHBlY3RlZC50eHQNCkBAIC0wLDAgKzEsMTQg
QEANCitUaGlzIHRlc3RzIHRoYXQgd2hlbiBzb21ldGhpbmcgaXMgYXJpYS1tb2RhbCBpbnNpZGUg
YW4gYXJpYS1oaWRkZW4gaXQgaXMgaWdub3JlZC4NCisNCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuDQorDQorDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoJ2JnQ29udGVudCcpLmlzSWdub3JlZCBpcyBmYWxzZQ0KK1BBU1MgYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdiZ0NvbnRlbnQnKSBpcyBudWxsDQor
UEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2JnQ29u
dGVudCcpLmlzSWdub3JlZCBpcyBmYWxzZQ0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUNCisNCitURVNUIENPTVBMRVRFDQorT3RoZXIgcGFnZSBjb250ZW50IHdpdGggYSBkdW1teSBm
b2N1c2FibGUgZWxlbWVudA0KKw0KK0p1c3QgYW4gZXhhbXBsZS4NCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbW9kYWwtaW4tYXJpYS1oaWRkZW4uaHRtbCBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1tb2RhbC1pbi1hcmlhLWhpZGRlbi5odG1sDQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjExMDg5MmY1YzFmDQotLS0g
L2Rldi9udWxsDQorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbW9kYWwtaW4t
YXJpYS1oaWRkZW4uaHRtbA0KQEAgLTAsMCArMSw0NSBAQA0KKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4NCis8aHRtbD4NCis8aGVhZD4NCis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4NCis8L2hlYWQ+DQorDQor
PGJvZHkgaWQ9ImJvZHkiPg0KKw0KKzxkaXYgaWQ9ImJnIj4NCis8cCBpZD0iYmdDb250ZW50Ij5P
dGhlciBwYWdlIGNvbnRlbnQgd2l0aCA8YSBocmVmPSIjIj5hIGR1bW15IGZvY3VzYWJsZSBlbGVt
ZW50PC9hPjwvcD4NCis8L2Rpdj4NCisNCis8ZGl2IGlkPSJjb250YWluZXIiPg0KKyAgICA8ZGl2
IHJvbGU9ImRpYWxvZyIgYXJpYS1tb2RhbD0iZmFsc2UiIGlkPSJib3giPg0KKyAgICAgICAgPGgz
IGlkPSJteURpYWxvZyI+SnVzdCBhbiBleGFtcGxlLjwvaDM+DQorICAgIDwvZGl2Pg0KKzwvZGl2
Pg0KKw0KKw0KKzxzY3JpcHQ+DQorDQorICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQg
d2hlbiBzb21ldGhpbmcgaXMgYXJpYS1tb2RhbCBpbnNpZGUgYW4gYXJpYS1oaWRkZW4gaXQgaXMg
aWdub3JlZC4iKTsNCisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOw0KKw0KKyAgICBp
ZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7DQorICAgICAgICBzaG91bGRCZUZh
bHNlKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2JnQ29u
dGVudCcpLmlzSWdub3JlZCIpOw0KKyAgICAgICAgDQorICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYm94Iikuc2V0QXR0cmlidXRlKCJhcmlhLW1vZGFsIiwgInRydWUiKTsNCisNCisg
ICAgICAgIHNob3VsZEJlTnVsbCgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKCdiZ0NvbnRlbnQnKSIpOw0KKw0KKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnRhaW5lciIpLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCAidHJ1ZSIpOw0K
Kw0KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsNCisgICAgICAgICAgICBzaG91bGRC
ZUZhbHNlKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2Jn
Q29udGVudCcpLmlzSWdub3JlZCIpOw0KKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOw0KKyAg
ICAgICAgfSwgMCk7DQorICAgIH0gICAgDQorDQorPC9zY3JpcHQ+DQorDQorDQorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8
L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLW1vZGFs
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbW9kYWwuaHRtbA0KaW5kZXgg
YzBhNGI2N2FhNGIuLjc4N2U1ZTFlOGUxIDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9hcmlhLW1vZGFsLmh0bWwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
YXJpYS1tb2RhbC5odG1sDQpAQCAtMjEsNyArMjEsNyBAQA0KIDxzY3JpcHQ+DQogDQogICAgIGRl
c2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgYXJpYS1tb2RhbCBvbiBkaWFsb2cgbWFrZXMgb3Ro
ZXIgZWxlbWVudHMgaW5lcnQuIik7DQotDQorICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOw0KICAg
ICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7DQogICAgICAgICAvLyBCYWNr
Z3JvdW5kIHNob3VsZCBiZSB1bmFjY2Vzc2libGUgYWZ0ZXIgbG9hZGluZywgc2luY2UgdGhlIA0K
ICAgICAgICAgLy8gZGlhbG9nIGlzIGRpc3BsYXllZCBhbmQgYXJpYS1tb2RhbD10cnVlLg0KQEAg
LTQ3LDEyICs0NywxNSBAQA0KICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveCIp
LnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCAidHJ1ZSIpOw0KICAgICAgICAgc2hvdWxkQmVU
cnVlKCJiYWNrZ3JvdW5kQWNjZXNzaWJsZSgpIik7DQogICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYm94Iikuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsICJmYWxzZSIpOw0KLSAg
ICAgICAgc2hvdWxkQmVGYWxzZSgiYmFja2dyb3VuZEFjY2Vzc2libGUoKSIpOw0KKyAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsNCisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJiYWNr
Z3JvdW5kQWNjZXNzaWJsZSgpIik7DQogICAgICAgICANCi0gICAgICAgIC8vIFRlc3QgbW9kYWwg
ZGlhbG9nIGlzIHJlbW92ZWQgZnJvbSBET00gdHJlZS4NCi0gICAgICAgIHZhciBkaWFsb2cgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94Iik7DQotICAgICAgICBkaWFsb2cucGFyZW50Tm9k
ZS5yZW1vdmVDaGlsZChkaWFsb2cpOw0KLSAgICAgICAgc2hvdWxkQmVUcnVlKCJiYWNrZ3JvdW5k
QWNjZXNzaWJsZSgpIik7DQorICAgICAgICAgICAgLy8gVGVzdCBtb2RhbCBkaWFsb2cgaXMgcmVt
b3ZlZCBmcm9tIERPTSB0cmVlLg0KKyAgICAgICAgICAgIHZhciBkaWFsb2cgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYm94Iik7DQorICAgICAgICAgICAgZGlhbG9nLnBhcmVudE5vZGUucmVt
b3ZlQ2hpbGQoZGlhbG9nKTsNCisgICAgICAgICAgICBzaG91bGRCZVRydWUoImJhY2tncm91bmRB
Y2Nlc3NpYmxlKCkiKTsNCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsNCisgICAgICAgICB9
LCAwKTsNCiAgICAgfQ0KICAgICANCiAgICAgZnVuY3Rpb24gYmFja2dyb3VuZEFjY2Vzc2libGUo
KSB7DQpAQCAtODIsNCArODUsNCBAQA0KIA0KIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4NCiA8L2JvZHk+DQotPC9odG1sPg0KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlDQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2FyaWEtbW9kYWwtYXV0by1mb2N1cy5odG1sIGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvYXJpYS1tb2RhbC1hdXRvLWZvY3VzLmh0bWwNCmluZGV4IDE2YzI2NTQ5
YWM3Li41ZTI2ZjU1MGNiZiAxMDA2NDQNCi0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL2FyaWEtbW9kYWwtYXV0by1mb2N1cy5odG1sDQorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L21hYy9hcmlhLW1vZGFsLWF1dG8tZm9jdXMuaHRtbA0KQEAgLTQ5LDE0ICs0OSwxNyBA
QA0KICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgibmV3QnRuLmlzRm9jdXNlZCIpOw0KICAgICAg
ICAgICAgIA0KICAgICAgICAgICAgIC8vIDIuIENsaWNrIHRoZSBuZXcgYnV0dG9uLCBkaWFsb2cy
IHNob3dzIGFuZCBmb2N1cyBzaG91bGQgbW92ZSB0byB0aGUgY2xvc2UgYnV0dG9uLg0KKyAgICAg
ICAgICAgIC8vIFNldCBhcmlhLW1vZGFsIHRvIGZhbHNlIG9uIHRoZSBwcmV2aW91cyBtb2RhbCBv
YmplY3QgKHdlIHNob3VsZG4ndCBoYXZlIHR3byBtb2RhbHMgaW4gcGxheSkuDQogICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5ldyIpLmNsaWNrKCk7DQorICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveCIpLmFyaWFNb2RhbCA9IGZhbHNlOw0KICAgICAg
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgICAgICAgICAgIGNsb3NlQnRu
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjbG9zZSIp
Ow0KICAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoImNsb3NlQnRuLmlzRm9jdXNlZCIpOw0K
ICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAvLyAzLiBDbGljayB0aGUgY2xv
c2UgYnV0dG9uLCBkaWFsb2cyIGNsb3NlcyBhbmQgZm9jdXMgc2hvdWxkIGdvIGJhY2sgdG8gdGhl
DQotICAgICAgICAgICAgICAgIC8vIGZpcnN0IGZvY3VzYWJsZSBjaGlsZCBvZiBkaWFsb2cxLg0K
KyAgICAgICAgICAgICAgICAvLyBmaXJzdCBmb2N1c2FibGUgY2hpbGQgb2YgZGlhbG9nMSwgd2hp
Y2ggd2Ugbm93IG5lZWQgdG8gYWRkIGFyaWEtbW9kYWwgYmFjayB0by4NCiAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsb3NlIikuY2xpY2soKTsNCisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveCIpLmFyaWFNb2RhbCA9IHRydWU7DQog
ICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsNCiAgICAgICAgICAgICAgICAg
ICAgIG9rQnRuID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlk
KCJvayIpOw0KICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJva0J0bi5pc0ZvY3Vz
ZWQiKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cNCmluZGV4IDg4ODQxZGI5MjYxLi5lOTc0NTk0MzI4MSAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nDQpAQCAtMSwzICsxLDQ0IEBADQorMjAyMC0wNi0xOCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxl
aXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IGFyaWEtbW9kYWwgbm9kZXMgd3JhcHBl
ZCBpbiBhcmlhLWhpZGRlbiBhcmUgbm90IGhvbm9yZWQNCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI4NDkNCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDA0NzAxOT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0K
KyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9hcmlhLW1vZGFsLWluLWFyaWEtaGlkZGVuLmh0
bWwNCisNCisgICAgICAgIElmIGFyaWEtbW9kYWwgd2FzIHdyYXBwZWQgaW5zaWRlIGFyaWEtaGlk
ZGVuLCB3ZSB3ZXJlIHN0aWxsIHByb2Nlc3NpbmcgdGhhdCBhcyB0aGUgbW9kYWwgbm9kZS4NCisg
ICAgICAgIEZpeGluZyB0aGF0IHVuY292ZXJlZCBhIGhvc3Qgb2YgdmVyeSBmaW5pY2t5IGlzc3Vl
cyByZWxhdGVkIHRvIGFyaWEtbW9kYWwuDQorICAgICAgICAxLiBXZSB3ZXJlIHByb2Nlc3Npbmcg
bW9kYWwgc3RhdHVzIGltbWVkaWF0ZWx5IGluc3RlYWQgb2YgYWZ0ZXIgYSBkZWxheSwgc28gdmlz
aWJpbGl0eSByZXF1aXJlbWVudHMgd2VyZSBub3QgY29ycmVjdC4NCisgICAgICAgIDIuIEluIGhh
bmRsZU1vZGFsQ2hhbmdlOiBXZSB3ZXJlIHByb2Nlc3NpbmcgbXVsdGlwbGUgbW9kYWwgbm9kZXMg
cGVyaGFwcyBpbmNvcnJlY3RseSAodGhlIHNwZWMgZG9lc24ndCBhY2NvdW50IGZvciBtdWx0aXBs
ZSBtb2RhbCBub2RlcykuIA0KKyAgICAgICAgICAgICAtIGhhZCB0byB1cGRhdGUgYSB0ZXN0IHRv
IHR1cm4gb2ZmIG1vZGFsIHN0YXR1cyBiZWZvcmUgYWRkaW5nIGEgbmV3IG1vZGFsIG5vZGUNCisg
ICAgICAgIDMuIENoYW5nZWQgdGhlIG1vZGFsIG5vZGUgdG8gYSBXZWFrUHRyDQorICAgICAgICA0
LiBJbiBpc05vZGVBcmlhVmlzaWJsZTogV2Ugc3RvcHBlZCBwcm9jZXNzaW5nIGZvciB2aXNpYmls
ZSB3aXRoIGFyaWEtaGlkZGVuIGFzIHNvb24gYXMgd2UgaGl0IGEgcmVuZGVyYWJsZSBibG9jaywg
YnV0IHRoYXQgbWVhbnMgaXQgd29uJ3QgYWNjb3VudA0KKyAgICAgICAgICAgZm9yIG5vZGVzIGhp
Z2hlciBpbiB0aGUgdHJlZSB3aXRoIGFyaWEtaGlkZGVuLg0KKyAgICAgICAgNS4gSW4gaGFuZGxl
QXR0cmlidXRlQ2hhbmdlOiBpZiBhcmlhLWhpZGRlbiBjaGFuZ2VzLCB3ZSBzaG91bGQgdXBkYXRl
IG1vZGFsIHN0YXR1cyBpZiBuZWVkZWQuDQorICAgICAgICA2LiBJbiBmb2N1c01vZGFsTm9kZVRp
bWVyRmlyZWQ6IHdlIG5lZWQgdG8gdmVyaWZ5IHRoZSBlbGVtZW50IGlzIHN0aWxsIGxpdmUsIG90
aGVyd2lzZSBpdCBjYW4gbGVhZCB0byBhIGNyYXNoLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OkFYT2JqZWN0Q2FjaGUpOg0KKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmZpbmRN
b2RhbE5vZGVzKToNCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpjdXJyZW50TW9k
YWxOb2RlKToNCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjptb2RhbE5vZGUpOg0K
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJlbW92ZSk6DQorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6ZGVmZXJNb2RhbENoYW5nZSk6DQorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6Zm9jdXNNb2RhbE5vZGVUaW1lckZpcmVkKToNCisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UpOg0KKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1vZGFsQ2hhbmdlKToNCisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwcmVwYXJlRm9yRG9jdW1lbnREZXN0cnVjdGlvbik6DQor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVVcGRh
dGUpOg0KKyAgICAgICAgKFdlYkNvcmU6OmlzTm9kZUFyaWFWaXNpYmxlKToNCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6aGFuZGxlTW9kYWxDaGFuZ2UpOg0KKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OmRlZmVyTW9kYWxDaGFuZ2UpOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmZpcnN0Q2hpbGQgY29uc3QpOg0KKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Omxhc3RDaGlsZCBjb25zdCk6DQorDQogMjAyMC0wNi0x
OCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgW0lQQyBo
YXJkZW5pbmddIE9wdGlvblNldDw+IHZhbHVlcyBzaG91bGQgYmUgdmFsaWRhdGVkDQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHANCmluZGV4IDhkNzJl
NzZkYzYwLi44OWViNDcwMmUzZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHANCkBAIC0yMTksNyArMjE5LDcgQEAgQVhPYmplY3RDYWNoZTo6
QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQpDQogICAgICwgbV9wYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyRmlyZWQpDQogICAgICwgbV9saXZlUmVnaW9uQ2hhbmdlZFBvc3RUaW1lcigq
dGhpcywgJkFYT2JqZWN0Q2FjaGU6OmxpdmVSZWdpb25DaGFuZ2VkTm90aWZpY2F0aW9uUG9zdFRp
bWVyRmlyZWQpDQogICAgICwgbV9mb2N1c01vZGFsTm9kZVRpbWVyKCp0aGlzLCAmQVhPYmplY3RD
YWNoZTo6Zm9jdXNNb2RhbE5vZGVUaW1lckZpcmVkKQ0KLSAgICAsIG1fY3VycmVudE1vZGFsTm9k
ZShudWxscHRyKQ0KKyAgICAsIG1fY3VycmVudE1vZGFsRWxlbWVudChudWxscHRyKQ0KICAgICAs
IG1fcGVyZm9ybUNhY2hlVXBkYXRlVGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpwZXJmb3Jt
Q2FjaGVVcGRhdGVUaW1lckZpcmVkKQ0KIHsNCiB9DQpAQCAtMjUwLDM5ICsyNTAsMzkgQEAgdm9p
ZCBBWE9iamVjdENhY2hlOjpmaW5kTW9kYWxOb2RlcygpDQogICAgICAgICBpZiAoIWVxdWFsTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVsZW1lbnQtPmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6
YXRpb24oYXJpYV9tb2RhbEF0dHIpLCAidHJ1ZSIpKQ0KICAgICAgICAgICAgIGNvbnRpbnVlOw0K
IA0KLSAgICAgICAgbV9tb2RhbE5vZGVzU2V0LmFkZChlbGVtZW50KTsNCisgICAgICAgIG1fbW9k
YWxFbGVtZW50c1NldC5hZGQoZWxlbWVudCk7DQogICAgIH0NCiANCiAgICAgbV9tb2RhbE5vZGVz
SW5pdGlhbGl6ZWQgPSB0cnVlOw0KIH0NCiANCi1Ob2RlKiBBWE9iamVjdENhY2hlOjpjdXJyZW50
TW9kYWxOb2RlKCkNCitFbGVtZW50KiBBWE9iamVjdENhY2hlOjpjdXJyZW50TW9kYWxOb2RlKCkN
CiB7DQogICAgIC8vIFRoZXJlIG1pZ2h0IGJlIG11bHRpcGxlIG5vZGVzIHdpdGggYXJpYS1tb2Rh
bD10cnVlIHNldC4NCiAgICAgLy8gV2UgdXNlIHRoaXMgZnVuY3Rpb24gdG8gcGljayB0aGUgb25l
IHdlIHdhbnQuDQotICAgIG1fY3VycmVudE1vZGFsTm9kZSA9IG51bGxwdHI7DQotICAgIGlmICht
X21vZGFsTm9kZXNTZXQuaXNFbXB0eSgpKQ0KKyAgICBtX2N1cnJlbnRNb2RhbEVsZW1lbnQgPSBu
dWxscHRyOw0KKyAgICBpZiAobV9tb2RhbEVsZW1lbnRzU2V0LmlzRW1wdHkoKSkNCiAgICAgICAg
IHJldHVybiBudWxscHRyOw0KIA0KICAgICAvLyBJZiBhbnkgb2YgdGhlIG1vZGFsIG5vZGVzIGNv
bnRhaW5zIHRoZSBrZXlib2FyZCBmb2N1cywgd2Ugd2FudCB0byBwaWNrIHRoYXQgb25lLg0KICAg
ICAvLyBJZiBub3QsIHdlIHdhbnQgdG8gcGljayB0aGUgbGFzdCB2aXNpYmxlIGRpYWxvZyBpbiB0
aGUgRE9NLg0KICAgICBSZWZQdHI8RWxlbWVudD4gZm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudCgp
LmZvY3VzZWRFbGVtZW50KCk7DQotICAgIFJlZlB0cjxOb2RlPiBsYXN0VmlzaWJsZTsNCi0gICAg
Zm9yIChhdXRvJiBub2RlIDogbV9tb2RhbE5vZGVzU2V0KSB7DQotICAgICAgICBpZiAoaXNOb2Rl
VmlzaWJsZShub2RlKSkgew0KLSAgICAgICAgICAgIGlmIChmb2N1c2VkRWxlbWVudCAmJiBmb2N1
c2VkRWxlbWVudC0+aXNEZXNjZW5kYW50T2Yobm9kZSkpIHsNCi0gICAgICAgICAgICAgICAgbV9j
dXJyZW50TW9kYWxOb2RlID0gbm9kZTsNCisgICAgUmVmUHRyPEVsZW1lbnQ+IGxhc3RWaXNpYmxl
Ow0KKyAgICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBtX21vZGFsRWxlbWVudHNTZXQpIHsNCisgICAg
ICAgIGlmIChpc05vZGVWaXNpYmxlKGVsZW1lbnQpKSB7DQorICAgICAgICAgICAgaWYgKGZvY3Vz
ZWRFbGVtZW50ICYmIGZvY3VzZWRFbGVtZW50LT5pc0Rlc2NlbmRhbnRPZihlbGVtZW50KSkgew0K
KyAgICAgICAgICAgICAgICBtX2N1cnJlbnRNb2RhbEVsZW1lbnQgPSBtYWtlV2Vha1B0cihlbGVt
ZW50KTsNCiAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgfQ0KIA0KLSAgICAg
ICAgICAgIGxhc3RWaXNpYmxlID0gbm9kZTsNCisgICAgICAgICAgICBsYXN0VmlzaWJsZSA9IGVs
ZW1lbnQ7DQogICAgICAgICB9DQogICAgIH0NCiANCi0gICAgaWYgKCFtX2N1cnJlbnRNb2RhbE5v
ZGUpDQotICAgICAgICBtX2N1cnJlbnRNb2RhbE5vZGUgPSBsYXN0VmlzaWJsZS5nZXQoKTsNCisg
ICAgaWYgKCFtX2N1cnJlbnRNb2RhbEVsZW1lbnQpDQorICAgICAgICBtX2N1cnJlbnRNb2RhbEVs
ZW1lbnQgPSBtYWtlV2Vha1B0cihsYXN0VmlzaWJsZS5nZXQoKSk7DQogDQotICAgIHJldHVybiBt
X2N1cnJlbnRNb2RhbE5vZGU7DQorICAgIHJldHVybiBtX2N1cnJlbnRNb2RhbEVsZW1lbnQuZ2V0
KCk7DQogfQ0KIA0KIGJvb2wgQVhPYmplY3RDYWNoZTo6aXNOb2RlVmlzaWJsZShOb2RlKiBub2Rl
KSBjb25zdA0KQEAgLTMwNCwyMyArMzA0LDIxIEBAIGJvb2wgQVhPYmplY3RDYWNoZTo6aXNOb2Rl
VmlzaWJsZShOb2RlKiBub2RlKSBjb25zdA0KICAgICByZXR1cm4gdHJ1ZTsNCiB9DQogDQorLy8g
VGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSB2YWxpZCBhcmlhIG1vZGFsIG5vZGUuDQogTm9kZSog
QVhPYmplY3RDYWNoZTo6bW9kYWxOb2RlKCkNCiB7DQotICAgIC8vIFRoaXMgZnVuY3Rpb24gcmV0
dXJucyB0aGUgdmFsaWQgYXJpYSBtb2RhbCBub2RlLg0KLSAgICBpZiAoIW1fbW9kYWxOb2Rlc0lu
aXRpYWxpemVkKSB7DQorICAgIGlmICghbV9tb2RhbE5vZGVzSW5pdGlhbGl6ZWQpDQogICAgICAg
ICBmaW5kTW9kYWxOb2RlcygpOw0KLSAgICAgICAgcmV0dXJuIGN1cnJlbnRNb2RhbE5vZGUoKTsN
Ci0gICAgfQ0KIA0KLSAgICBpZiAobV9tb2RhbE5vZGVzU2V0LmlzRW1wdHkoKSkNCisgICAgaWYg
KG1fbW9kYWxFbGVtZW50c1NldC5pc0VtcHR5KCkpDQogICAgICAgICByZXR1cm4gbnVsbHB0cjsN
CiANCiAgICAgLy8gQ2hlY2sgdGhlIGNhY2hlZCBjdXJyZW50IHZhbGlkIGFyaWEgbW9kYWwgbm9k
ZSBmaXJzdC4NCiAgICAgLy8gVXN1YWxseSB3aGVuIG9uZSBkaWFsb2cgc2V0cyBhcmlhLW1vZGFs
PXRydWUsIHRoYXQgZGlhbG9nIGlzIHRoZSBvbmUgd2Ugd2FudC4NCi0gICAgaWYgKGlzTm9kZVZp
c2libGUobV9jdXJyZW50TW9kYWxOb2RlKSkNCi0gICAgICAgIHJldHVybiBtX2N1cnJlbnRNb2Rh
bE5vZGU7DQorICAgIGlmIChpc05vZGVWaXNpYmxlKG1fY3VycmVudE1vZGFsRWxlbWVudC5nZXQo
KSkpDQorICAgICAgICByZXR1cm4gbV9jdXJyZW50TW9kYWxFbGVtZW50LmdldCgpOw0KIA0KLSAg
ICAvLyBSZWNvbXB1dGUgdGhlIHZhbGlkIGFyaWEgbW9kYWwgbm9kZSB3aGVuIG1fY3VycmVudE1v
ZGFsTm9kZSBpcyBudWxsIG9yIGhpZGRlbi4NCisgICAgLy8gUmVjb21wdXRlIHRoZSB2YWxpZCBh
cmlhIG1vZGFsIG5vZGUgd2hlbiBtX2N1cnJlbnRNb2RhbEVsZW1lbnQgaXMgbnVsbCBvciBoaWRk
ZW4uDQogICAgIHJldHVybiBjdXJyZW50TW9kYWxOb2RlKCk7DQogfQ0KIA0KQEAgLTg2OSw2ICs4
NjcsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShOb2RlJiBub2RlKQ0KICAgICBpZiAo
aXM8RWxlbWVudD4obm9kZSkpIHsNCiAgICAgICAgIG1fZGVmZXJyZWRUZXh0Rm9ybUNvbnRyb2xW
YWx1ZS5yZW1vdmUoZG93bmNhc3Q8RWxlbWVudD4oJm5vZGUpKTsNCiAgICAgICAgIG1fZGVmZXJy
ZWRBdHRyaWJ1dGVDaGFuZ2UucmVtb3ZlKGRvd25jYXN0PEVsZW1lbnQ+KCZub2RlKSk7DQorICAg
ICAgICBtX21vZGFsRWxlbWVudHNTZXQucmVtb3ZlKGRvd25jYXN0PEVsZW1lbnQ+KCZub2RlKSk7
DQogICAgIH0NCiAgICAgbV9kZWZlcnJlZENoaWxkcmVuQ2hhbmdlZE5vZGVMaXN0LnJlbW92ZSgm
bm9kZSk7DQogICAgIG1fZGVmZXJyZWRUZXh0Q2hhbmdlZExpc3QucmVtb3ZlKCZub2RlKTsNCkBA
IC04ODUsMTEgKzg4NCw2IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVtb3ZlKE5vZGUmIG5vZGUp
DQogICAgIHJlbW92ZU5vZGVGb3JVc2Uobm9kZSk7DQogDQogICAgIHJlbW92ZShtX25vZGVPYmpl
Y3RNYXBwaW5nLnRha2UoJm5vZGUpKTsNCi0NCi0gICAgaWYgKG1fY3VycmVudE1vZGFsTm9kZSA9
PSAmbm9kZSkNCi0gICAgICAgIG1fY3VycmVudE1vZGFsTm9kZSA9IG51bGxwdHI7DQotICAgIG1f
bW9kYWxOb2Rlc1NldC5yZW1vdmUoJm5vZGUpOw0KLQ0KICAgICByZW1vdmUobm9kZS5yZW5kZXJl
cigpKTsNCiB9DQogDQpAQCAtMTE4Miw2ICsxMTc2LDEzIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
ZGVmZXJGb2N1c2VkVUlFbGVtZW50Q2hhbmdlSWZOZWVkZWQoTm9kZSogb2xkTm9kZSwgTm9kZSog
bmV3DQogICAgIH0gZWxzZQ0KICAgICAgICAgaGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQo
b2xkTm9kZSwgbmV3Tm9kZSk7DQogfQ0KKw0KK3ZvaWQgQVhPYmplY3RDYWNoZTo6ZGVmZXJNb2Rh
bENoYW5nZShFbGVtZW50KiBlbGVtZW50KQ0KK3sNCisgICAgbV9kZWZlcnJlZE1vZGFsQ2hhbmdl
ZExpc3QuYWRkKGVsZW1lbnQpOw0KKyAgICBpZiAoIW1fcGVyZm9ybUNhY2hlVXBkYXRlVGltZXIu
aXNBY3RpdmUoKSkNCisgICAgICAgIG1fcGVyZm9ybUNhY2hlVXBkYXRlVGltZXIuc3RhcnRPbmVT
aG90KDBfcyk7DQorfQ0KICAgICANCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZvY3VzZWRV
SUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZE5vZGUsIE5vZGUqIG5ld05vZGUpDQogew0KQEAgLTE1
ODAsMTUgKzE1ODEsMTkgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpmb2N1c01vZGFsTm9kZSgpDQog
DQogdm9pZCBBWE9iamVjdENhY2hlOjpmb2N1c01vZGFsTm9kZVRpbWVyRmlyZWQoKQ0KIHsNCi0g
ICAgaWYgKCFtX2N1cnJlbnRNb2RhbE5vZGUpDQorICAgIGlmICghbV9kb2N1bWVudC5oYXNMaXZp
bmdSZW5kZXJUcmVlKCkpDQorICAgICAgICByZXR1cm47DQorDQorICAgIFJlZjxEb2N1bWVudD4g
cHJvdGVjdG9yRm9yQ2FjaGVPd25lcihtX2RvY3VtZW50KTsNCisgICAgaWYgKCFub2RlQW5kUmVu
ZGVyZXJBcmVWYWxpZChtX2N1cnJlbnRNb2RhbEVsZW1lbnQuZ2V0KCkpIHx8ICFpc05vZGVWaXNp
YmxlKG1fY3VycmVudE1vZGFsRWxlbWVudC5nZXQoKSkpDQogICAgICAgICByZXR1cm47DQogICAg
IA0KICAgICAvLyBEb24ndCBzZXQgZm9jdXMgaWYgd2UgYXJlIGFscmVhZHkgZm9jdXNpbmcgb250
byBzb21lIGVsZW1lbnQgd2l0aGluDQogICAgIC8vIHRoZSBkaWFsb2cuDQotICAgIGlmIChtX2N1
cnJlbnRNb2RhbE5vZGUtPmNvbnRhaW5zKGRvY3VtZW50KCkuZm9jdXNlZEVsZW1lbnQoKSkpDQor
ICAgIGlmIChtX2N1cnJlbnRNb2RhbEVsZW1lbnQtPmNvbnRhaW5zKGRvY3VtZW50KCkuZm9jdXNl
ZEVsZW1lbnQoKSkpDQogICAgICAgICByZXR1cm47DQogICAgIA0KLSAgICBpZiAoQWNjZXNzaWJp
bGl0eU9iamVjdCogY3VycmVudE1vZGFsTm9kZU9iamVjdCA9IGdldE9yQ3JlYXRlKG1fY3VycmVu
dE1vZGFsTm9kZSkpIHsNCisgICAgaWYgKEFjY2Vzc2liaWxpdHlPYmplY3QqIGN1cnJlbnRNb2Rh
bE5vZGVPYmplY3QgPSBnZXRPckNyZWF0ZShtX2N1cnJlbnRNb2RhbEVsZW1lbnQuZ2V0KCkpKSB7
DQogICAgICAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNhYmxlID0gZmlyc3RGb2N1
c2FibGVDaGlsZChjdXJyZW50TW9kYWxOb2RlT2JqZWN0KSkNCiAgICAgICAgICAgICBmb2N1c2Fi
bGUtPnNldEZvY3VzZWQodHJ1ZSk7DQogICAgIH0NCkBAIC0xNjg2LDEyICsxNjkxLDE3IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lLCBFbGVtZW50DQogICAgICAgICBzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChl
bGVtZW50KTsNCiAgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gYXJpYV9leHBhbmRlZEF0dHIpDQog
ICAgICAgICBoYW5kbGVBcmlhRXhwYW5kZWRDaGFuZ2UoZWxlbWVudCk7DQotICAgIGVsc2UgaWYg
KGF0dHJOYW1lID09IGFyaWFfaGlkZGVuQXR0cikNCisgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0g
YXJpYV9oaWRkZW5BdHRyKSB7DQogICAgICAgICBjaGlsZHJlbkNoYW5nZWQoZWxlbWVudC0+cGFy
ZW50Tm9kZSgpLCBlbGVtZW50KTsNCisgICAgICAgIGlmIChtX2N1cnJlbnRNb2RhbEVsZW1lbnQg
JiYgbV9jdXJyZW50TW9kYWxFbGVtZW50LT5pc0Rlc2NlbmRhbnRPZihlbGVtZW50KSkgew0KKyAg
ICAgICAgICAgIG1fbW9kYWxOb2Rlc0luaXRpYWxpemVkID0gZmFsc2U7DQorICAgICAgICAgICAg
ZGVmZXJNb2RhbENoYW5nZShtX2N1cnJlbnRNb2RhbEVsZW1lbnQuZ2V0KCkpOw0KKyAgICAgICAg
fQ0KKyAgICB9DQogICAgIGVsc2UgaWYgKGF0dHJOYW1lID09IGFyaWFfaW52YWxpZEF0dHIpDQog
ICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKGVsZW1lbnQsIEFYT2JqZWN0Q2FjaGU6OkFYSW52YWxp
ZFN0YXR1c0NoYW5nZWQpOw0KICAgICBlbHNlIGlmIChhdHRyTmFtZSA9PSBhcmlhX21vZGFsQXR0
cikNCi0gICAgICAgIGhhbmRsZU1vZGFsQ2hhbmdlKGVsZW1lbnQpOw0KKyAgICAgICAgZGVmZXJN
b2RhbENoYW5nZShlbGVtZW50KTsNCiAgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gYXJpYV9jdXJy
ZW50QXR0cikNCiAgICAgICAgIHBvc3ROb3RpZmljYXRpb24oZWxlbWVudCwgQVhPYmplY3RDYWNo
ZTo6QVhDdXJyZW50Q2hhbmdlZCk7DQogICAgIGVsc2UgaWYgKGF0dHJOYW1lID09IGFyaWFfZGlz
YWJsZWRBdHRyKQ0KQEAgLTE3MDYsMTIgKzE3MTYsOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Omhh
bmRsZUF0dHJpYnV0ZUNoYW5nZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgRWxlbWVu
dA0KICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihlbGVtZW50LCBBWE9iamVjdENhY2hlOjpBWEFy
aWFBdHRyaWJ1dGVDaGFuZ2VkKTsNCiB9DQogDQotdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVN
b2RhbENoYW5nZShOb2RlKiBub2RlKQ0KK3ZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlTW9kYWxD
aGFuZ2UoRWxlbWVudCYgZWxlbWVudCkNCiB7DQotICAgIGlmICghaXM8RWxlbWVudD4obm9kZSkp
DQotICAgICAgICByZXR1cm47DQotDQotICAgIGlmICghbm9kZUhhc1JvbGUobm9kZSwgImRpYWxv
ZyIpICYmICFub2RlSGFzUm9sZShub2RlLCAiYWxlcnRkaWFsb2ciKSkNCisgICAgaWYgKCFub2Rl
SGFzUm9sZSgmZWxlbWVudCwgImRpYWxvZyIpICYmICFub2RlSGFzUm9sZSgmZWxlbWVudCwgImFs
ZXJ0ZGlhbG9nIikpDQogICAgICAgICByZXR1cm47DQogDQogICAgIHN0b3BDYWNoaW5nQ29tcHV0
ZWRPYmplY3RBdHRyaWJ1dGVzKCk7DQpAQCAtMTcxOSwxOCArMTcyNiwxOSBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmhhbmRsZU1vZGFsQ2hhbmdlKE5vZGUqIG5vZGUpDQogICAgIGlmICghbV9tb2Rh
bE5vZGVzSW5pdGlhbGl6ZWQpDQogICAgICAgICBmaW5kTW9kYWxOb2RlcygpOw0KIA0KLSAgICBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUp
LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYXJpYV9tb2RhbEF0dHIpLCAidHJ1ZSIp
KSB7DQotICAgICAgICAvLyBBZGQgdGhlIG5ld2x5IG1vZGlmaWVkIG5vZGUgdG8gdGhlIG1vZGFs
IG5vZGVzIHNldCwgYW5kIHNldCBpdCB0byBiZSB0aGUgY3VycmVudCB2YWxpZCBhcmlhIG1vZGFs
IG5vZGUuDQorICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbGVtZW50LmF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYXJpYV9tb2RhbEF0dHIpLCAidHJ1ZSIpKSB7
DQorICAgICAgICAvLyBBZGQgdGhlIG5ld2x5IG1vZGlmaWVkIG5vZGUgdG8gdGhlIG1vZGFsIG5v
ZGVzIHNldC4NCiAgICAgICAgIC8vIFdlIHdpbGwgcmVjb21wdXRlIHRoZSBjdXJyZW50IHZhbGlk
IGFyaWEgbW9kYWwgbm9kZSBpbiBtb2RhbE5vZGUoKSB3aGVuIHRoaXMgbm9kZSBpcyBub3Qgdmlz
aWJsZS4NCi0gICAgICAgIG1fbW9kYWxOb2Rlc1NldC5hZGQobm9kZSk7DQotICAgICAgICBtX2N1
cnJlbnRNb2RhbE5vZGUgPSBub2RlOw0KKyAgICAgICAgbV9tb2RhbEVsZW1lbnRzU2V0LmFkZCgm
ZWxlbWVudCk7DQogICAgIH0gZWxzZSB7DQotICAgICAgICAvLyBSZW1vdmUgdGhlIG5vZGUgZnJv
bSB0aGUgbW9kYWwgbm9kZXMgc2V0LiBUaGVyZSBtaWdodCBiZSBvdGhlciB2aXNpYmxlIG1vZGFs
IG5vZGVzLCBzbyB3ZSByZWNvbXB1dGUgaGVyZS4NCi0gICAgICAgIG1fbW9kYWxOb2Rlc1NldC5y
ZW1vdmUobm9kZSk7DQotICAgICAgICBjdXJyZW50TW9kYWxOb2RlKCk7DQorICAgICAgICAvLyBS
ZW1vdmUgdGhlIG5vZGUgZnJvbSB0aGUgbW9kYWwgbm9kZXMgc2V0Lg0KKyAgICAgICAgbV9tb2Rh
bEVsZW1lbnRzU2V0LnJlbW92ZSgmZWxlbWVudCk7DQogICAgIH0NCiANCi0gICAgaWYgKG1fY3Vy
cmVudE1vZGFsTm9kZSkNCisgICAgLy8gRmluZCBuZXcgYWN0aXZlIG1vZGFsIG5vZGUuDQorICAg
IGN1cnJlbnRNb2RhbE5vZGUoKTsNCisNCisgICAgaWYgKG1fY3VycmVudE1vZGFsRWxlbWVudCkN
CiAgICAgICAgIGZvY3VzTW9kYWxOb2RlKCk7DQogDQogICAgIHN0YXJ0Q2FjaGluZ0NvbXB1dGVk
T2JqZWN0QXR0cmlidXRlc1VudGlsVHJlZU11dGF0ZXMoKTsNCkBAIC0zMDI5LDEzICszMDM3LDEz
IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cHJlcGFyZUZvckRvY3VtZW50RGVzdHJ1Y3Rpb24oY29u
c3QgRG9jdW1lbnQmIGRvY3VtZW50KQ0KIHsNCiAgICAgSGFzaFNldDxOb2RlKj4gbm9kZXNUb1Jl
bW92ZTsNCiAgICAgZmlsdGVyTGlzdEZvclJlbW92YWwobV90ZXh0TWFya2VyTm9kZXMsIGRvY3Vt
ZW50LCBub2Rlc1RvUmVtb3ZlKTsNCi0gICAgZmlsdGVyTGlzdEZvclJlbW92YWwobV9tb2RhbE5v
ZGVzU2V0LCBkb2N1bWVudCwgbm9kZXNUb1JlbW92ZSk7DQorICAgIGZpbHRlckxpc3RGb3JSZW1v
dmFsKG1fbW9kYWxFbGVtZW50c1NldCwgZG9jdW1lbnQsIG5vZGVzVG9SZW1vdmUpOw0KICAgICBm
aWx0ZXJMaXN0Rm9yUmVtb3ZhbChtX2RlZmVycmVkVGV4dENoYW5nZWRMaXN0LCBkb2N1bWVudCwg
bm9kZXNUb1JlbW92ZSk7DQogICAgIGZpbHRlckxpc3RGb3JSZW1vdmFsKG1fZGVmZXJyZWRDaGls
ZHJlbkNoYW5nZWROb2RlTGlzdCwgZG9jdW1lbnQsIG5vZGVzVG9SZW1vdmUpOw0KICAgICBmaWx0
ZXJNYXBGb3JSZW1vdmFsKG1fZGVmZXJyZWRUZXh0Rm9ybUNvbnRyb2xWYWx1ZSwgZG9jdW1lbnQs
IG5vZGVzVG9SZW1vdmUpOw0KICAgICBmaWx0ZXJNYXBGb3JSZW1vdmFsKG1fZGVmZXJyZWRBdHRy
aWJ1dGVDaGFuZ2UsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsNCiAgICAgZmlsdGVyVmVjdG9y
UGFpckZvclJlbW92YWwobV9kZWZlcnJlZEZvY3VzZWROb2RlQ2hhbmdlLCBkb2N1bWVudCwgbm9k
ZXNUb1JlbW92ZSk7DQotDQorICAgIA0KICAgICBmb3IgKGF1dG8qIG5vZGUgOiBub2Rlc1RvUmVt
b3ZlKQ0KICAgICAgICAgcmVtb3ZlKCpub2RlKTsNCiB9DQpAQCAtMzA3Miw4ICszMDgwLDkgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSgpDQogICAgIH0N
CiAgICAgbV9kZWZlcnJlZENoaWxkcmVuQ2hhbmdlZE5vZGVMaXN0LmNsZWFyKCk7DQogDQotICAg
IGZvciAoYXV0byYgY2hpbGQgOiBtX2RlZmVycmVkQ2hpbGRyZW5DaGFuZ2VkTGlzdCkNCisgICAg
Zm9yIChhdXRvJiBjaGlsZCA6IG1fZGVmZXJyZWRDaGlsZHJlbkNoYW5nZWRMaXN0KSB7DQogICAg
ICAgICBjaGlsZC0+Y2hpbGRyZW5DaGFuZ2VkKCk7DQorICAgIH0NCiAgICAgbV9kZWZlcnJlZENo
aWxkcmVuQ2hhbmdlZExpc3QuY2xlYXIoKTsNCiANCiAgICAgZm9yIChhdXRvKiBub2RlIDogbV9k
ZWZlcnJlZFRleHRDaGFuZ2VkTGlzdCkNCkBAIC0zMTA0LDYgKzMxMTMsMTAgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSgpDQogICAgICAgICBoYW5kbGVG
b2N1c2VkVUlFbGVtZW50Q2hhbmdlZChkZWZlcnJlZEZvY3VzZWRDaGFuZ2VDb250ZXh0LmZpcnN0
LCBkZWZlcnJlZEZvY3VzZWRDaGFuZ2VDb250ZXh0LnNlY29uZCk7DQogICAgIG1fZGVmZXJyZWRG
b2N1c2VkTm9kZUNoYW5nZS5jbGVhcigpOw0KIA0KKyAgICBmb3IgKGF1dG8mIGRlZmVycmVkTW9k
YWxDaGFuZ2VkRWxlbWVudCA6IG1fZGVmZXJyZWRNb2RhbENoYW5nZWRMaXN0KQ0KKyAgICAgICAg
aGFuZGxlTW9kYWxDaGFuZ2UoZGVmZXJyZWRNb2RhbENoYW5nZWRFbGVtZW50KTsNCisgICAgbV9k
ZWZlcnJlZE1vZGFsQ2hhbmdlZExpc3QuY2xlYXIoKTsNCisNCiAgICAgcGxhdGZvcm1QZXJmb3Jt
RGVmZXJyZWRDYWNoZVVwZGF0ZSgpOw0KIH0NCiAgICAgDQpAQCAtMzI5NiwxNSArMzMwOSwxNiBA
QCBib29sIGlzTm9kZUFyaWFWaXNpYmxlKE5vZGUqIG5vZGUpDQogICAgICAgICAgICAgY29uc3Qg
QXRvbVN0cmluZyYgYXJpYUhpZGRlblZhbHVlID0gZG93bmNhc3Q8RWxlbWVudD4oKnRlc3ROb2Rl
KS5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFyaWFfaGlkZGVuQXR0cik7DQogICAg
ICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGFyaWFIaWRkZW5WYWx1
ZSwgInRydWUiKSkNCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KLSAgICAgICAgICAg
IA0KKw0KKyAgICAgICAgICAgIC8vIFdlIHNob3VsZCBicmVhayBlYXJseSB3aGVuIGl0IGdldHMg
dG8gdGhlIGJvZHkuDQorICAgICAgICAgICAgaWYgKHRlc3ROb2RlLT5oYXNUYWdOYW1lKGJvZHlU
YWcpKQ0KKyAgICAgICAgICAgICAgICBicmVhazsNCisNCiAgICAgICAgICAgICBib29sIGFyaWFI
aWRkZW5GYWxzZSA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGFyaWFIaWRkZW5WYWx1
ZSwgImZhbHNlIik7DQogICAgICAgICAgICAgaWYgKCF0ZXN0Tm9kZS0+cmVuZGVyZXIoKSAmJiAh
YXJpYUhpZGRlbkZhbHNlKQ0KICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAg
ICAgICAgaWYgKCFhcmlhSGlkZGVuRmFsc2VQcmVzZW50ICYmIGFyaWFIaWRkZW5GYWxzZSkNCiAg
ICAgICAgICAgICAgICAgYXJpYUhpZGRlbkZhbHNlUHJlc2VudCA9IHRydWU7DQotICAgICAgICAg
ICAgLy8gV2Ugc2hvdWxkIGJyZWFrIGVhcmx5IHdoZW4gaXQgZ2V0cyB0byBhIHJlbmRlcmVkIG9i
amVjdC4NCi0gICAgICAgICAgICBpZiAodGVzdE5vZGUtPnJlbmRlcmVyKCkpDQotICAgICAgICAg
ICAgICAgIGJyZWFrOw0KICAgICAgICAgfQ0KICAgICB9DQogICAgIA0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgNCmluZGV4IDFjZjJkNjg1ZTBjLi5iNDRm
YjExNWNkOSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaA0KQEAgLTE5MCw2ICsxOTAsNyBAQCBwdWJsaWM6DQogICAgIHZvaWQgdXBkYXRlQ2FjaGVB
ZnRlck5vZGVJc0F0dGFjaGVkKE5vZGUqKTsNCiANCiAgICAgdm9pZCBkZWZlckZvY3VzZWRVSUVs
ZW1lbnRDaGFuZ2VJZk5lZWRlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNl
ZE5vZGUpOw0KKyAgICB2b2lkIGRlZmVyTW9kYWxDaGFuZ2UoRWxlbWVudCogZWxlbWVudCk7DQog
ICAgIHZvaWQgaGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKiBhbmNob3JOb2RlKTsN
CiAgICAgdm9pZCBoYW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmlldyopOw0KICAgICANCkBA
IC00NjIsMTAgKzQ2MywxMCBAQCBwcml2YXRlOg0KIA0KICAgICAvLyBhcmlhLW1vZGFsIHJlbGF0
ZWQNCiAgICAgdm9pZCBmaW5kTW9kYWxOb2RlcygpOw0KLSAgICBOb2RlKiBjdXJyZW50TW9kYWxO
b2RlKCk7DQorICAgIEVsZW1lbnQqIGN1cnJlbnRNb2RhbE5vZGUoKTsNCiAgICAgYm9vbCBpc05v
ZGVWaXNpYmxlKE5vZGUqKSBjb25zdDsNCi0gICAgdm9pZCBoYW5kbGVNb2RhbENoYW5nZShOb2Rl
Kik7DQotDQorICAgIHZvaWQgaGFuZGxlTW9kYWxDaGFuZ2UoRWxlbWVudCYpOw0KKyAgICANCiAg
ICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7DQogICAgIGNvbnN0IE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiBtX3BhZ2VJRDsgLy8gY29uc3RhbnQgZm9yIG9iamVjdCdzIGxpZmV0aW1lLg0KICAgICBI
YXNoTWFwPEFYSUQsIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOw0KQEAg
LTQ5MCw4ICs0OTEsMTAgQEAgcHJpdmF0ZToNCiAgICAgTGlzdEhhc2hTZXQ8UmVmUHRyPEFjY2Vz
c2liaWxpdHlPYmplY3Q+PiBtX2xpdmVSZWdpb25PYmplY3RzU2V0Ow0KIA0KICAgICBUaW1lciBt
X2ZvY3VzTW9kYWxOb2RlVGltZXI7DQotICAgIE5vZGUqIG1fY3VycmVudE1vZGFsTm9kZTsNCi0g
ICAgTGlzdEhhc2hTZXQ8Tm9kZSo+IG1fbW9kYWxOb2Rlc1NldDsNCisgICAgV2Vha1B0cjxFbGVt
ZW50PiBtX2N1cnJlbnRNb2RhbEVsZW1lbnQ7DQorICAgIC8vIE11bHRpcGxlIGFyaWEtbW9kYWxz
IGJlaGF2aW9yIGlzIHVuZGVmaW5lZCBieSBzcGVjLiBXZSBrZWVwIHRoZW0gc29ydGVkIGJhc2Vk
IG9uIERPTSBvcmRlciBoZXJlLg0KKyAgICAvLyBJZiB0aGF0IGNoYW5nZXMgdG8gcmVxdWlyZSBv
bmx5IG9uZSBhcmlhLW1vZGFsIHdlIGNvdWxkIGNoYW5nZSB0aGlzIHRvIGEgV2Vha0hhc2hTZXQs
IG9yIGRpc2NhcmQgdGhlIHNldCBjb21wbGV0ZWx5Lg0KKyAgICBMaXN0SGFzaFNldDxFbGVtZW50
Kj4gbV9tb2RhbEVsZW1lbnRzU2V0Ow0KICAgICBib29sIG1fbW9kYWxOb2Rlc0luaXRpYWxpemVk
IHsgZmFsc2UgfTsNCiANCiAgICAgVGltZXIgbV9wZXJmb3JtQ2FjaGVVcGRhdGVUaW1lcjsNCkBA
IC01MDIsNiArNTA1LDcgQEAgcHJpdmF0ZToNCiAgICAgV2Vha0hhc2hTZXQ8RWxlbWVudD4gbV9k
ZWZlcnJlZFNlbGVjdGVkQ2hpbGRyZWRDaGFuZ2VkTGlzdDsNCiAgICAgTGlzdEhhc2hTZXQ8UmVm
UHRyPEFYQ29yZU9iamVjdD4+IG1fZGVmZXJyZWRDaGlsZHJlbkNoYW5nZWRMaXN0Ow0KICAgICBM
aXN0SGFzaFNldDxOb2RlKj4gbV9kZWZlcnJlZENoaWxkcmVuQ2hhbmdlZE5vZGVMaXN0Ow0KKyAg
ICBXZWFrSGFzaFNldDxFbGVtZW50PiBtX2RlZmVycmVkTW9kYWxDaGFuZ2VkTGlzdDsNCiAgICAg
SGFzaE1hcDxFbGVtZW50KiwgU3RyaW5nPiBtX2RlZmVycmVkVGV4dEZvcm1Db250cm9sVmFsdWU7
DQogICAgIEhhc2hNYXA8RWxlbWVudCosIFF1YWxpZmllZE5hbWU+IG1fZGVmZXJyZWRBdHRyaWJ1
dGVDaGFuZ2U7DQogICAgIFZlY3RvcjxzdGQ6OnBhaXI8Tm9kZSosIE5vZGUqPj4gbV9kZWZlcnJl
ZEZvY3VzZWROb2RlQ2hhbmdlOw0KQEAgLTU3Myw3ICs1NzcsOCBAQCBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbihGcmFtZSosIEFYTG9hZGlu
Z0V2ZW50KQ0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KSB7
IH0NCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBY3RpdmVEZXNjZW5kYW50Q2hh
bmdlZChOb2RlKikgeyB9DQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXJpYUV4
cGFuZGVkQ2hhbmdlKE5vZGUqKSB7IH0NCi1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5k
bGVNb2RhbENoYW5nZShOb2RlKikgeyB9DQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFu
ZGxlTW9kYWxDaGFuZ2UoRWxlbWVudCopIHsgfQ0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OmRlZmVyTW9kYWxDaGFuZ2UoRWxlbWVudCopIHsgfQ0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmhhbmRsZUFyaWFSb2xlQ2hhbmdlZChOb2RlKikgeyB9DQogaW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6ZGVmZXJBdHRyaWJ1dGVDaGFuZ2VJZk5lZWRlZChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRWxlbWVudCopIHsgfQ0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJp
YnV0ZUNoYW5nZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQ0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwDQppbmRleCA2MjI0OWEzODE1MS4uNzM3MDY4NWFkNDcgMTAwNjQ0DQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
DQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwDQpAQCAtMjI4LDcgKzIyOCw4IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmZpcnN0Q2hpbGQoKSBjb25zdA0KICAgICBpZiAoIWZpcnN0
Q2hpbGQgJiYgIWNhbkhhdmVDaGlsZHJlbigpKQ0KICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjpmaXJzdENoaWxkKCk7DQogDQotICAgIHJldHVybiBheE9iamVjdENhY2hl
KCktPmdldE9yQ3JlYXRlKGZpcnN0Q2hpbGQpOw0KKyAgICBhdXRvIG9iamVjdENhY2hlID0gYXhP
YmplY3RDYWNoZSgpOw0KKyAgICByZXR1cm4gb2JqZWN0Q2FjaGUgPyBvYmplY3RDYWNoZS0+Z2V0
T3JDcmVhdGUoZmlyc3RDaGlsZCkgOiBudWxscHRyOw0KIH0NCiANCiBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsYXN0Q2hpbGQoKSBjb25zdA0KQEAgLTI0
MSw3ICsyNDIsOCBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpsYXN0Q2hpbGQoKSBjb25zdA0KICAgICBpZiAoIWxhc3RDaGlsZCAmJiAhY2FuSGF2ZUNo
aWxkcmVuKCkpDQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omxhc3RD
aGlsZCgpOw0KIA0KLSAgICByZXR1cm4gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShsYXN0
Q2hpbGQpOw0KKyAgICBhdXRvIG9iamVjdENhY2hlID0gYXhPYmplY3RDYWNoZSgpOw0KKyAgICBy
ZXR1cm4gb2JqZWN0Q2FjaGUgPyBvYmplY3RDYWNoZS0+Z2V0T3JDcmVhdGUobGFzdENoaWxkKSA6
IG51bGxwdHI7DQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgUmVuZGVySW5saW5lKiBzdGFydE9mQ29u
dGludWF0aW9ucyhSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQ0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402218</attachid>
            <date>2020-06-18 11:45:00 -0700</date>
            <delta_ts>2020-06-18 11:48:44 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_212849.txt</filename>
            <type>text/plain</type>
            <size>26779</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggNWEwODlkNDQ1ZTYuLmEwNTE1MDRkOGU5IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTgg
QEANCisyMDIwLTA2LTE4ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogYXJpYS1tb2RhbCBub2RlcyB3cmFwcGVkIGluIGFyaWEtaGlkZGVuIGFy
ZSBub3QgaG9ub3JlZA0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMjg0OQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0MDQ3MDE5Pg0KKw0KKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvYXJpYS1oaWRkZW4tbmVnYXRlcy1uby12aXNpYmlsaXR5LWV4cGVjdGVkLnR4dDoNCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1uZWdhdGVzLW5vLXZpc2liaWxpdHku
aHRtbDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLW1vZGFsLWluLWFyaWEtaGlkZGVu
LWV4cGVjdGVkLnR4dDogQWRkZWQuDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1tb2Rh
bC1pbi1hcmlhLWhpZGRlbi5odG1sOiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9h
cmlhLW1vZGFsLmh0bWw6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbW9kYWwt
YXV0by1mb2N1cy5odG1sOg0KKw0KIDIwMjAtMDYtMTggIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBp
bm9AaWdhbGlhLmNvbT4NCiANCiAgICAgICAgIFtHVEtdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5p
bmcuIFVwZGF0ZSBzdGF0dXMgb2YgZmxha3kgdGltZW91dCBmYWlsdXJlcyBhZnRlciByMjYzMjA2
Lg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tbmVn
YXRlcy1uby12aXNpYmlsaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvYXJpYS1oaWRkZW4tbmVnYXRlcy1uby12aXNpYmlsaXR5LWV4cGVjdGVkLnR4dA0KaW5kZXgg
YmI1ZWNmYjAyM2YuLmNhZDI0M2EwMmIwIDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9hcmlhLWhpZGRlbi1uZWdhdGVzLW5vLXZpc2liaWxpdHktZXhwZWN0ZWQudHh0DQor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLW5lZ2F0ZXMtbm8tdmlz
aWJpbGl0eS1leHBlY3RlZC50eHQNCkBAIC0yLDcgKzIsNiBAQCBoZWFkaW5nMS4yDQogDQogDQog
DQotDQogVGhpcyB0ZXN0cyBlbnN1cmVzIHRoYXQgYXJpYS1oaWRkZW49ZmFsc2Ugd2lsbCBhbGxv
dyBhIG5vZGUgdG8gYmUgaW4gdGhlIEFYIGhpZXJhcmNoeSBldmVuIGlmIGl0J3Mgbm90IHJlbmRl
cmVkIG9yIHZpc2libGUNCiANCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuDQpAQCAtMTgsNyAr
MTcsNyBAQCBQQVNTIHBhcmVudC5jaGlsZEF0SW5kZXgoMSkuaXNFcXVhbChoZWFkaW5nMykgaXMg
dHJ1ZQ0KIFBBU1MgaGVhZGluZzQucm9sZSBpcyAnQVhSb2xlOiBBWEhlYWRpbmcnDQogUEFTUyBw
YXJlbnQuY2hpbGRBdEluZGV4KDIpLmlzRXF1YWwoaGVhZGluZzQpIGlzIHRydWUNCiBUZXh0Zmll
bGQgVGl0bGU6IEFYVGl0bGU6IA0KLVBBU1MgdmlkZW8uY2hpbGRyZW5Db3VudCBpcyAwDQorUEFT
UyAhdmlkZW8gfHwgdmlkZW8uY2hpbGRyZW5Db3VudCA9PSAwIGlzIHRydWUNCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlDQogDQogVEVTVCBDT01QTEVURQ0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tbmVnYXRlcy1uby12aXNpYmlsaXR5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLW5lZ2F0ZXMtbm8t
dmlzaWJpbGl0eS5odG1sDQppbmRleCA0NzRiNjA5ZmRjOC4uNDBiM2Y3NGVmODEgMTAwNjQ0DQot
LS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLW5lZ2F0ZXMtbm8tdmlz
aWJpbGl0eS5odG1sDQorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVu
LW5lZ2F0ZXMtbm8tdmlzaWJpbGl0eS5odG1sDQpAQCAtMTYsMTEgKzE2LDEzIEBADQogPGRpdiBo
aWRkZW4gYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iaGlkZGVuRGl2Ij5IaWRkZW5UZXh0MTwvZGl2
Pg0KIDxpbnB1dCB0eXBlPSJ0ZXh0IiBhcmlhLWxhYmVsbGVkYnk9ImhpZGRlbkRpdiIgaWQ9InRl
eHRGaWVsZFdpdGhIaWRkZW5MYWJlbGxlciI+DQogDQorPGRpdj4NCiA8ZGl2IGFyaWEtaGlkZGVu
PSJmYWxzZSI+DQotPHZpZGVvIGlkPSJ2aWRlbyI+DQorPHZpZGVvIGhpZGRlbiBpZD0idmlkZW8i
Pg0KIEhpZGRlbiBjb250ZW50DQogPC92aWRlbz4NCiA8L2Rpdj4NCis8L2Rpdj4NCiANCiA8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4NCiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCkBAIC02Myw3
ICs2NSw3IEBAIEhpZGRlbiBjb250ZW50DQogICAgICAgICANCiAgICAgICAgIC8vIGFyaWEtaGlk
ZGVuPSJmYWxzZSIgbmVlZCB0byBiZSBvbiBlYWNoIHBhcmVudCwgaW5jbHVkaW5nIHJlbmRlcmVk
IHBhcmVudHMuDQogICAgICAgICB2YXIgdmlkZW8gPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoInZpZGVvIik7DQotICAgICAgICBzaG91bGRCZSgidmlkZW8u
Y2hpbGRyZW5Db3VudCIsICIwIik7DQorICAgICAgICBzaG91bGRCZVRydWUoIiF2aWRlbyB8fCB2
aWRlby5jaGlsZHJlbkNvdW50ID09IDAiKTsNCiAgICAgfQ0KIA0KIDwvc2NyaXB0Pg0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1tb2RhbC1pbi1hcmlhLWhpZGRl
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbW9kYWwtaW4t
YXJpYS1oaWRkZW4tZXhwZWN0ZWQudHh0DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw
MDAwMDAwMDAuLmZiYWMyZTY1NDAyDQotLS0gL2Rldi9udWxsDQorKysgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2FyaWEtbW9kYWwtaW4tYXJpYS1oaWRkZW4tZXhwZWN0ZWQudHh0DQpAQCAt
MCwwICsxLDE0IEBADQorVGhpcyB0ZXN0cyB0aGF0IHdoZW4gc29tZXRoaW5nIGlzIGFyaWEtbW9k
YWwgaW5zaWRlIGFuIGFyaWEtaGlkZGVuIGl0IGlzIGlnbm9yZWQuDQorDQorT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLg0KKw0KKw0KK1BBU1MgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCdiZ0NvbnRlbnQnKS5pc0lnbm9yZWQgaXMgZmFsc2UNCitQQVNTIGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgnYmdDb250ZW50Jykg
aXMgbnVsbA0KK1BBU1MgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKCdiZ0NvbnRlbnQnKS5pc0lnbm9yZWQgaXMgZmFsc2UNCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KK090aGVyIHBhZ2UgY29udGVudCB3aXRo
IGEgZHVtbXkgZm9jdXNhYmxlIGVsZW1lbnQNCisNCitKdXN0IGFuIGV4YW1wbGUuDQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLW1vZGFsLWluLWFyaWEtaGlkZGVu
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbW9kYWwtaW4tYXJpYS1oaWRk
ZW4uaHRtbA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4xMTA4OTJm
NWMxZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlh
LW1vZGFsLWluLWFyaWEtaGlkZGVuLmh0bWwNCkBAIC0wLDAgKzEsNDUgQEANCis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+DQorPGh0bWw+DQorPGhlYWQ+DQor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9o
ZWFkPg0KKw0KKzxib2R5IGlkPSJib2R5Ij4NCisNCis8ZGl2IGlkPSJiZyI+DQorPHAgaWQ9ImJn
Q29udGVudCI+T3RoZXIgcGFnZSBjb250ZW50IHdpdGggPGEgaHJlZj0iIyI+YSBkdW1teSBmb2N1
c2FibGUgZWxlbWVudDwvYT48L3A+DQorPC9kaXY+DQorDQorPGRpdiBpZD0iY29udGFpbmVyIj4N
CisgICAgPGRpdiByb2xlPSJkaWFsb2ciIGFyaWEtbW9kYWw9ImZhbHNlIiBpZD0iYm94Ij4NCisg
ICAgICAgIDxoMyBpZD0ibXlEaWFsb2ciPkp1c3QgYW4gZXhhbXBsZS48L2gzPg0KKyAgICA8L2Rp
dj4NCis8L2Rpdj4NCisNCisNCis8c2NyaXB0Pg0KKw0KKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0cyB0aGF0IHdoZW4gc29tZXRoaW5nIGlzIGFyaWEtbW9kYWwgaW5zaWRlIGFuIGFyaWEtaGlk
ZGVuIGl0IGlzIGlnbm9yZWQuIik7DQorICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsN
CisNCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgew0KKyAgICAgICAg
c2hvdWxkQmVGYWxzZSgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKCdiZ0NvbnRlbnQnKS5pc0lnbm9yZWQiKTsNCisgICAgICAgIA0KKyAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImJveCIpLnNldEF0dHJpYnV0ZSgiYXJpYS1tb2RhbCIsICJ0cnVl
Iik7DQorDQorICAgICAgICBzaG91bGRCZU51bGwoImFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFj
Y2Vzc2libGVFbGVtZW50QnlJZCgnYmdDb250ZW50JykiKTsNCisNCisgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwg
InRydWUiKTsNCisNCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQorICAgICAgICAg
ICAgc2hvdWxkQmVGYWxzZSgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1l
bnRCeUlkKCdiZ0NvbnRlbnQnKS5pc0lnbm9yZWQiKTsNCisgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsNCisgICAgICAgIH0sIDApOw0KKyAgICB9ICAgIA0KKw0KKzwvc2NyaXB0Pg0KKw0KKw0K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4NCis8
L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
YXJpYS1tb2RhbC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLW1vZGFsLmh0
bWwNCmluZGV4IGMwYTRiNjdhYTRiLi43ODdlNWUxZThlMSAxMDA2NDQNCi0tLSBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1tb2RhbC5odG1sDQorKysgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2FyaWEtbW9kYWwuaHRtbA0KQEAgLTIxLDcgKzIxLDcgQEANCiA8c2NyaXB0Pg0K
IA0KICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IGFyaWEtbW9kYWwgb24gZGlhbG9n
IG1ha2VzIG90aGVyIGVsZW1lbnRzIGluZXJ0LiIpOw0KLQ0KKyAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsNCiAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgew0KICAgICAg
ICAgLy8gQmFja2dyb3VuZCBzaG91bGQgYmUgdW5hY2Nlc3NpYmxlIGFmdGVyIGxvYWRpbmcsIHNp
bmNlIHRoZSANCiAgICAgICAgIC8vIGRpYWxvZyBpcyBkaXNwbGF5ZWQgYW5kIGFyaWEtbW9kYWw9
dHJ1ZS4NCkBAIC00NywxMiArNDcsMTUgQEANCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJib3giKS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwgInRydWUiKTsNCiAgICAgICAg
IHNob3VsZEJlVHJ1ZSgiYmFja2dyb3VuZEFjY2Vzc2libGUoKSIpOw0KICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImJveCIpLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCAiZmFs
c2UiKTsNCi0gICAgICAgIHNob3VsZEJlRmFsc2UoImJhY2tncm91bmRBY2Nlc3NpYmxlKCkiKTsN
CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQorICAgICAgICAgICAgc2hvdWxkQmVG
YWxzZSgiYmFja2dyb3VuZEFjY2Vzc2libGUoKSIpOw0KICAgICAgICAgDQotICAgICAgICAvLyBU
ZXN0IG1vZGFsIGRpYWxvZyBpcyByZW1vdmVkIGZyb20gRE9NIHRyZWUuDQotICAgICAgICB2YXIg
ZGlhbG9nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveCIpOw0KLSAgICAgICAgZGlhbG9n
LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZGlhbG9nKTsNCi0gICAgICAgIHNob3VsZEJlVHJ1ZSgi
YmFja2dyb3VuZEFjY2Vzc2libGUoKSIpOw0KKyAgICAgICAgICAgIC8vIFRlc3QgbW9kYWwgZGlh
bG9nIGlzIHJlbW92ZWQgZnJvbSBET00gdHJlZS4NCisgICAgICAgICAgICB2YXIgZGlhbG9nID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveCIpOw0KKyAgICAgICAgICAgIGRpYWxvZy5wYXJl
bnROb2RlLnJlbW92ZUNoaWxkKGRpYWxvZyk7DQorICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJi
YWNrZ3JvdW5kQWNjZXNzaWJsZSgpIik7DQorICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7DQor
ICAgICAgICAgfSwgMCk7DQogICAgIH0NCiAgICAgDQogICAgIGZ1bmN0aW9uIGJhY2tncm91bmRB
Y2Nlc3NpYmxlKCkgew0KQEAgLTgyLDQgKzg1LDQgQEANCiANCiA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+DQogPC9ib2R5Pg0KLTwvaHRtbD4NClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLW1vZGFsLWF1dG8tZm9jdXMuaHRtbCBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbW9kYWwtYXV0by1mb2N1cy5odG1sDQppbmRl
eCAxNmMyNjU0OWFjNy4uNWUyNmY1NTBjYmYgMTAwNjQ0DQotLS0gYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9hcmlhLW1vZGFsLWF1dG8tZm9jdXMuaHRtbA0KKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1tb2RhbC1hdXRvLWZvY3VzLmh0bWwNCkBAIC00OSwx
NCArNDksMTcgQEANCiAgICAgICAgICAgICBzaG91bGRCZVRydWUoIm5ld0J0bi5pc0ZvY3VzZWQi
KTsNCiAgICAgICAgICAgICANCiAgICAgICAgICAgICAvLyAyLiBDbGljayB0aGUgbmV3IGJ1dHRv
biwgZGlhbG9nMiBzaG93cyBhbmQgZm9jdXMgc2hvdWxkIG1vdmUgdG8gdGhlIGNsb3NlIGJ1dHRv
bi4NCisgICAgICAgICAgICAvLyBTZXQgYXJpYS1tb2RhbCB0byBmYWxzZSBvbiB0aGUgcHJldmlv
dXMgbW9kYWwgb2JqZWN0ICh3ZSBzaG91bGRuJ3QgaGF2ZSB0d28gbW9kYWxzIGluIHBsYXkpLg0K
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXciKS5jbGljaygpOw0KKyAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3giKS5hcmlhTW9kYWwgPSBmYWxz
ZTsNCiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgICAgICAgICAgICAg
ICBjbG9zZUJ0biA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgiY2xvc2UiKTsNCiAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJjbG9zZUJ0bi5pc0Zv
Y3VzZWQiKTsNCiAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgLy8gMy4gQ2xp
Y2sgdGhlIGNsb3NlIGJ1dHRvbiwgZGlhbG9nMiBjbG9zZXMgYW5kIGZvY3VzIHNob3VsZCBnbyBi
YWNrIHRvIHRoZQ0KLSAgICAgICAgICAgICAgICAvLyBmaXJzdCBmb2N1c2FibGUgY2hpbGQgb2Yg
ZGlhbG9nMS4NCisgICAgICAgICAgICAgICAgLy8gZmlyc3QgZm9jdXNhYmxlIGNoaWxkIG9mIGRp
YWxvZzEsIHdoaWNoIHdlIG5vdyBuZWVkIHRvIGFkZCBhcmlhLW1vZGFsIGJhY2sgdG8uDQogICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZSIpLmNsaWNrKCk7DQor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3giKS5hcmlhTW9kYWwg
PSB0cnVlOw0KICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7DQogICAgICAg
ICAgICAgICAgICAgICBva0J0biA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVF
bGVtZW50QnlJZCgib2siKTsNCiAgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgib2tC
dG4uaXNGb2N1c2VkIik7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQppbmRleCA4ODg0MWRiOTI2MS4uZTk3NDU5NDMyODEg
MTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZw0KQEAgLTEsMyArMSw0NCBAQA0KKzIwMjAtMDYtMTggIENocmlzIEZsZWl6
YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBhcmlhLW1vZGFsIG5v
ZGVzIHdyYXBwZWQgaW4gYXJpYS1oaWRkZW4gYXJlIG5vdCBob25vcmVkDQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyODQ5DQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNjQwNDcwMTk+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4NCisNCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvYXJpYS1tb2RhbC1pbi1hcmlh
LWhpZGRlbi5odG1sDQorDQorICAgICAgICBJZiBhcmlhLW1vZGFsIHdhcyB3cmFwcGVkIGluc2lk
ZSBhcmlhLWhpZGRlbiwgd2Ugd2VyZSBzdGlsbCBwcm9jZXNzaW5nIHRoYXQgYXMgdGhlIG1vZGFs
IG5vZGUuDQorICAgICAgICBGaXhpbmcgdGhhdCB1bmNvdmVyZWQgYSBob3N0IG9mIHZlcnkgZmlu
aWNreSBpc3N1ZXMgcmVsYXRlZCB0byBhcmlhLW1vZGFsLg0KKyAgICAgICAgMS4gV2Ugd2VyZSBw
cm9jZXNzaW5nIG1vZGFsIHN0YXR1cyBpbW1lZGlhdGVseSBpbnN0ZWFkIG9mIGFmdGVyIGEgZGVs
YXksIHNvIHZpc2liaWxpdHkgcmVxdWlyZW1lbnRzIHdlcmUgbm90IGNvcnJlY3QuDQorICAgICAg
ICAyLiBJbiBoYW5kbGVNb2RhbENoYW5nZTogV2Ugd2VyZSBwcm9jZXNzaW5nIG11bHRpcGxlIG1v
ZGFsIG5vZGVzIHBlcmhhcHMgaW5jb3JyZWN0bHkgKHRoZSBzcGVjIGRvZXNuJ3QgYWNjb3VudCBm
b3IgbXVsdGlwbGUgbW9kYWwgbm9kZXMpLiANCisgICAgICAgICAgICAgLSBoYWQgdG8gdXBkYXRl
IGEgdGVzdCB0byB0dXJuIG9mZiBtb2RhbCBzdGF0dXMgYmVmb3JlIGFkZGluZyBhIG5ldyBtb2Rh
bCBub2RlDQorICAgICAgICAzLiBDaGFuZ2VkIHRoZSBtb2RhbCBub2RlIHRvIGEgV2Vha1B0cg0K
KyAgICAgICAgNC4gSW4gaXNOb2RlQXJpYVZpc2libGU6IFdlIHN0b3BwZWQgcHJvY2Vzc2luZyBm
b3IgdmlzaWJpbGUgd2l0aCBhcmlhLWhpZGRlbiBhcyBzb29uIGFzIHdlIGhpdCBhIHJlbmRlcmFi
bGUgYmxvY2ssIGJ1dCB0aGF0IG1lYW5zIGl0IHdvbid0IGFjY291bnQNCisgICAgICAgICAgIGZv
ciBub2RlcyBoaWdoZXIgaW4gdGhlIHRyZWUgd2l0aCBhcmlhLWhpZGRlbi4NCisgICAgICAgIDUu
IEluIGhhbmRsZUF0dHJpYnV0ZUNoYW5nZTogaWYgYXJpYS1oaWRkZW4gY2hhbmdlcywgd2Ugc2hv
dWxkIHVwZGF0ZSBtb2RhbCBzdGF0dXMgaWYgbmVlZGVkLg0KKyAgICAgICAgNi4gSW4gZm9jdXNN
b2RhbE5vZGVUaW1lckZpcmVkOiB3ZSBuZWVkIHRvIHZlcmlmeSB0aGUgZWxlbWVudCBpcyBzdGls
bCBsaXZlLCBvdGhlcndpc2UgaXQgY2FuIGxlYWQgdG8gYSBjcmFzaC4NCisNCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpBWE9iamVjdENhY2hlKToNCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpmaW5kTW9kYWxOb2Rlcyk6DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
Y3VycmVudE1vZGFsTm9kZSk6DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bW9k
YWxOb2RlKToNCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyZW1vdmUpOg0KKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmRlZmVyTW9kYWxDaGFuZ2UpOg0KKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmZvY3VzTW9kYWxOb2RlVGltZXJGaXJlZCk6DQor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKToN
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVNb2RhbENoYW5nZSk6DQor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cHJlcGFyZUZvckRvY3VtZW50RGVzdHJ1
Y3Rpb24pOg0KKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJl
ZENhY2hlVXBkYXRlKToNCisgICAgICAgIChXZWJDb3JlOjppc05vZGVBcmlhVmlzaWJsZSk6DQor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOg0KKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1vZGFsQ2hhbmdlKToNCisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpkZWZlck1vZGFsQ2hhbmdlKToNCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpmaXJzdENoaWxkIGNvbnN0KToNCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsYXN0Q2hpbGQgY29uc3QpOg0KKw0K
IDIwMjAtMDYtMTggIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4NCiANCiAgICAg
ICAgIFtJUEMgaGFyZGVuaW5nXSBPcHRpb25TZXQ8PiB2YWx1ZXMgc2hvdWxkIGJlIHZhbGlkYXRl
ZA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwDQpp
bmRleCA4ZDcyZTc2ZGM2MC4uODllYjQ3MDJlM2YgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwDQpAQCAtMjE5LDcgKzIxOSw3IEBAIEFYT2Jq
ZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KQ0KICAgICAsIG1fcGFz
c3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpwYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQ0KICAgICAsIG1fbGl2ZVJlZ2lvbkNoYW5nZWRQ
b3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpsaXZlUmVnaW9uQ2hhbmdlZE5vdGlmaWNh
dGlvblBvc3RUaW1lckZpcmVkKQ0KICAgICAsIG1fZm9jdXNNb2RhbE5vZGVUaW1lcigqdGhpcywg
JkFYT2JqZWN0Q2FjaGU6OmZvY3VzTW9kYWxOb2RlVGltZXJGaXJlZCkNCi0gICAgLCBtX2N1cnJl
bnRNb2RhbE5vZGUobnVsbHB0cikNCisgICAgLCBtX2N1cnJlbnRNb2RhbEVsZW1lbnQobnVsbHB0
cikNCiAgICAgLCBtX3BlcmZvcm1DYWNoZVVwZGF0ZVRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNo
ZTo6cGVyZm9ybUNhY2hlVXBkYXRlVGltZXJGaXJlZCkNCiB7DQogfQ0KQEAgLTI1MCwzOSArMjUw
LDM5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6ZmluZE1vZGFsTm9kZXMoKQ0KICAgICAgICAgaWYg
KCFlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbGVtZW50LT5hdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKGFyaWFfbW9kYWxBdHRyKSwgInRydWUiKSkNCiAgICAgICAgICAgICBj
b250aW51ZTsNCiANCi0gICAgICAgIG1fbW9kYWxOb2Rlc1NldC5hZGQoZWxlbWVudCk7DQorICAg
ICAgICBtX21vZGFsRWxlbWVudHNTZXQuYWRkKGVsZW1lbnQpOw0KICAgICB9DQogDQogICAgIG1f
bW9kYWxOb2Rlc0luaXRpYWxpemVkID0gdHJ1ZTsNCiB9DQogDQotTm9kZSogQVhPYmplY3RDYWNo
ZTo6Y3VycmVudE1vZGFsTm9kZSgpDQorRWxlbWVudCogQVhPYmplY3RDYWNoZTo6Y3VycmVudE1v
ZGFsTm9kZSgpDQogew0KICAgICAvLyBUaGVyZSBtaWdodCBiZSBtdWx0aXBsZSBub2RlcyB3aXRo
IGFyaWEtbW9kYWw9dHJ1ZSBzZXQuDQogICAgIC8vIFdlIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIHBp
Y2sgdGhlIG9uZSB3ZSB3YW50Lg0KLSAgICBtX2N1cnJlbnRNb2RhbE5vZGUgPSBudWxscHRyOw0K
LSAgICBpZiAobV9tb2RhbE5vZGVzU2V0LmlzRW1wdHkoKSkNCisgICAgbV9jdXJyZW50TW9kYWxF
bGVtZW50ID0gbnVsbHB0cjsNCisgICAgaWYgKG1fbW9kYWxFbGVtZW50c1NldC5pc0VtcHR5KCkp
DQogICAgICAgICByZXR1cm4gbnVsbHB0cjsNCiANCiAgICAgLy8gSWYgYW55IG9mIHRoZSBtb2Rh
bCBub2RlcyBjb250YWlucyB0aGUga2V5Ym9hcmQgZm9jdXMsIHdlIHdhbnQgdG8gcGljayB0aGF0
IG9uZS4NCiAgICAgLy8gSWYgbm90LCB3ZSB3YW50IHRvIHBpY2sgdGhlIGxhc3QgdmlzaWJsZSBk
aWFsb2cgaW4gdGhlIERPTS4NCiAgICAgUmVmUHRyPEVsZW1lbnQ+IGZvY3VzZWRFbGVtZW50ID0g
ZG9jdW1lbnQoKS5mb2N1c2VkRWxlbWVudCgpOw0KLSAgICBSZWZQdHI8Tm9kZT4gbGFzdFZpc2li
bGU7DQotICAgIGZvciAoYXV0byYgbm9kZSA6IG1fbW9kYWxOb2Rlc1NldCkgew0KLSAgICAgICAg
aWYgKGlzTm9kZVZpc2libGUobm9kZSkpIHsNCi0gICAgICAgICAgICBpZiAoZm9jdXNlZEVsZW1l
bnQgJiYgZm9jdXNlZEVsZW1lbnQtPmlzRGVzY2VuZGFudE9mKG5vZGUpKSB7DQotICAgICAgICAg
ICAgICAgIG1fY3VycmVudE1vZGFsTm9kZSA9IG5vZGU7DQorICAgIFJlZlB0cjxFbGVtZW50PiBs
YXN0VmlzaWJsZTsNCisgICAgZm9yIChhdXRvJiBlbGVtZW50IDogbV9tb2RhbEVsZW1lbnRzU2V0
KSB7DQorICAgICAgICBpZiAoaXNOb2RlVmlzaWJsZShlbGVtZW50KSkgew0KKyAgICAgICAgICAg
IGlmIChmb2N1c2VkRWxlbWVudCAmJiBmb2N1c2VkRWxlbWVudC0+aXNEZXNjZW5kYW50T2YoZWxl
bWVudCkpIHsNCisgICAgICAgICAgICAgICAgbV9jdXJyZW50TW9kYWxFbGVtZW50ID0gbWFrZVdl
YWtQdHIoZWxlbWVudCk7DQogICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgIH0N
CiANCi0gICAgICAgICAgICBsYXN0VmlzaWJsZSA9IG5vZGU7DQorICAgICAgICAgICAgbGFzdFZp
c2libGUgPSBlbGVtZW50Ow0KICAgICAgICAgfQ0KICAgICB9DQogDQotICAgIGlmICghbV9jdXJy
ZW50TW9kYWxOb2RlKQ0KLSAgICAgICAgbV9jdXJyZW50TW9kYWxOb2RlID0gbGFzdFZpc2libGUu
Z2V0KCk7DQorICAgIGlmICghbV9jdXJyZW50TW9kYWxFbGVtZW50KQ0KKyAgICAgICAgbV9jdXJy
ZW50TW9kYWxFbGVtZW50ID0gbWFrZVdlYWtQdHIobGFzdFZpc2libGUuZ2V0KCkpOw0KIA0KLSAg
ICByZXR1cm4gbV9jdXJyZW50TW9kYWxOb2RlOw0KKyAgICByZXR1cm4gbV9jdXJyZW50TW9kYWxF
bGVtZW50LmdldCgpOw0KIH0NCiANCiBib29sIEFYT2JqZWN0Q2FjaGU6OmlzTm9kZVZpc2libGUo
Tm9kZSogbm9kZSkgY29uc3QNCkBAIC0zMDQsMjMgKzMwNCwyMSBAQCBib29sIEFYT2JqZWN0Q2Fj
aGU6OmlzTm9kZVZpc2libGUoTm9kZSogbm9kZSkgY29uc3QNCiAgICAgcmV0dXJuIHRydWU7DQog
fQ0KIA0KKy8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdmFsaWQgYXJpYSBtb2RhbCBub2Rl
Lg0KIE5vZGUqIEFYT2JqZWN0Q2FjaGU6Om1vZGFsTm9kZSgpDQogew0KLSAgICAvLyBUaGlzIGZ1
bmN0aW9uIHJldHVybnMgdGhlIHZhbGlkIGFyaWEgbW9kYWwgbm9kZS4NCi0gICAgaWYgKCFtX21v
ZGFsTm9kZXNJbml0aWFsaXplZCkgew0KKyAgICBpZiAoIW1fbW9kYWxOb2Rlc0luaXRpYWxpemVk
KQ0KICAgICAgICAgZmluZE1vZGFsTm9kZXMoKTsNCi0gICAgICAgIHJldHVybiBjdXJyZW50TW9k
YWxOb2RlKCk7DQotICAgIH0NCiANCi0gICAgaWYgKG1fbW9kYWxOb2Rlc1NldC5pc0VtcHR5KCkp
DQorICAgIGlmIChtX21vZGFsRWxlbWVudHNTZXQuaXNFbXB0eSgpKQ0KICAgICAgICAgcmV0dXJu
IG51bGxwdHI7DQogDQogICAgIC8vIENoZWNrIHRoZSBjYWNoZWQgY3VycmVudCB2YWxpZCBhcmlh
IG1vZGFsIG5vZGUgZmlyc3QuDQogICAgIC8vIFVzdWFsbHkgd2hlbiBvbmUgZGlhbG9nIHNldHMg
YXJpYS1tb2RhbD10cnVlLCB0aGF0IGRpYWxvZyBpcyB0aGUgb25lIHdlIHdhbnQuDQotICAgIGlm
IChpc05vZGVWaXNpYmxlKG1fY3VycmVudE1vZGFsTm9kZSkpDQotICAgICAgICByZXR1cm4gbV9j
dXJyZW50TW9kYWxOb2RlOw0KKyAgICBpZiAoaXNOb2RlVmlzaWJsZShtX2N1cnJlbnRNb2RhbEVs
ZW1lbnQuZ2V0KCkpKQ0KKyAgICAgICAgcmV0dXJuIG1fY3VycmVudE1vZGFsRWxlbWVudC5nZXQo
KTsNCiANCi0gICAgLy8gUmVjb21wdXRlIHRoZSB2YWxpZCBhcmlhIG1vZGFsIG5vZGUgd2hlbiBt
X2N1cnJlbnRNb2RhbE5vZGUgaXMgbnVsbCBvciBoaWRkZW4uDQorICAgIC8vIFJlY29tcHV0ZSB0
aGUgdmFsaWQgYXJpYSBtb2RhbCBub2RlIHdoZW4gbV9jdXJyZW50TW9kYWxFbGVtZW50IGlzIG51
bGwgb3IgaGlkZGVuLg0KICAgICByZXR1cm4gY3VycmVudE1vZGFsTm9kZSgpOw0KIH0NCiANCkBA
IC04NjksNiArODY3LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoTm9kZSYgbm9kZSkN
CiAgICAgaWYgKGlzPEVsZW1lbnQ+KG5vZGUpKSB7DQogICAgICAgICBtX2RlZmVycmVkVGV4dEZv
cm1Db250cm9sVmFsdWUucmVtb3ZlKGRvd25jYXN0PEVsZW1lbnQ+KCZub2RlKSk7DQogICAgICAg
ICBtX2RlZmVycmVkQXR0cmlidXRlQ2hhbmdlLnJlbW92ZShkb3duY2FzdDxFbGVtZW50Pigmbm9k
ZSkpOw0KKyAgICAgICAgbV9tb2RhbEVsZW1lbnRzU2V0LnJlbW92ZShkb3duY2FzdDxFbGVtZW50
Pigmbm9kZSkpOw0KICAgICB9DQogICAgIG1fZGVmZXJyZWRDaGlsZHJlbkNoYW5nZWROb2RlTGlz
dC5yZW1vdmUoJm5vZGUpOw0KICAgICBtX2RlZmVycmVkVGV4dENoYW5nZWRMaXN0LnJlbW92ZSgm
bm9kZSk7DQpAQCAtODg1LDExICs4ODQsNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShO
b2RlJiBub2RlKQ0KICAgICByZW1vdmVOb2RlRm9yVXNlKG5vZGUpOw0KIA0KICAgICByZW1vdmUo
bV9ub2RlT2JqZWN0TWFwcGluZy50YWtlKCZub2RlKSk7DQotDQotICAgIGlmIChtX2N1cnJlbnRN
b2RhbE5vZGUgPT0gJm5vZGUpDQotICAgICAgICBtX2N1cnJlbnRNb2RhbE5vZGUgPSBudWxscHRy
Ow0KLSAgICBtX21vZGFsTm9kZXNTZXQucmVtb3ZlKCZub2RlKTsNCi0NCiAgICAgcmVtb3ZlKG5v
ZGUucmVuZGVyZXIoKSk7DQogfQ0KIA0KQEAgLTExODIsNiArMTE3NiwxMyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmRlZmVyRm9jdXNlZFVJRWxlbWVudENoYW5nZUlmTmVlZGVkKE5vZGUqIG9sZE5v
ZGUsIE5vZGUqIG5ldw0KICAgICB9IGVsc2UNCiAgICAgICAgIGhhbmRsZUZvY3VzZWRVSUVsZW1l
bnRDaGFuZ2VkKG9sZE5vZGUsIG5ld05vZGUpOw0KIH0NCisNCit2b2lkIEFYT2JqZWN0Q2FjaGU6
OmRlZmVyTW9kYWxDaGFuZ2UoRWxlbWVudCogZWxlbWVudCkNCit7DQorICAgIG1fZGVmZXJyZWRN
b2RhbENoYW5nZWRMaXN0LmFkZChlbGVtZW50KTsNCisgICAgaWYgKCFtX3BlcmZvcm1DYWNoZVVw
ZGF0ZVRpbWVyLmlzQWN0aXZlKCkpDQorICAgICAgICBtX3BlcmZvcm1DYWNoZVVwZGF0ZVRpbWVy
LnN0YXJ0T25lU2hvdCgwX3MpOw0KK30NCiAgICAgDQogdm9pZCBBWE9iamVjdENhY2hlOjpoYW5k
bGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGROb2RlLCBOb2RlKiBuZXdOb2RlKQ0K
IHsNCkBAIC0xNTgwLDE1ICsxNTgxLDE5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6Zm9jdXNNb2Rh
bE5vZGUoKQ0KIA0KIHZvaWQgQVhPYmplY3RDYWNoZTo6Zm9jdXNNb2RhbE5vZGVUaW1lckZpcmVk
KCkNCiB7DQotICAgIGlmICghbV9jdXJyZW50TW9kYWxOb2RlKQ0KKyAgICBpZiAoIW1fZG9jdW1l
bnQuaGFzTGl2aW5nUmVuZGVyVHJlZSgpKQ0KKyAgICAgICAgcmV0dXJuOw0KKw0KKyAgICBSZWY8
RG9jdW1lbnQ+IHByb3RlY3RvckZvckNhY2hlT3duZXIobV9kb2N1bWVudCk7DQorICAgIGlmICgh
bm9kZUFuZFJlbmRlcmVyQXJlVmFsaWQobV9jdXJyZW50TW9kYWxFbGVtZW50LmdldCgpKSB8fCAh
aXNOb2RlVmlzaWJsZShtX2N1cnJlbnRNb2RhbEVsZW1lbnQuZ2V0KCkpKQ0KICAgICAgICAgcmV0
dXJuOw0KICAgICANCiAgICAgLy8gRG9uJ3Qgc2V0IGZvY3VzIGlmIHdlIGFyZSBhbHJlYWR5IGZv
Y3VzaW5nIG9udG8gc29tZSBlbGVtZW50IHdpdGhpbg0KICAgICAvLyB0aGUgZGlhbG9nLg0KLSAg
ICBpZiAobV9jdXJyZW50TW9kYWxOb2RlLT5jb250YWlucyhkb2N1bWVudCgpLmZvY3VzZWRFbGVt
ZW50KCkpKQ0KKyAgICBpZiAobV9jdXJyZW50TW9kYWxFbGVtZW50LT5jb250YWlucyhkb2N1bWVu
dCgpLmZvY3VzZWRFbGVtZW50KCkpKQ0KICAgICAgICAgcmV0dXJuOw0KICAgICANCi0gICAgaWYg
KEFjY2Vzc2liaWxpdHlPYmplY3QqIGN1cnJlbnRNb2RhbE5vZGVPYmplY3QgPSBnZXRPckNyZWF0
ZShtX2N1cnJlbnRNb2RhbE5vZGUpKSB7DQorICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBj
dXJyZW50TW9kYWxOb2RlT2JqZWN0ID0gZ2V0T3JDcmVhdGUobV9jdXJyZW50TW9kYWxFbGVtZW50
LmdldCgpKSkgew0KICAgICAgICAgaWYgKEFjY2Vzc2liaWxpdHlPYmplY3QqIGZvY3VzYWJsZSA9
IGZpcnN0Rm9jdXNhYmxlQ2hpbGQoY3VycmVudE1vZGFsTm9kZU9iamVjdCkpDQogICAgICAgICAg
ICAgZm9jdXNhYmxlLT5zZXRGb2N1c2VkKHRydWUpOw0KICAgICB9DQpAQCAtMTY4NiwxMiArMTY5
MSwxNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZShjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgRWxlbWVudA0KICAgICAgICAgc2VsZWN0ZWRDaGlsZHJl
bkNoYW5nZWQoZWxlbWVudCk7DQogICAgIGVsc2UgaWYgKGF0dHJOYW1lID09IGFyaWFfZXhwYW5k
ZWRBdHRyKQ0KICAgICAgICAgaGFuZGxlQXJpYUV4cGFuZGVkQ2hhbmdlKGVsZW1lbnQpOw0KLSAg
ICBlbHNlIGlmIChhdHRyTmFtZSA9PSBhcmlhX2hpZGRlbkF0dHIpDQorICAgIGVsc2UgaWYgKGF0
dHJOYW1lID09IGFyaWFfaGlkZGVuQXR0cikgew0KICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKGVs
ZW1lbnQtPnBhcmVudE5vZGUoKSwgZWxlbWVudCk7DQorICAgICAgICBpZiAobV9jdXJyZW50TW9k
YWxFbGVtZW50ICYmIG1fY3VycmVudE1vZGFsRWxlbWVudC0+aXNEZXNjZW5kYW50T2YoZWxlbWVu
dCkpIHsNCisgICAgICAgICAgICBtX21vZGFsTm9kZXNJbml0aWFsaXplZCA9IGZhbHNlOw0KKyAg
ICAgICAgICAgIGRlZmVyTW9kYWxDaGFuZ2UobV9jdXJyZW50TW9kYWxFbGVtZW50LmdldCgpKTsN
CisgICAgICAgIH0NCisgICAgfQ0KICAgICBlbHNlIGlmIChhdHRyTmFtZSA9PSBhcmlhX2ludmFs
aWRBdHRyKQ0KICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihlbGVtZW50LCBBWE9iamVjdENhY2hl
OjpBWEludmFsaWRTdGF0dXNDaGFuZ2VkKTsNCiAgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gYXJp
YV9tb2RhbEF0dHIpDQotICAgICAgICBoYW5kbGVNb2RhbENoYW5nZShlbGVtZW50KTsNCisgICAg
ICAgIGRlZmVyTW9kYWxDaGFuZ2UoZWxlbWVudCk7DQogICAgIGVsc2UgaWYgKGF0dHJOYW1lID09
IGFyaWFfY3VycmVudEF0dHIpDQogICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKGVsZW1lbnQsIEFY
T2JqZWN0Q2FjaGU6OkFYQ3VycmVudENoYW5nZWQpOw0KICAgICBlbHNlIGlmIChhdHRyTmFtZSA9
PSBhcmlhX2Rpc2FibGVkQXR0cikNCkBAIC0xNzA2LDEyICsxNzE2LDkgQEAgdm9pZCBBWE9iamVj
dENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUsIEVsZW1lbnQNCiAgICAgICAgIHBvc3ROb3RpZmljYXRpb24oZWxlbWVudCwgQVhPYmplY3RD
YWNoZTo6QVhBcmlhQXR0cmlidXRlQ2hhbmdlZCk7DQogfQ0KIA0KLXZvaWQgQVhPYmplY3RDYWNo
ZTo6aGFuZGxlTW9kYWxDaGFuZ2UoTm9kZSogbm9kZSkNCit2b2lkIEFYT2JqZWN0Q2FjaGU6Omhh
bmRsZU1vZGFsQ2hhbmdlKEVsZW1lbnQmIGVsZW1lbnQpDQogew0KLSAgICBpZiAoIWlzPEVsZW1l
bnQ+KG5vZGUpKQ0KLSAgICAgICAgcmV0dXJuOw0KLQ0KLSAgICBpZiAoIW5vZGVIYXNSb2xlKG5v
ZGUsICJkaWFsb2ciKSAmJiAhbm9kZUhhc1JvbGUobm9kZSwgImFsZXJ0ZGlhbG9nIikpDQorICAg
IGlmICghbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciKSAmJiAhbm9kZUhhc1JvbGUoJmVs
ZW1lbnQsICJhbGVydGRpYWxvZyIpKQ0KICAgICAgICAgcmV0dXJuOw0KIA0KICAgICBzdG9wQ2Fj
aGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOw0KQEAgLTE3MTksMTggKzE3MjYsMTkgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVNb2RhbENoYW5nZShOb2RlKiBub2RlKQ0KICAgICBp
ZiAoIW1fbW9kYWxOb2Rlc0luaXRpYWxpemVkKQ0KICAgICAgICAgZmluZE1vZGFsTm9kZXMoKTsN
CiANCi0gICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGRvd25jYXN0PEVsZW1l
bnQ+KCpub2RlKS5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFyaWFfbW9kYWxBdHRy
KSwgInRydWUiKSkgew0KLSAgICAgICAgLy8gQWRkIHRoZSBuZXdseSBtb2RpZmllZCBub2RlIHRv
IHRoZSBtb2RhbCBub2RlcyBzZXQsIGFuZCBzZXQgaXQgdG8gYmUgdGhlIGN1cnJlbnQgdmFsaWQg
YXJpYSBtb2RhbCBub2RlLg0KKyAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
ZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFyaWFfbW9kYWxBdHRyKSwg
InRydWUiKSkgew0KKyAgICAgICAgLy8gQWRkIHRoZSBuZXdseSBtb2RpZmllZCBub2RlIHRvIHRo
ZSBtb2RhbCBub2RlcyBzZXQuDQogICAgICAgICAvLyBXZSB3aWxsIHJlY29tcHV0ZSB0aGUgY3Vy
cmVudCB2YWxpZCBhcmlhIG1vZGFsIG5vZGUgaW4gbW9kYWxOb2RlKCkgd2hlbiB0aGlzIG5vZGUg
aXMgbm90IHZpc2libGUuDQotICAgICAgICBtX21vZGFsTm9kZXNTZXQuYWRkKG5vZGUpOw0KLSAg
ICAgICAgbV9jdXJyZW50TW9kYWxOb2RlID0gbm9kZTsNCisgICAgICAgIG1fbW9kYWxFbGVtZW50
c1NldC5hZGQoJmVsZW1lbnQpOw0KICAgICB9IGVsc2Ugew0KLSAgICAgICAgLy8gUmVtb3ZlIHRo
ZSBub2RlIGZyb20gdGhlIG1vZGFsIG5vZGVzIHNldC4gVGhlcmUgbWlnaHQgYmUgb3RoZXIgdmlz
aWJsZSBtb2RhbCBub2Rlcywgc28gd2UgcmVjb21wdXRlIGhlcmUuDQotICAgICAgICBtX21vZGFs
Tm9kZXNTZXQucmVtb3ZlKG5vZGUpOw0KLSAgICAgICAgY3VycmVudE1vZGFsTm9kZSgpOw0KKyAg
ICAgICAgLy8gUmVtb3ZlIHRoZSBub2RlIGZyb20gdGhlIG1vZGFsIG5vZGVzIHNldC4NCisgICAg
ICAgIG1fbW9kYWxFbGVtZW50c1NldC5yZW1vdmUoJmVsZW1lbnQpOw0KICAgICB9DQogDQotICAg
IGlmIChtX2N1cnJlbnRNb2RhbE5vZGUpDQorICAgIC8vIEZpbmQgbmV3IGFjdGl2ZSBtb2RhbCBu
b2RlLg0KKyAgICBjdXJyZW50TW9kYWxOb2RlKCk7DQorDQorICAgIGlmIChtX2N1cnJlbnRNb2Rh
bEVsZW1lbnQpDQogICAgICAgICBmb2N1c01vZGFsTm9kZSgpOw0KIA0KICAgICBzdGFydENhY2hp
bmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXNVbnRpbFRyZWVNdXRhdGVzKCk7DQpAQCAtMzAyOSwx
MyArMzAzNywxMyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnByZXBhcmVGb3JEb2N1bWVudERlc3Ry
dWN0aW9uKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkNCiB7DQogICAgIEhhc2hTZXQ8Tm9kZSo+
IG5vZGVzVG9SZW1vdmU7DQogICAgIGZpbHRlckxpc3RGb3JSZW1vdmFsKG1fdGV4dE1hcmtlck5v
ZGVzLCBkb2N1bWVudCwgbm9kZXNUb1JlbW92ZSk7DQotICAgIGZpbHRlckxpc3RGb3JSZW1vdmFs
KG1fbW9kYWxOb2Rlc1NldCwgZG9jdW1lbnQsIG5vZGVzVG9SZW1vdmUpOw0KKyAgICBmaWx0ZXJM
aXN0Rm9yUmVtb3ZhbChtX21vZGFsRWxlbWVudHNTZXQsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3Zl
KTsNCiAgICAgZmlsdGVyTGlzdEZvclJlbW92YWwobV9kZWZlcnJlZFRleHRDaGFuZ2VkTGlzdCwg
ZG9jdW1lbnQsIG5vZGVzVG9SZW1vdmUpOw0KICAgICBmaWx0ZXJMaXN0Rm9yUmVtb3ZhbChtX2Rl
ZmVycmVkQ2hpbGRyZW5DaGFuZ2VkTm9kZUxpc3QsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsN
CiAgICAgZmlsdGVyTWFwRm9yUmVtb3ZhbChtX2RlZmVycmVkVGV4dEZvcm1Db250cm9sVmFsdWUs
IGRvY3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsNCiAgICAgZmlsdGVyTWFwRm9yUmVtb3ZhbChtX2Rl
ZmVycmVkQXR0cmlidXRlQ2hhbmdlLCBkb2N1bWVudCwgbm9kZXNUb1JlbW92ZSk7DQogICAgIGZp
bHRlclZlY3RvclBhaXJGb3JSZW1vdmFsKG1fZGVmZXJyZWRGb2N1c2VkTm9kZUNoYW5nZSwgZG9j
dW1lbnQsIG5vZGVzVG9SZW1vdmUpOw0KLQ0KKyAgICANCiAgICAgZm9yIChhdXRvKiBub2RlIDog
bm9kZXNUb1JlbW92ZSkNCiAgICAgICAgIHJlbW92ZSgqbm9kZSk7DQogfQ0KQEAgLTMwNzIsOCAr
MzA4MCw5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVVcGRhdGUo
KQ0KICAgICB9DQogICAgIG1fZGVmZXJyZWRDaGlsZHJlbkNoYW5nZWROb2RlTGlzdC5jbGVhcigp
Ow0KIA0KLSAgICBmb3IgKGF1dG8mIGNoaWxkIDogbV9kZWZlcnJlZENoaWxkcmVuQ2hhbmdlZExp
c3QpDQorICAgIGZvciAoYXV0byYgY2hpbGQgOiBtX2RlZmVycmVkQ2hpbGRyZW5DaGFuZ2VkTGlz
dCkgew0KICAgICAgICAgY2hpbGQtPmNoaWxkcmVuQ2hhbmdlZCgpOw0KKyAgICB9DQogICAgIG1f
ZGVmZXJyZWRDaGlsZHJlbkNoYW5nZWRMaXN0LmNsZWFyKCk7DQogDQogICAgIGZvciAoYXV0byog
bm9kZSA6IG1fZGVmZXJyZWRUZXh0Q2hhbmdlZExpc3QpDQpAQCAtMzEwNCw2ICszMTEzLDEwIEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVVcGRhdGUoKQ0KICAgICAg
ICAgaGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoZGVmZXJyZWRGb2N1c2VkQ2hhbmdlQ29u
dGV4dC5maXJzdCwgZGVmZXJyZWRGb2N1c2VkQ2hhbmdlQ29udGV4dC5zZWNvbmQpOw0KICAgICBt
X2RlZmVycmVkRm9jdXNlZE5vZGVDaGFuZ2UuY2xlYXIoKTsNCiANCisgICAgZm9yIChhdXRvJiBk
ZWZlcnJlZE1vZGFsQ2hhbmdlZEVsZW1lbnQgOiBtX2RlZmVycmVkTW9kYWxDaGFuZ2VkTGlzdCkN
CisgICAgICAgIGhhbmRsZU1vZGFsQ2hhbmdlKGRlZmVycmVkTW9kYWxDaGFuZ2VkRWxlbWVudCk7
DQorICAgIG1fZGVmZXJyZWRNb2RhbENoYW5nZWRMaXN0LmNsZWFyKCk7DQorDQogICAgIHBsYXRm
b3JtUGVyZm9ybURlZmVycmVkQ2FjaGVVcGRhdGUoKTsNCiB9DQogICAgIA0KQEAgLTMyOTYsMTUg
KzMzMDksMTYgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQ0KICAgICAgICAg
ICAgIGNvbnN0IEF0b21TdHJpbmcmIGFyaWFIaWRkZW5WYWx1ZSA9IGRvd25jYXN0PEVsZW1lbnQ+
KCp0ZXN0Tm9kZSkuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihhcmlhX2hpZGRlbkF0
dHIpOw0KICAgICAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShhcmlh
SGlkZGVuVmFsdWUsICJ0cnVlIikpDQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCi0g
ICAgICAgICAgICANCisNCisgICAgICAgICAgICAvLyBXZSBzaG91bGQgYnJlYWsgZWFybHkgd2hl
biBpdCBnZXRzIHRvIHRoZSBib2R5Lg0KKyAgICAgICAgICAgIGlmICh0ZXN0Tm9kZS0+aGFzVGFn
TmFtZShib2R5VGFnKSkNCisgICAgICAgICAgICAgICAgYnJlYWs7DQorDQogICAgICAgICAgICAg
Ym9vbCBhcmlhSGlkZGVuRmFsc2UgPSBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShhcmlh
SGlkZGVuVmFsdWUsICJmYWxzZSIpOw0KICAgICAgICAgICAgIGlmICghdGVzdE5vZGUtPnJlbmRl
cmVyKCkgJiYgIWFyaWFIaWRkZW5GYWxzZSkNCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
Ow0KICAgICAgICAgICAgIGlmICghYXJpYUhpZGRlbkZhbHNlUHJlc2VudCAmJiBhcmlhSGlkZGVu
RmFsc2UpDQogICAgICAgICAgICAgICAgIGFyaWFIaWRkZW5GYWxzZVByZXNlbnQgPSB0cnVlOw0K
LSAgICAgICAgICAgIC8vIFdlIHNob3VsZCBicmVhayBlYXJseSB3aGVuIGl0IGdldHMgdG8gYSBy
ZW5kZXJlZCBvYmplY3QuDQotICAgICAgICAgICAgaWYgKHRlc3ROb2RlLT5yZW5kZXJlcigpKQ0K
LSAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgIH0NCiAgICAgfQ0KICAgICANCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQppbmRleCAxY2YyZDY4
NWUwYy4uYjQ0ZmIxMTVjZDkgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmgNCkBAIC0xOTAsNiArMTkwLDcgQEAgcHVibGljOg0KICAgICB2b2lkIHVw
ZGF0ZUNhY2hlQWZ0ZXJOb2RlSXNBdHRhY2hlZChOb2RlKik7DQogDQogICAgIHZvaWQgZGVmZXJG
b2N1c2VkVUlFbGVtZW50Q2hhbmdlSWZOZWVkZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUq
IG5ld0ZvY3VzZWROb2RlKTsNCisgICAgdm9pZCBkZWZlck1vZGFsQ2hhbmdlKEVsZW1lbnQqIGVs
ZW1lbnQpOw0KICAgICB2b2lkIGhhbmRsZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSogYW5j
aG9yTm9kZSk7DQogICAgIHZvaWQgaGFuZGxlU2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKTsN
CiAgICAgDQpAQCAtNDYyLDEwICs0NjMsMTAgQEAgcHJpdmF0ZToNCiANCiAgICAgLy8gYXJpYS1t
b2RhbCByZWxhdGVkDQogICAgIHZvaWQgZmluZE1vZGFsTm9kZXMoKTsNCi0gICAgTm9kZSogY3Vy
cmVudE1vZGFsTm9kZSgpOw0KKyAgICBFbGVtZW50KiBjdXJyZW50TW9kYWxOb2RlKCk7DQogICAg
IGJvb2wgaXNOb2RlVmlzaWJsZShOb2RlKikgY29uc3Q7DQotICAgIHZvaWQgaGFuZGxlTW9kYWxD
aGFuZ2UoTm9kZSopOw0KLQ0KKyAgICB2b2lkIGhhbmRsZU1vZGFsQ2hhbmdlKEVsZW1lbnQmKTsN
CisgICAgDQogICAgIERvY3VtZW50JiBtX2RvY3VtZW50Ow0KICAgICBjb25zdCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gbV9wYWdlSUQ7IC8vIGNvbnN0YW50IGZvciBvYmplY3QncyBsaWZldGlt
ZS4NCiAgICAgSGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2Jq
ZWN0czsNCkBAIC00OTAsOCArNDkxLDEwIEBAIHByaXZhdGU6DQogICAgIExpc3RIYXNoU2V0PFJl
ZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9saXZlUmVnaW9uT2JqZWN0c1NldDsNCiANCiAg
ICAgVGltZXIgbV9mb2N1c01vZGFsTm9kZVRpbWVyOw0KLSAgICBOb2RlKiBtX2N1cnJlbnRNb2Rh
bE5vZGU7DQotICAgIExpc3RIYXNoU2V0PE5vZGUqPiBtX21vZGFsTm9kZXNTZXQ7DQorICAgIFdl
YWtQdHI8RWxlbWVudD4gbV9jdXJyZW50TW9kYWxFbGVtZW50Ow0KKyAgICAvLyBNdWx0aXBsZSBh
cmlhLW1vZGFscyBiZWhhdmlvciBpcyB1bmRlZmluZWQgYnkgc3BlYy4gV2Uga2VlcCB0aGVtIHNv
cnRlZCBiYXNlZCBvbiBET00gb3JkZXIgaGVyZS4NCisgICAgLy8gSWYgdGhhdCBjaGFuZ2VzIHRv
IHJlcXVpcmUgb25seSBvbmUgYXJpYS1tb2RhbCB3ZSBjb3VsZCBjaGFuZ2UgdGhpcyB0byBhIFdl
YWtIYXNoU2V0LCBvciBkaXNjYXJkIHRoZSBzZXQgY29tcGxldGVseS4NCisgICAgTGlzdEhhc2hT
ZXQ8RWxlbWVudCo+IG1fbW9kYWxFbGVtZW50c1NldDsNCiAgICAgYm9vbCBtX21vZGFsTm9kZXNJ
bml0aWFsaXplZCB7IGZhbHNlIH07DQogDQogICAgIFRpbWVyIG1fcGVyZm9ybUNhY2hlVXBkYXRl
VGltZXI7DQpAQCAtNTAyLDYgKzUwNSw3IEBAIHByaXZhdGU6DQogICAgIFdlYWtIYXNoU2V0PEVs
ZW1lbnQ+IG1fZGVmZXJyZWRTZWxlY3RlZENoaWxkcmVkQ2hhbmdlZExpc3Q7DQogICAgIExpc3RI
YXNoU2V0PFJlZlB0cjxBWENvcmVPYmplY3Q+PiBtX2RlZmVycmVkQ2hpbGRyZW5DaGFuZ2VkTGlz
dDsNCiAgICAgTGlzdEhhc2hTZXQ8Tm9kZSo+IG1fZGVmZXJyZWRDaGlsZHJlbkNoYW5nZWROb2Rl
TGlzdDsNCisgICAgV2Vha0hhc2hTZXQ8RWxlbWVudD4gbV9kZWZlcnJlZE1vZGFsQ2hhbmdlZExp
c3Q7DQogICAgIEhhc2hNYXA8RWxlbWVudCosIFN0cmluZz4gbV9kZWZlcnJlZFRleHRGb3JtQ29u
dHJvbFZhbHVlOw0KICAgICBIYXNoTWFwPEVsZW1lbnQqLCBRdWFsaWZpZWROYW1lPiBtX2RlZmVy
cmVkQXR0cmlidXRlQ2hhbmdlOw0KICAgICBWZWN0b3I8c3RkOjpwYWlyPE5vZGUqLCBOb2RlKj4+
IG1fZGVmZXJyZWRGb2N1c2VkTm9kZUNoYW5nZTsNCkBAIC01NzMsNyArNTc3LDggQEAgaW5saW5l
IHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24oRnJhbWUq
LCBBWExvYWRpbmdFdmVudCkNCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRp
bmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRp
bmdFdmVudCkgeyB9DQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQWN0aXZlRGVz
Y2VuZGFudENoYW5nZWQoTm9kZSopIHsgfQ0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Omhh
bmRsZUFyaWFFeHBhbmRlZENoYW5nZShOb2RlKikgeyB9DQotaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6aGFuZGxlTW9kYWxDaGFuZ2UoTm9kZSopIHsgfQ0KK2lubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OmhhbmRsZU1vZGFsQ2hhbmdlKEVsZW1lbnQqKSB7IH0NCitpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpkZWZlck1vZGFsQ2hhbmdlKEVsZW1lbnQqKSB7IH0NCiBpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpoYW5kbGVBcmlhUm9sZUNoYW5nZWQoTm9kZSopIHsgfQ0KIGlubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyQXR0cmlidXRlQ2hhbmdlSWZOZWVkZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIEVsZW1lbnQqKSB7IH0NCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpo
YW5kbGVBdHRyaWJ1dGVDaGFuZ2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKSB7IH0N
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcA0KaW5kZXggNjIyNDlhMzgxNTEuLjczNzA2ODVhZDQ3IDEwMDY0
NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcA0KQEAgLTIyOCw3ICsyMjgsOCBAQCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpmaXJzdENoaWxkKCkgY29uc3QNCiAgICAg
aWYgKCFmaXJzdENoaWxkICYmICFjYW5IYXZlQ2hpbGRyZW4oKSkNCiAgICAgICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Zmlyc3RDaGlsZCgpOw0KIA0KLSAgICByZXR1cm4gYXhP
YmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShmaXJzdENoaWxkKTsNCisgICAgYXV0byBvYmplY3RD
YWNoZSA9IGF4T2JqZWN0Q2FjaGUoKTsNCisgICAgcmV0dXJuIG9iamVjdENhY2hlID8gb2JqZWN0
Q2FjaGUtPmdldE9yQ3JlYXRlKGZpcnN0Q2hpbGQpIDogbnVsbHB0cjsNCiB9DQogDQogQWNjZXNz
aWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGFzdENoaWxkKCkgY29u
c3QNCkBAIC0yNDEsNyArMjQyLDggQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6bGFzdENoaWxkKCkgY29uc3QNCiAgICAgaWYgKCFsYXN0Q2hpbGQgJiYg
IWNhbkhhdmVDaGlsZHJlbigpKQ0KICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjpsYXN0Q2hpbGQoKTsNCiANCi0gICAgcmV0dXJuIGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JD
cmVhdGUobGFzdENoaWxkKTsNCisgICAgYXV0byBvYmplY3RDYWNoZSA9IGF4T2JqZWN0Q2FjaGUo
KTsNCisgICAgcmV0dXJuIG9iamVjdENhY2hlID8gb2JqZWN0Q2FjaGUtPmdldE9yQ3JlYXRlKGxh
c3RDaGlsZCkgOiBudWxscHRyOw0KIH0NCiANCiBzdGF0aWMgaW5saW5lIFJlbmRlcklubGluZSog
c3RhcnRPZkNvbnRpbnVhdGlvbnMoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikNCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402219</attachid>
            <date>2020-06-18 11:48:44 -0700</date>
            <delta_ts>2020-06-18 13:32:53 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_212849.txt</filename>
            <type>text/plain</type>
            <size>26377</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggNWEwODlkNDQ1ZTYuLmEwNTE1MDRkOGU5IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTgg
QEANCisyMDIwLTA2LTE4ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogYXJpYS1tb2RhbCBub2RlcyB3cmFwcGVkIGluIGFyaWEtaGlkZGVuIGFy
ZSBub3QgaG9ub3JlZA0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMjg0OQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0MDQ3MDE5Pg0KKw0KKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvYXJpYS1oaWRkZW4tbmVnYXRlcy1uby12aXNpYmlsaXR5LWV4cGVjdGVkLnR4dDoNCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1uZWdhdGVzLW5vLXZpc2liaWxpdHku
aHRtbDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLW1vZGFsLWluLWFyaWEtaGlkZGVu
LWV4cGVjdGVkLnR4dDogQWRkZWQuDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1tb2Rh
bC1pbi1hcmlhLWhpZGRlbi5odG1sOiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9h
cmlhLW1vZGFsLmh0bWw6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbW9kYWwt
YXV0by1mb2N1cy5odG1sOg0KKw0KIDIwMjAtMDYtMTggIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBp
bm9AaWdhbGlhLmNvbT4NCiANCiAgICAgICAgIFtHVEtdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5p
bmcuIFVwZGF0ZSBzdGF0dXMgb2YgZmxha3kgdGltZW91dCBmYWlsdXJlcyBhZnRlciByMjYzMjA2
Lg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tbmVn
YXRlcy1uby12aXNpYmlsaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvYXJpYS1oaWRkZW4tbmVnYXRlcy1uby12aXNpYmlsaXR5LWV4cGVjdGVkLnR4dA0KaW5kZXgg
YmI1ZWNmYjAyM2YuLmNhZDI0M2EwMmIwIDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9hcmlhLWhpZGRlbi1uZWdhdGVzLW5vLXZpc2liaWxpdHktZXhwZWN0ZWQudHh0DQor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLW5lZ2F0ZXMtbm8tdmlz
aWJpbGl0eS1leHBlY3RlZC50eHQNCkBAIC0yLDcgKzIsNiBAQCBoZWFkaW5nMS4yDQogDQogDQog
DQotDQogVGhpcyB0ZXN0cyBlbnN1cmVzIHRoYXQgYXJpYS1oaWRkZW49ZmFsc2Ugd2lsbCBhbGxv
dyBhIG5vZGUgdG8gYmUgaW4gdGhlIEFYIGhpZXJhcmNoeSBldmVuIGlmIGl0J3Mgbm90IHJlbmRl
cmVkIG9yIHZpc2libGUNCiANCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuDQpAQCAtMTgsNyAr
MTcsNyBAQCBQQVNTIHBhcmVudC5jaGlsZEF0SW5kZXgoMSkuaXNFcXVhbChoZWFkaW5nMykgaXMg
dHJ1ZQ0KIFBBU1MgaGVhZGluZzQucm9sZSBpcyAnQVhSb2xlOiBBWEhlYWRpbmcnDQogUEFTUyBw
YXJlbnQuY2hpbGRBdEluZGV4KDIpLmlzRXF1YWwoaGVhZGluZzQpIGlzIHRydWUNCiBUZXh0Zmll
bGQgVGl0bGU6IEFYVGl0bGU6IA0KLVBBU1MgdmlkZW8uY2hpbGRyZW5Db3VudCBpcyAwDQorUEFT
UyAhdmlkZW8gfHwgdmlkZW8uY2hpbGRyZW5Db3VudCA9PSAwIGlzIHRydWUNCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlDQogDQogVEVTVCBDT01QTEVURQ0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tbmVnYXRlcy1uby12aXNpYmlsaXR5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLW5lZ2F0ZXMtbm8t
dmlzaWJpbGl0eS5odG1sDQppbmRleCA0NzRiNjA5ZmRjOC4uNDBiM2Y3NGVmODEgMTAwNjQ0DQot
LS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLW5lZ2F0ZXMtbm8tdmlz
aWJpbGl0eS5odG1sDQorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVu
LW5lZ2F0ZXMtbm8tdmlzaWJpbGl0eS5odG1sDQpAQCAtMTYsMTEgKzE2LDEzIEBADQogPGRpdiBo
aWRkZW4gYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iaGlkZGVuRGl2Ij5IaWRkZW5UZXh0MTwvZGl2
Pg0KIDxpbnB1dCB0eXBlPSJ0ZXh0IiBhcmlhLWxhYmVsbGVkYnk9ImhpZGRlbkRpdiIgaWQ9InRl
eHRGaWVsZFdpdGhIaWRkZW5MYWJlbGxlciI+DQogDQorPGRpdj4NCiA8ZGl2IGFyaWEtaGlkZGVu
PSJmYWxzZSI+DQotPHZpZGVvIGlkPSJ2aWRlbyI+DQorPHZpZGVvIGhpZGRlbiBpZD0idmlkZW8i
Pg0KIEhpZGRlbiBjb250ZW50DQogPC92aWRlbz4NCiA8L2Rpdj4NCis8L2Rpdj4NCiANCiA8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4NCiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCkBAIC02Myw3
ICs2NSw3IEBAIEhpZGRlbiBjb250ZW50DQogICAgICAgICANCiAgICAgICAgIC8vIGFyaWEtaGlk
ZGVuPSJmYWxzZSIgbmVlZCB0byBiZSBvbiBlYWNoIHBhcmVudCwgaW5jbHVkaW5nIHJlbmRlcmVk
IHBhcmVudHMuDQogICAgICAgICB2YXIgdmlkZW8gPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoInZpZGVvIik7DQotICAgICAgICBzaG91bGRCZSgidmlkZW8u
Y2hpbGRyZW5Db3VudCIsICIwIik7DQorICAgICAgICBzaG91bGRCZVRydWUoIiF2aWRlbyB8fCB2
aWRlby5jaGlsZHJlbkNvdW50ID09IDAiKTsNCiAgICAgfQ0KIA0KIDwvc2NyaXB0Pg0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1tb2RhbC1pbi1hcmlhLWhpZGRl
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbW9kYWwtaW4t
YXJpYS1oaWRkZW4tZXhwZWN0ZWQudHh0DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw
MDAwMDAwMDAuLmZiYWMyZTY1NDAyDQotLS0gL2Rldi9udWxsDQorKysgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2FyaWEtbW9kYWwtaW4tYXJpYS1oaWRkZW4tZXhwZWN0ZWQudHh0DQpAQCAt
MCwwICsxLDE0IEBADQorVGhpcyB0ZXN0cyB0aGF0IHdoZW4gc29tZXRoaW5nIGlzIGFyaWEtbW9k
YWwgaW5zaWRlIGFuIGFyaWEtaGlkZGVuIGl0IGlzIGlnbm9yZWQuDQorDQorT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLg0KKw0KKw0KK1BBU1MgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCdiZ0NvbnRlbnQnKS5pc0lnbm9yZWQgaXMgZmFsc2UNCitQQVNTIGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgnYmdDb250ZW50Jykg
aXMgbnVsbA0KK1BBU1MgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKCdiZ0NvbnRlbnQnKS5pc0lnbm9yZWQgaXMgZmFsc2UNCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KK090aGVyIHBhZ2UgY29udGVudCB3aXRo
IGEgZHVtbXkgZm9jdXNhYmxlIGVsZW1lbnQNCisNCitKdXN0IGFuIGV4YW1wbGUuDQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLW1vZGFsLWluLWFyaWEtaGlkZGVu
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbW9kYWwtaW4tYXJpYS1oaWRk
ZW4uaHRtbA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4xMTA4OTJm
NWMxZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlh
LW1vZGFsLWluLWFyaWEtaGlkZGVuLmh0bWwNCkBAIC0wLDAgKzEsNDUgQEANCis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+DQorPGh0bWw+DQorPGhlYWQ+DQor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9o
ZWFkPg0KKw0KKzxib2R5IGlkPSJib2R5Ij4NCisNCis8ZGl2IGlkPSJiZyI+DQorPHAgaWQ9ImJn
Q29udGVudCI+T3RoZXIgcGFnZSBjb250ZW50IHdpdGggPGEgaHJlZj0iIyI+YSBkdW1teSBmb2N1
c2FibGUgZWxlbWVudDwvYT48L3A+DQorPC9kaXY+DQorDQorPGRpdiBpZD0iY29udGFpbmVyIj4N
CisgICAgPGRpdiByb2xlPSJkaWFsb2ciIGFyaWEtbW9kYWw9ImZhbHNlIiBpZD0iYm94Ij4NCisg
ICAgICAgIDxoMyBpZD0ibXlEaWFsb2ciPkp1c3QgYW4gZXhhbXBsZS48L2gzPg0KKyAgICA8L2Rp
dj4NCis8L2Rpdj4NCisNCisNCis8c2NyaXB0Pg0KKw0KKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0cyB0aGF0IHdoZW4gc29tZXRoaW5nIGlzIGFyaWEtbW9kYWwgaW5zaWRlIGFuIGFyaWEtaGlk
ZGVuIGl0IGlzIGlnbm9yZWQuIik7DQorICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsN
CisNCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgew0KKyAgICAgICAg
c2hvdWxkQmVGYWxzZSgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKCdiZ0NvbnRlbnQnKS5pc0lnbm9yZWQiKTsNCisgICAgICAgIA0KKyAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImJveCIpLnNldEF0dHJpYnV0ZSgiYXJpYS1tb2RhbCIsICJ0cnVl
Iik7DQorDQorICAgICAgICBzaG91bGRCZU51bGwoImFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFj
Y2Vzc2libGVFbGVtZW50QnlJZCgnYmdDb250ZW50JykiKTsNCisNCisgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwg
InRydWUiKTsNCisNCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQorICAgICAgICAg
ICAgc2hvdWxkQmVGYWxzZSgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1l
bnRCeUlkKCdiZ0NvbnRlbnQnKS5pc0lnbm9yZWQiKTsNCisgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsNCisgICAgICAgIH0sIDApOw0KKyAgICB9ICAgIA0KKw0KKzwvc2NyaXB0Pg0KKw0KKw0K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4NCis8
L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
YXJpYS1tb2RhbC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLW1vZGFsLmh0
bWwNCmluZGV4IGMwYTRiNjdhYTRiLi43ODdlNWUxZThlMSAxMDA2NDQNCi0tLSBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1tb2RhbC5odG1sDQorKysgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2FyaWEtbW9kYWwuaHRtbA0KQEAgLTIxLDcgKzIxLDcgQEANCiA8c2NyaXB0Pg0K
IA0KICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IGFyaWEtbW9kYWwgb24gZGlhbG9n
IG1ha2VzIG90aGVyIGVsZW1lbnRzIGluZXJ0LiIpOw0KLQ0KKyAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsNCiAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgew0KICAgICAg
ICAgLy8gQmFja2dyb3VuZCBzaG91bGQgYmUgdW5hY2Nlc3NpYmxlIGFmdGVyIGxvYWRpbmcsIHNp
bmNlIHRoZSANCiAgICAgICAgIC8vIGRpYWxvZyBpcyBkaXNwbGF5ZWQgYW5kIGFyaWEtbW9kYWw9
dHJ1ZS4NCkBAIC00NywxMiArNDcsMTUgQEANCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJib3giKS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwgInRydWUiKTsNCiAgICAgICAg
IHNob3VsZEJlVHJ1ZSgiYmFja2dyb3VuZEFjY2Vzc2libGUoKSIpOw0KICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImJveCIpLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCAiZmFs
c2UiKTsNCi0gICAgICAgIHNob3VsZEJlRmFsc2UoImJhY2tncm91bmRBY2Nlc3NpYmxlKCkiKTsN
CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQorICAgICAgICAgICAgc2hvdWxkQmVG
YWxzZSgiYmFja2dyb3VuZEFjY2Vzc2libGUoKSIpOw0KICAgICAgICAgDQotICAgICAgICAvLyBU
ZXN0IG1vZGFsIGRpYWxvZyBpcyByZW1vdmVkIGZyb20gRE9NIHRyZWUuDQotICAgICAgICB2YXIg
ZGlhbG9nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveCIpOw0KLSAgICAgICAgZGlhbG9n
LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZGlhbG9nKTsNCi0gICAgICAgIHNob3VsZEJlVHJ1ZSgi
YmFja2dyb3VuZEFjY2Vzc2libGUoKSIpOw0KKyAgICAgICAgICAgIC8vIFRlc3QgbW9kYWwgZGlh
bG9nIGlzIHJlbW92ZWQgZnJvbSBET00gdHJlZS4NCisgICAgICAgICAgICB2YXIgZGlhbG9nID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveCIpOw0KKyAgICAgICAgICAgIGRpYWxvZy5wYXJl
bnROb2RlLnJlbW92ZUNoaWxkKGRpYWxvZyk7DQorICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJi
YWNrZ3JvdW5kQWNjZXNzaWJsZSgpIik7DQorICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7DQor
ICAgICAgICAgfSwgMCk7DQogICAgIH0NCiAgICAgDQogICAgIGZ1bmN0aW9uIGJhY2tncm91bmRB
Y2Nlc3NpYmxlKCkgew0KQEAgLTgyLDQgKzg1LDQgQEANCiANCiA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+DQogPC9ib2R5Pg0KLTwvaHRtbD4NClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLW1vZGFsLWF1dG8tZm9jdXMuaHRtbCBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbW9kYWwtYXV0by1mb2N1cy5odG1sDQppbmRl
eCAxNmMyNjU0OWFjNy4uNWUyNmY1NTBjYmYgMTAwNjQ0DQotLS0gYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9hcmlhLW1vZGFsLWF1dG8tZm9jdXMuaHRtbA0KKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1tb2RhbC1hdXRvLWZvY3VzLmh0bWwNCkBAIC00OSwx
NCArNDksMTcgQEANCiAgICAgICAgICAgICBzaG91bGRCZVRydWUoIm5ld0J0bi5pc0ZvY3VzZWQi
KTsNCiAgICAgICAgICAgICANCiAgICAgICAgICAgICAvLyAyLiBDbGljayB0aGUgbmV3IGJ1dHRv
biwgZGlhbG9nMiBzaG93cyBhbmQgZm9jdXMgc2hvdWxkIG1vdmUgdG8gdGhlIGNsb3NlIGJ1dHRv
bi4NCisgICAgICAgICAgICAvLyBTZXQgYXJpYS1tb2RhbCB0byBmYWxzZSBvbiB0aGUgcHJldmlv
dXMgbW9kYWwgb2JqZWN0ICh3ZSBzaG91bGRuJ3QgaGF2ZSB0d28gbW9kYWxzIGluIHBsYXkpLg0K
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXciKS5jbGljaygpOw0KKyAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3giKS5hcmlhTW9kYWwgPSBmYWxz
ZTsNCiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgICAgICAgICAgICAg
ICBjbG9zZUJ0biA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgiY2xvc2UiKTsNCiAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJjbG9zZUJ0bi5pc0Zv
Y3VzZWQiKTsNCiAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgLy8gMy4gQ2xp
Y2sgdGhlIGNsb3NlIGJ1dHRvbiwgZGlhbG9nMiBjbG9zZXMgYW5kIGZvY3VzIHNob3VsZCBnbyBi
YWNrIHRvIHRoZQ0KLSAgICAgICAgICAgICAgICAvLyBmaXJzdCBmb2N1c2FibGUgY2hpbGQgb2Yg
ZGlhbG9nMS4NCisgICAgICAgICAgICAgICAgLy8gZmlyc3QgZm9jdXNhYmxlIGNoaWxkIG9mIGRp
YWxvZzEsIHdoaWNoIHdlIG5vdyBuZWVkIHRvIGFkZCBhcmlhLW1vZGFsIGJhY2sgdG8uDQogICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZSIpLmNsaWNrKCk7DQor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3giKS5hcmlhTW9kYWwg
PSB0cnVlOw0KICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7DQogICAgICAg
ICAgICAgICAgICAgICBva0J0biA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVF
bGVtZW50QnlJZCgib2siKTsNCiAgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgib2tC
dG4uaXNGb2N1c2VkIik7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQppbmRleCA4ODg0MWRiOTI2MS4uZTk3NDU5NDMyODEg
MTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZw0KQEAgLTEsMyArMSw0NCBAQA0KKzIwMjAtMDYtMTggIENocmlzIEZsZWl6
YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBhcmlhLW1vZGFsIG5v
ZGVzIHdyYXBwZWQgaW4gYXJpYS1oaWRkZW4gYXJlIG5vdCBob25vcmVkDQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyODQ5DQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNjQwNDcwMTk+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4NCisNCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvYXJpYS1tb2RhbC1pbi1hcmlh
LWhpZGRlbi5odG1sDQorDQorICAgICAgICBJZiBhcmlhLW1vZGFsIHdhcyB3cmFwcGVkIGluc2lk
ZSBhcmlhLWhpZGRlbiwgd2Ugd2VyZSBzdGlsbCBwcm9jZXNzaW5nIHRoYXQgYXMgdGhlIG1vZGFs
IG5vZGUuDQorICAgICAgICBGaXhpbmcgdGhhdCB1bmNvdmVyZWQgYSBob3N0IG9mIHZlcnkgZmlu
aWNreSBpc3N1ZXMgcmVsYXRlZCB0byBhcmlhLW1vZGFsLg0KKyAgICAgICAgMS4gV2Ugd2VyZSBw
cm9jZXNzaW5nIG1vZGFsIHN0YXR1cyBpbW1lZGlhdGVseSBpbnN0ZWFkIG9mIGFmdGVyIGEgZGVs
YXksIHNvIHZpc2liaWxpdHkgcmVxdWlyZW1lbnRzIHdlcmUgbm90IGNvcnJlY3QuDQorICAgICAg
ICAyLiBJbiBoYW5kbGVNb2RhbENoYW5nZTogV2Ugd2VyZSBwcm9jZXNzaW5nIG11bHRpcGxlIG1v
ZGFsIG5vZGVzIHBlcmhhcHMgaW5jb3JyZWN0bHkgKHRoZSBzcGVjIGRvZXNuJ3QgYWNjb3VudCBm
b3IgbXVsdGlwbGUgbW9kYWwgbm9kZXMpLiANCisgICAgICAgICAgICAgLSBoYWQgdG8gdXBkYXRl
IGEgdGVzdCB0byB0dXJuIG9mZiBtb2RhbCBzdGF0dXMgYmVmb3JlIGFkZGluZyBhIG5ldyBtb2Rh
bCBub2RlDQorICAgICAgICAzLiBDaGFuZ2VkIHRoZSBtb2RhbCBub2RlIHRvIGEgV2Vha1B0cg0K
KyAgICAgICAgNC4gSW4gaXNOb2RlQXJpYVZpc2libGU6IFdlIHN0b3BwZWQgcHJvY2Vzc2luZyBm
b3IgdmlzaWJpbGUgd2l0aCBhcmlhLWhpZGRlbiBhcyBzb29uIGFzIHdlIGhpdCBhIHJlbmRlcmFi
bGUgYmxvY2ssIGJ1dCB0aGF0IG1lYW5zIGl0IHdvbid0IGFjY291bnQNCisgICAgICAgICAgIGZv
ciBub2RlcyBoaWdoZXIgaW4gdGhlIHRyZWUgd2l0aCBhcmlhLWhpZGRlbi4NCisgICAgICAgIDUu
IEluIGhhbmRsZUF0dHJpYnV0ZUNoYW5nZTogaWYgYXJpYS1oaWRkZW4gY2hhbmdlcywgd2Ugc2hv
dWxkIHVwZGF0ZSBtb2RhbCBzdGF0dXMgaWYgbmVlZGVkLg0KKyAgICAgICAgNi4gSW4gZm9jdXNN
b2RhbE5vZGVUaW1lckZpcmVkOiB3ZSBuZWVkIHRvIHZlcmlmeSB0aGUgZWxlbWVudCBpcyBzdGls
bCBsaXZlLCBvdGhlcndpc2UgaXQgY2FuIGxlYWQgdG8gYSBjcmFzaC4NCisNCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpBWE9iamVjdENhY2hlKToNCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpmaW5kTW9kYWxOb2Rlcyk6DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
Y3VycmVudE1vZGFsTm9kZSk6DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bW9k
YWxOb2RlKToNCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyZW1vdmUpOg0KKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmRlZmVyTW9kYWxDaGFuZ2UpOg0KKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmZvY3VzTW9kYWxOb2RlVGltZXJGaXJlZCk6DQor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKToN
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVNb2RhbENoYW5nZSk6DQor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cHJlcGFyZUZvckRvY3VtZW50RGVzdHJ1
Y3Rpb24pOg0KKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJl
ZENhY2hlVXBkYXRlKToNCisgICAgICAgIChXZWJDb3JlOjppc05vZGVBcmlhVmlzaWJsZSk6DQor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOg0KKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1vZGFsQ2hhbmdlKToNCisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpkZWZlck1vZGFsQ2hhbmdlKToNCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpmaXJzdENoaWxkIGNvbnN0KToNCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsYXN0Q2hpbGQgY29uc3QpOg0KKw0K
IDIwMjAtMDYtMTggIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4NCiANCiAgICAg
ICAgIFtJUEMgaGFyZGVuaW5nXSBPcHRpb25TZXQ8PiB2YWx1ZXMgc2hvdWxkIGJlIHZhbGlkYXRl
ZA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwDQpp
bmRleCA4ZDcyZTc2ZGM2MC4uOTI5YmZkYTJkODQgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwDQpAQCAtMjE5LDcgKzIxOSw3IEBAIEFYT2Jq
ZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KQ0KICAgICAsIG1fcGFz
c3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpwYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQ0KICAgICAsIG1fbGl2ZVJlZ2lvbkNoYW5nZWRQ
b3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpsaXZlUmVnaW9uQ2hhbmdlZE5vdGlmaWNh
dGlvblBvc3RUaW1lckZpcmVkKQ0KICAgICAsIG1fZm9jdXNNb2RhbE5vZGVUaW1lcigqdGhpcywg
JkFYT2JqZWN0Q2FjaGU6OmZvY3VzTW9kYWxOb2RlVGltZXJGaXJlZCkNCi0gICAgLCBtX2N1cnJl
bnRNb2RhbE5vZGUobnVsbHB0cikNCisgICAgLCBtX2N1cnJlbnRNb2RhbEVsZW1lbnQobnVsbHB0
cikNCiAgICAgLCBtX3BlcmZvcm1DYWNoZVVwZGF0ZVRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNo
ZTo6cGVyZm9ybUNhY2hlVXBkYXRlVGltZXJGaXJlZCkNCiB7DQogfQ0KQEAgLTI1MCwzOSArMjUw
LDM5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6ZmluZE1vZGFsTm9kZXMoKQ0KICAgICAgICAgaWYg
KCFlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbGVtZW50LT5hdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKGFyaWFfbW9kYWxBdHRyKSwgInRydWUiKSkNCiAgICAgICAgICAgICBj
b250aW51ZTsNCiANCi0gICAgICAgIG1fbW9kYWxOb2Rlc1NldC5hZGQoZWxlbWVudCk7DQorICAg
ICAgICBtX21vZGFsRWxlbWVudHNTZXQuYWRkKGVsZW1lbnQpOw0KICAgICB9DQogDQogICAgIG1f
bW9kYWxOb2Rlc0luaXRpYWxpemVkID0gdHJ1ZTsNCiB9DQogDQotTm9kZSogQVhPYmplY3RDYWNo
ZTo6Y3VycmVudE1vZGFsTm9kZSgpDQorRWxlbWVudCogQVhPYmplY3RDYWNoZTo6Y3VycmVudE1v
ZGFsTm9kZSgpDQogew0KICAgICAvLyBUaGVyZSBtaWdodCBiZSBtdWx0aXBsZSBub2RlcyB3aXRo
IGFyaWEtbW9kYWw9dHJ1ZSBzZXQuDQogICAgIC8vIFdlIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIHBp
Y2sgdGhlIG9uZSB3ZSB3YW50Lg0KLSAgICBtX2N1cnJlbnRNb2RhbE5vZGUgPSBudWxscHRyOw0K
LSAgICBpZiAobV9tb2RhbE5vZGVzU2V0LmlzRW1wdHkoKSkNCisgICAgbV9jdXJyZW50TW9kYWxF
bGVtZW50ID0gbnVsbHB0cjsNCisgICAgaWYgKG1fbW9kYWxFbGVtZW50c1NldC5pc0VtcHR5KCkp
DQogICAgICAgICByZXR1cm4gbnVsbHB0cjsNCiANCiAgICAgLy8gSWYgYW55IG9mIHRoZSBtb2Rh
bCBub2RlcyBjb250YWlucyB0aGUga2V5Ym9hcmQgZm9jdXMsIHdlIHdhbnQgdG8gcGljayB0aGF0
IG9uZS4NCiAgICAgLy8gSWYgbm90LCB3ZSB3YW50IHRvIHBpY2sgdGhlIGxhc3QgdmlzaWJsZSBk
aWFsb2cgaW4gdGhlIERPTS4NCiAgICAgUmVmUHRyPEVsZW1lbnQ+IGZvY3VzZWRFbGVtZW50ID0g
ZG9jdW1lbnQoKS5mb2N1c2VkRWxlbWVudCgpOw0KLSAgICBSZWZQdHI8Tm9kZT4gbGFzdFZpc2li
bGU7DQotICAgIGZvciAoYXV0byYgbm9kZSA6IG1fbW9kYWxOb2Rlc1NldCkgew0KLSAgICAgICAg
aWYgKGlzTm9kZVZpc2libGUobm9kZSkpIHsNCi0gICAgICAgICAgICBpZiAoZm9jdXNlZEVsZW1l
bnQgJiYgZm9jdXNlZEVsZW1lbnQtPmlzRGVzY2VuZGFudE9mKG5vZGUpKSB7DQotICAgICAgICAg
ICAgICAgIG1fY3VycmVudE1vZGFsTm9kZSA9IG5vZGU7DQorICAgIFJlZlB0cjxFbGVtZW50PiBs
YXN0VmlzaWJsZTsNCisgICAgZm9yIChhdXRvJiBlbGVtZW50IDogbV9tb2RhbEVsZW1lbnRzU2V0
KSB7DQorICAgICAgICBpZiAoaXNOb2RlVmlzaWJsZShlbGVtZW50KSkgew0KKyAgICAgICAgICAg
IGlmIChmb2N1c2VkRWxlbWVudCAmJiBmb2N1c2VkRWxlbWVudC0+aXNEZXNjZW5kYW50T2YoZWxl
bWVudCkpIHsNCisgICAgICAgICAgICAgICAgbV9jdXJyZW50TW9kYWxFbGVtZW50ID0gbWFrZVdl
YWtQdHIoZWxlbWVudCk7DQogICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgIH0N
CiANCi0gICAgICAgICAgICBsYXN0VmlzaWJsZSA9IG5vZGU7DQorICAgICAgICAgICAgbGFzdFZp
c2libGUgPSBlbGVtZW50Ow0KICAgICAgICAgfQ0KICAgICB9DQogDQotICAgIGlmICghbV9jdXJy
ZW50TW9kYWxOb2RlKQ0KLSAgICAgICAgbV9jdXJyZW50TW9kYWxOb2RlID0gbGFzdFZpc2libGUu
Z2V0KCk7DQorICAgIGlmICghbV9jdXJyZW50TW9kYWxFbGVtZW50KQ0KKyAgICAgICAgbV9jdXJy
ZW50TW9kYWxFbGVtZW50ID0gbWFrZVdlYWtQdHIobGFzdFZpc2libGUuZ2V0KCkpOw0KIA0KLSAg
ICByZXR1cm4gbV9jdXJyZW50TW9kYWxOb2RlOw0KKyAgICByZXR1cm4gbV9jdXJyZW50TW9kYWxF
bGVtZW50LmdldCgpOw0KIH0NCiANCiBib29sIEFYT2JqZWN0Q2FjaGU6OmlzTm9kZVZpc2libGUo
Tm9kZSogbm9kZSkgY29uc3QNCkBAIC0zMDQsMjMgKzMwNCwyMSBAQCBib29sIEFYT2JqZWN0Q2Fj
aGU6OmlzTm9kZVZpc2libGUoTm9kZSogbm9kZSkgY29uc3QNCiAgICAgcmV0dXJuIHRydWU7DQog
fQ0KIA0KKy8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdmFsaWQgYXJpYSBtb2RhbCBub2Rl
Lg0KIE5vZGUqIEFYT2JqZWN0Q2FjaGU6Om1vZGFsTm9kZSgpDQogew0KLSAgICAvLyBUaGlzIGZ1
bmN0aW9uIHJldHVybnMgdGhlIHZhbGlkIGFyaWEgbW9kYWwgbm9kZS4NCi0gICAgaWYgKCFtX21v
ZGFsTm9kZXNJbml0aWFsaXplZCkgew0KKyAgICBpZiAoIW1fbW9kYWxOb2Rlc0luaXRpYWxpemVk
KQ0KICAgICAgICAgZmluZE1vZGFsTm9kZXMoKTsNCi0gICAgICAgIHJldHVybiBjdXJyZW50TW9k
YWxOb2RlKCk7DQotICAgIH0NCiANCi0gICAgaWYgKG1fbW9kYWxOb2Rlc1NldC5pc0VtcHR5KCkp
DQorICAgIGlmIChtX21vZGFsRWxlbWVudHNTZXQuaXNFbXB0eSgpKQ0KICAgICAgICAgcmV0dXJu
IG51bGxwdHI7DQogDQogICAgIC8vIENoZWNrIHRoZSBjYWNoZWQgY3VycmVudCB2YWxpZCBhcmlh
IG1vZGFsIG5vZGUgZmlyc3QuDQogICAgIC8vIFVzdWFsbHkgd2hlbiBvbmUgZGlhbG9nIHNldHMg
YXJpYS1tb2RhbD10cnVlLCB0aGF0IGRpYWxvZyBpcyB0aGUgb25lIHdlIHdhbnQuDQotICAgIGlm
IChpc05vZGVWaXNpYmxlKG1fY3VycmVudE1vZGFsTm9kZSkpDQotICAgICAgICByZXR1cm4gbV9j
dXJyZW50TW9kYWxOb2RlOw0KKyAgICBpZiAoaXNOb2RlVmlzaWJsZShtX2N1cnJlbnRNb2RhbEVs
ZW1lbnQuZ2V0KCkpKQ0KKyAgICAgICAgcmV0dXJuIG1fY3VycmVudE1vZGFsRWxlbWVudC5nZXQo
KTsNCiANCi0gICAgLy8gUmVjb21wdXRlIHRoZSB2YWxpZCBhcmlhIG1vZGFsIG5vZGUgd2hlbiBt
X2N1cnJlbnRNb2RhbE5vZGUgaXMgbnVsbCBvciBoaWRkZW4uDQorICAgIC8vIFJlY29tcHV0ZSB0
aGUgdmFsaWQgYXJpYSBtb2RhbCBub2RlIHdoZW4gbV9jdXJyZW50TW9kYWxFbGVtZW50IGlzIG51
bGwgb3IgaGlkZGVuLg0KICAgICByZXR1cm4gY3VycmVudE1vZGFsTm9kZSgpOw0KIH0NCiANCkBA
IC04NjksNiArODY3LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoTm9kZSYgbm9kZSkN
CiAgICAgaWYgKGlzPEVsZW1lbnQ+KG5vZGUpKSB7DQogICAgICAgICBtX2RlZmVycmVkVGV4dEZv
cm1Db250cm9sVmFsdWUucmVtb3ZlKGRvd25jYXN0PEVsZW1lbnQ+KCZub2RlKSk7DQogICAgICAg
ICBtX2RlZmVycmVkQXR0cmlidXRlQ2hhbmdlLnJlbW92ZShkb3duY2FzdDxFbGVtZW50Pigmbm9k
ZSkpOw0KKyAgICAgICAgbV9tb2RhbEVsZW1lbnRzU2V0LnJlbW92ZShkb3duY2FzdDxFbGVtZW50
Pigmbm9kZSkpOw0KICAgICB9DQogICAgIG1fZGVmZXJyZWRDaGlsZHJlbkNoYW5nZWROb2RlTGlz
dC5yZW1vdmUoJm5vZGUpOw0KICAgICBtX2RlZmVycmVkVGV4dENoYW5nZWRMaXN0LnJlbW92ZSgm
bm9kZSk7DQpAQCAtODg1LDExICs4ODQsNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShO
b2RlJiBub2RlKQ0KICAgICByZW1vdmVOb2RlRm9yVXNlKG5vZGUpOw0KIA0KICAgICByZW1vdmUo
bV9ub2RlT2JqZWN0TWFwcGluZy50YWtlKCZub2RlKSk7DQotDQotICAgIGlmIChtX2N1cnJlbnRN
b2RhbE5vZGUgPT0gJm5vZGUpDQotICAgICAgICBtX2N1cnJlbnRNb2RhbE5vZGUgPSBudWxscHRy
Ow0KLSAgICBtX21vZGFsTm9kZXNTZXQucmVtb3ZlKCZub2RlKTsNCi0NCiAgICAgcmVtb3ZlKG5v
ZGUucmVuZGVyZXIoKSk7DQogfQ0KIA0KQEAgLTExODIsNiArMTE3NiwxMyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmRlZmVyRm9jdXNlZFVJRWxlbWVudENoYW5nZUlmTmVlZGVkKE5vZGUqIG9sZE5v
ZGUsIE5vZGUqIG5ldw0KICAgICB9IGVsc2UNCiAgICAgICAgIGhhbmRsZUZvY3VzZWRVSUVsZW1l
bnRDaGFuZ2VkKG9sZE5vZGUsIG5ld05vZGUpOw0KIH0NCisNCit2b2lkIEFYT2JqZWN0Q2FjaGU6
OmRlZmVyTW9kYWxDaGFuZ2UoRWxlbWVudCogZWxlbWVudCkNCit7DQorICAgIG1fZGVmZXJyZWRN
b2RhbENoYW5nZWRMaXN0LmFkZChlbGVtZW50KTsNCisgICAgaWYgKCFtX3BlcmZvcm1DYWNoZVVw
ZGF0ZVRpbWVyLmlzQWN0aXZlKCkpDQorICAgICAgICBtX3BlcmZvcm1DYWNoZVVwZGF0ZVRpbWVy
LnN0YXJ0T25lU2hvdCgwX3MpOw0KK30NCiAgICAgDQogdm9pZCBBWE9iamVjdENhY2hlOjpoYW5k
bGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGROb2RlLCBOb2RlKiBuZXdOb2RlKQ0K
IHsNCkBAIC0xNTgwLDE1ICsxNTgxLDE5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6Zm9jdXNNb2Rh
bE5vZGUoKQ0KIA0KIHZvaWQgQVhPYmplY3RDYWNoZTo6Zm9jdXNNb2RhbE5vZGVUaW1lckZpcmVk
KCkNCiB7DQotICAgIGlmICghbV9jdXJyZW50TW9kYWxOb2RlKQ0KKyAgICBpZiAoIW1fZG9jdW1l
bnQuaGFzTGl2aW5nUmVuZGVyVHJlZSgpKQ0KKyAgICAgICAgcmV0dXJuOw0KKw0KKyAgICBSZWY8
RG9jdW1lbnQ+IHByb3RlY3RlZERvY3VtZW50KG1fZG9jdW1lbnQpOw0KKyAgICBpZiAoIW5vZGVB
bmRSZW5kZXJlckFyZVZhbGlkKG1fY3VycmVudE1vZGFsRWxlbWVudC5nZXQoKSkgfHwgIWlzTm9k
ZVZpc2libGUobV9jdXJyZW50TW9kYWxFbGVtZW50LmdldCgpKSkNCiAgICAgICAgIHJldHVybjsN
CiAgICAgDQogICAgIC8vIERvbid0IHNldCBmb2N1cyBpZiB3ZSBhcmUgYWxyZWFkeSBmb2N1c2lu
ZyBvbnRvIHNvbWUgZWxlbWVudCB3aXRoaW4NCiAgICAgLy8gdGhlIGRpYWxvZy4NCi0gICAgaWYg
KG1fY3VycmVudE1vZGFsTm9kZS0+Y29udGFpbnMoZG9jdW1lbnQoKS5mb2N1c2VkRWxlbWVudCgp
KSkNCisgICAgaWYgKG1fY3VycmVudE1vZGFsRWxlbWVudC0+Y29udGFpbnMoZG9jdW1lbnQoKS5m
b2N1c2VkRWxlbWVudCgpKSkNCiAgICAgICAgIHJldHVybjsNCiAgICAgDQotICAgIGlmIChBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBjdXJyZW50TW9kYWxOb2RlT2JqZWN0ID0gZ2V0T3JDcmVhdGUobV9j
dXJyZW50TW9kYWxOb2RlKSkgew0KKyAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCogY3VycmVu
dE1vZGFsTm9kZU9iamVjdCA9IGdldE9yQ3JlYXRlKG1fY3VycmVudE1vZGFsRWxlbWVudC5nZXQo
KSkpIHsNCiAgICAgICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2FibGUgPSBmaXJz
dEZvY3VzYWJsZUNoaWxkKGN1cnJlbnRNb2RhbE5vZGVPYmplY3QpKQ0KICAgICAgICAgICAgIGZv
Y3VzYWJsZS0+c2V0Rm9jdXNlZCh0cnVlKTsNCiAgICAgfQ0KQEAgLTE2ODYsMTIgKzE2OTEsMTcg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUsIEVsZW1lbnQNCiAgICAgICAgIHNlbGVjdGVkQ2hpbGRyZW5DaGFu
Z2VkKGVsZW1lbnQpOw0KICAgICBlbHNlIGlmIChhdHRyTmFtZSA9PSBhcmlhX2V4cGFuZGVkQXR0
cikNCiAgICAgICAgIGhhbmRsZUFyaWFFeHBhbmRlZENoYW5nZShlbGVtZW50KTsNCi0gICAgZWxz
ZSBpZiAoYXR0ck5hbWUgPT0gYXJpYV9oaWRkZW5BdHRyKQ0KKyAgICBlbHNlIGlmIChhdHRyTmFt
ZSA9PSBhcmlhX2hpZGRlbkF0dHIpIHsNCiAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChlbGVtZW50
LT5wYXJlbnROb2RlKCksIGVsZW1lbnQpOw0KKyAgICAgICAgaWYgKG1fY3VycmVudE1vZGFsRWxl
bWVudCAmJiBtX2N1cnJlbnRNb2RhbEVsZW1lbnQtPmlzRGVzY2VuZGFudE9mKGVsZW1lbnQpKSB7
DQorICAgICAgICAgICAgbV9tb2RhbE5vZGVzSW5pdGlhbGl6ZWQgPSBmYWxzZTsNCisgICAgICAg
ICAgICBkZWZlck1vZGFsQ2hhbmdlKG1fY3VycmVudE1vZGFsRWxlbWVudC5nZXQoKSk7DQorICAg
ICAgICB9DQorICAgIH0NCiAgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gYXJpYV9pbnZhbGlkQXR0
cikNCiAgICAgICAgIHBvc3ROb3RpZmljYXRpb24oZWxlbWVudCwgQVhPYmplY3RDYWNoZTo6QVhJ
bnZhbGlkU3RhdHVzQ2hhbmdlZCk7DQogICAgIGVsc2UgaWYgKGF0dHJOYW1lID09IGFyaWFfbW9k
YWxBdHRyKQ0KLSAgICAgICAgaGFuZGxlTW9kYWxDaGFuZ2UoZWxlbWVudCk7DQorICAgICAgICBk
ZWZlck1vZGFsQ2hhbmdlKGVsZW1lbnQpOw0KICAgICBlbHNlIGlmIChhdHRyTmFtZSA9PSBhcmlh
X2N1cnJlbnRBdHRyKQ0KICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihlbGVtZW50LCBBWE9iamVj
dENhY2hlOjpBWEN1cnJlbnRDaGFuZ2VkKTsNCiAgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gYXJp
YV9kaXNhYmxlZEF0dHIpDQpAQCAtMTcwNiwxMiArMTcxNiw5IEBAIHZvaWQgQVhPYmplY3RDYWNo
ZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBF
bGVtZW50DQogICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKGVsZW1lbnQsIEFYT2JqZWN0Q2FjaGU6
OkFYQXJpYUF0dHJpYnV0ZUNoYW5nZWQpOw0KIH0NCiANCi12b2lkIEFYT2JqZWN0Q2FjaGU6Omhh
bmRsZU1vZGFsQ2hhbmdlKE5vZGUqIG5vZGUpDQordm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVN
b2RhbENoYW5nZShFbGVtZW50JiBlbGVtZW50KQ0KIHsNCi0gICAgaWYgKCFpczxFbGVtZW50Pihu
b2RlKSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAgaWYgKCFub2RlSGFzUm9sZShub2RlLCAi
ZGlhbG9nIikgJiYgIW5vZGVIYXNSb2xlKG5vZGUsICJhbGVydGRpYWxvZyIpKQ0KKyAgICBpZiAo
IW5vZGVIYXNSb2xlKCZlbGVtZW50LCAiZGlhbG9nIikgJiYgIW5vZGVIYXNSb2xlKCZlbGVtZW50
LCAiYWxlcnRkaWFsb2ciKSkNCiAgICAgICAgIHJldHVybjsNCiANCiAgICAgc3RvcENhY2hpbmdD
b21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsNCkBAIC0xNzE5LDE4ICsxNzI2LDE5IEBAIHZvaWQg
QVhPYmplY3RDYWNoZTo6aGFuZGxlTW9kYWxDaGFuZ2UoTm9kZSogbm9kZSkNCiAgICAgaWYgKCFt
X21vZGFsTm9kZXNJbml0aWFsaXplZCkNCiAgICAgICAgIGZpbmRNb2RhbE5vZGVzKCk7DQogDQot
ICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShkb3duY2FzdDxFbGVtZW50Pigq
bm9kZSkuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihhcmlhX21vZGFsQXR0ciksICJ0
cnVlIikpIHsNCi0gICAgICAgIC8vIEFkZCB0aGUgbmV3bHkgbW9kaWZpZWQgbm9kZSB0byB0aGUg
bW9kYWwgbm9kZXMgc2V0LCBhbmQgc2V0IGl0IHRvIGJlIHRoZSBjdXJyZW50IHZhbGlkIGFyaWEg
bW9kYWwgbm9kZS4NCisgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVsZW1l
bnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihhcmlhX21vZGFsQXR0ciksICJ0cnVl
IikpIHsNCisgICAgICAgIC8vIEFkZCB0aGUgbmV3bHkgbW9kaWZpZWQgbm9kZSB0byB0aGUgbW9k
YWwgbm9kZXMgc2V0Lg0KICAgICAgICAgLy8gV2Ugd2lsbCByZWNvbXB1dGUgdGhlIGN1cnJlbnQg
dmFsaWQgYXJpYSBtb2RhbCBub2RlIGluIG1vZGFsTm9kZSgpIHdoZW4gdGhpcyBub2RlIGlzIG5v
dCB2aXNpYmxlLg0KLSAgICAgICAgbV9tb2RhbE5vZGVzU2V0LmFkZChub2RlKTsNCi0gICAgICAg
IG1fY3VycmVudE1vZGFsTm9kZSA9IG5vZGU7DQorICAgICAgICBtX21vZGFsRWxlbWVudHNTZXQu
YWRkKCZlbGVtZW50KTsNCiAgICAgfSBlbHNlIHsNCi0gICAgICAgIC8vIFJlbW92ZSB0aGUgbm9k
ZSBmcm9tIHRoZSBtb2RhbCBub2RlcyBzZXQuIFRoZXJlIG1pZ2h0IGJlIG90aGVyIHZpc2libGUg
bW9kYWwgbm9kZXMsIHNvIHdlIHJlY29tcHV0ZSBoZXJlLg0KLSAgICAgICAgbV9tb2RhbE5vZGVz
U2V0LnJlbW92ZShub2RlKTsNCi0gICAgICAgIGN1cnJlbnRNb2RhbE5vZGUoKTsNCisgICAgICAg
IC8vIFJlbW92ZSB0aGUgbm9kZSBmcm9tIHRoZSBtb2RhbCBub2RlcyBzZXQuDQorICAgICAgICBt
X21vZGFsRWxlbWVudHNTZXQucmVtb3ZlKCZlbGVtZW50KTsNCiAgICAgfQ0KIA0KLSAgICBpZiAo
bV9jdXJyZW50TW9kYWxOb2RlKQ0KKyAgICAvLyBGaW5kIG5ldyBhY3RpdmUgbW9kYWwgbm9kZS4N
CisgICAgY3VycmVudE1vZGFsTm9kZSgpOw0KKw0KKyAgICBpZiAobV9jdXJyZW50TW9kYWxFbGVt
ZW50KQ0KICAgICAgICAgZm9jdXNNb2RhbE5vZGUoKTsNCiANCiAgICAgc3RhcnRDYWNoaW5nQ29t
cHV0ZWRPYmplY3RBdHRyaWJ1dGVzVW50aWxUcmVlTXV0YXRlcygpOw0KQEAgLTMwMjksMTMgKzMw
MzcsMTMgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwcmVwYXJlRm9yRG9jdW1lbnREZXN0cnVjdGlv
bihjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpDQogew0KICAgICBIYXNoU2V0PE5vZGUqPiBub2Rl
c1RvUmVtb3ZlOw0KICAgICBmaWx0ZXJMaXN0Rm9yUmVtb3ZhbChtX3RleHRNYXJrZXJOb2Rlcywg
ZG9jdW1lbnQsIG5vZGVzVG9SZW1vdmUpOw0KLSAgICBmaWx0ZXJMaXN0Rm9yUmVtb3ZhbChtX21v
ZGFsTm9kZXNTZXQsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsNCisgICAgZmlsdGVyTGlzdEZv
clJlbW92YWwobV9tb2RhbEVsZW1lbnRzU2V0LCBkb2N1bWVudCwgbm9kZXNUb1JlbW92ZSk7DQog
ICAgIGZpbHRlckxpc3RGb3JSZW1vdmFsKG1fZGVmZXJyZWRUZXh0Q2hhbmdlZExpc3QsIGRvY3Vt
ZW50LCBub2Rlc1RvUmVtb3ZlKTsNCiAgICAgZmlsdGVyTGlzdEZvclJlbW92YWwobV9kZWZlcnJl
ZENoaWxkcmVuQ2hhbmdlZE5vZGVMaXN0LCBkb2N1bWVudCwgbm9kZXNUb1JlbW92ZSk7DQogICAg
IGZpbHRlck1hcEZvclJlbW92YWwobV9kZWZlcnJlZFRleHRGb3JtQ29udHJvbFZhbHVlLCBkb2N1
bWVudCwgbm9kZXNUb1JlbW92ZSk7DQogICAgIGZpbHRlck1hcEZvclJlbW92YWwobV9kZWZlcnJl
ZEF0dHJpYnV0ZUNoYW5nZSwgZG9jdW1lbnQsIG5vZGVzVG9SZW1vdmUpOw0KICAgICBmaWx0ZXJW
ZWN0b3JQYWlyRm9yUmVtb3ZhbChtX2RlZmVycmVkRm9jdXNlZE5vZGVDaGFuZ2UsIGRvY3VtZW50
LCBub2Rlc1RvUmVtb3ZlKTsNCi0NCisgICAgDQogICAgIGZvciAoYXV0byogbm9kZSA6IG5vZGVz
VG9SZW1vdmUpDQogICAgICAgICByZW1vdmUoKm5vZGUpOw0KIH0NCkBAIC0zMTA0LDYgKzMxMTIs
MTAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSgpDQog
ICAgICAgICBoYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChkZWZlcnJlZEZvY3VzZWRDaGFu
Z2VDb250ZXh0LmZpcnN0LCBkZWZlcnJlZEZvY3VzZWRDaGFuZ2VDb250ZXh0LnNlY29uZCk7DQog
ICAgIG1fZGVmZXJyZWRGb2N1c2VkTm9kZUNoYW5nZS5jbGVhcigpOw0KIA0KKyAgICBmb3IgKGF1
dG8mIGRlZmVycmVkTW9kYWxDaGFuZ2VkRWxlbWVudCA6IG1fZGVmZXJyZWRNb2RhbENoYW5nZWRM
aXN0KQ0KKyAgICAgICAgaGFuZGxlTW9kYWxDaGFuZ2UoZGVmZXJyZWRNb2RhbENoYW5nZWRFbGVt
ZW50KTsNCisgICAgbV9kZWZlcnJlZE1vZGFsQ2hhbmdlZExpc3QuY2xlYXIoKTsNCisNCiAgICAg
cGxhdGZvcm1QZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSgpOw0KIH0NCiAgICAgDQpAQCAtMzI5
NiwxNSArMzMwOCwxNiBAQCBib29sIGlzTm9kZUFyaWFWaXNpYmxlKE5vZGUqIG5vZGUpDQogICAg
ICAgICAgICAgY29uc3QgQXRvbVN0cmluZyYgYXJpYUhpZGRlblZhbHVlID0gZG93bmNhc3Q8RWxl
bWVudD4oKnRlc3ROb2RlKS5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFyaWFfaGlk
ZGVuQXR0cik7DQogICAgICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KGFyaWFIaWRkZW5WYWx1ZSwgInRydWUiKSkNCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
Ow0KLSAgICAgICAgICAgIA0KKw0KKyAgICAgICAgICAgIC8vIFdlIHNob3VsZCBicmVhayBlYXJs
eSB3aGVuIGl0IGdldHMgdG8gdGhlIGJvZHkuDQorICAgICAgICAgICAgaWYgKHRlc3ROb2RlLT5o
YXNUYWdOYW1lKGJvZHlUYWcpKQ0KKyAgICAgICAgICAgICAgICBicmVhazsNCisNCiAgICAgICAg
ICAgICBib29sIGFyaWFIaWRkZW5GYWxzZSA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KGFyaWFIaWRkZW5WYWx1ZSwgImZhbHNlIik7DQogICAgICAgICAgICAgaWYgKCF0ZXN0Tm9kZS0+
cmVuZGVyZXIoKSAmJiAhYXJpYUhpZGRlbkZhbHNlKQ0KICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7DQogICAgICAgICAgICAgaWYgKCFhcmlhSGlkZGVuRmFsc2VQcmVzZW50ICYmIGFyaWFI
aWRkZW5GYWxzZSkNCiAgICAgICAgICAgICAgICAgYXJpYUhpZGRlbkZhbHNlUHJlc2VudCA9IHRy
dWU7DQotICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIGJyZWFrIGVhcmx5IHdoZW4gaXQgZ2V0cyB0
byBhIHJlbmRlcmVkIG9iamVjdC4NCi0gICAgICAgICAgICBpZiAodGVzdE5vZGUtPnJlbmRlcmVy
KCkpDQotICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgfQ0KICAgICB9DQogICAgIA0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgNCmluZGV4IDFj
ZjJkNjg1ZTBjLi4yZmU0NmUyNGJkNSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaA0KQEAgLTE5MCw2ICsxOTAsNyBAQCBwdWJsaWM6DQogICAgIHZv
aWQgdXBkYXRlQ2FjaGVBZnRlck5vZGVJc0F0dGFjaGVkKE5vZGUqKTsNCiANCiAgICAgdm9pZCBk
ZWZlckZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VJZk5lZWRlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwg
Tm9kZSogbmV3Rm9jdXNlZE5vZGUpOw0KKyAgICB2b2lkIGRlZmVyTW9kYWxDaGFuZ2UoRWxlbWVu
dCopOw0KICAgICB2b2lkIGhhbmRsZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSogYW5jaG9y
Tm9kZSk7DQogICAgIHZvaWQgaGFuZGxlU2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKTsNCiAg
ICAgDQpAQCAtNDYyLDEwICs0NjMsMTAgQEAgcHJpdmF0ZToNCiANCiAgICAgLy8gYXJpYS1tb2Rh
bCByZWxhdGVkDQogICAgIHZvaWQgZmluZE1vZGFsTm9kZXMoKTsNCi0gICAgTm9kZSogY3VycmVu
dE1vZGFsTm9kZSgpOw0KKyAgICBFbGVtZW50KiBjdXJyZW50TW9kYWxOb2RlKCk7DQogICAgIGJv
b2wgaXNOb2RlVmlzaWJsZShOb2RlKikgY29uc3Q7DQotICAgIHZvaWQgaGFuZGxlTW9kYWxDaGFu
Z2UoTm9kZSopOw0KLQ0KKyAgICB2b2lkIGhhbmRsZU1vZGFsQ2hhbmdlKEVsZW1lbnQmKTsNCisg
ICAgDQogICAgIERvY3VtZW50JiBtX2RvY3VtZW50Ow0KICAgICBjb25zdCBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gbV9wYWdlSUQ7IC8vIGNvbnN0YW50IGZvciBvYmplY3QncyBsaWZldGltZS4N
CiAgICAgSGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0
czsNCkBAIC00OTAsOCArNDkxLDEwIEBAIHByaXZhdGU6DQogICAgIExpc3RIYXNoU2V0PFJlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9saXZlUmVnaW9uT2JqZWN0c1NldDsNCiANCiAgICAg
VGltZXIgbV9mb2N1c01vZGFsTm9kZVRpbWVyOw0KLSAgICBOb2RlKiBtX2N1cnJlbnRNb2RhbE5v
ZGU7DQotICAgIExpc3RIYXNoU2V0PE5vZGUqPiBtX21vZGFsTm9kZXNTZXQ7DQorICAgIFdlYWtQ
dHI8RWxlbWVudD4gbV9jdXJyZW50TW9kYWxFbGVtZW50Ow0KKyAgICAvLyBNdWx0aXBsZSBhcmlh
LW1vZGFscyBiZWhhdmlvciBpcyB1bmRlZmluZWQgYnkgc3BlYy4gV2Uga2VlcCB0aGVtIHNvcnRl
ZCBiYXNlZCBvbiBET00gb3JkZXIgaGVyZS4NCisgICAgLy8gSWYgdGhhdCBjaGFuZ2VzIHRvIHJl
cXVpcmUgb25seSBvbmUgYXJpYS1tb2RhbCB3ZSBjb3VsZCBjaGFuZ2UgdGhpcyB0byBhIFdlYWtI
YXNoU2V0LCBvciBkaXNjYXJkIHRoZSBzZXQgY29tcGxldGVseS4NCisgICAgTGlzdEhhc2hTZXQ8
RWxlbWVudCo+IG1fbW9kYWxFbGVtZW50c1NldDsNCiAgICAgYm9vbCBtX21vZGFsTm9kZXNJbml0
aWFsaXplZCB7IGZhbHNlIH07DQogDQogICAgIFRpbWVyIG1fcGVyZm9ybUNhY2hlVXBkYXRlVGlt
ZXI7DQpAQCAtNTAyLDYgKzUwNSw3IEBAIHByaXZhdGU6DQogICAgIFdlYWtIYXNoU2V0PEVsZW1l
bnQ+IG1fZGVmZXJyZWRTZWxlY3RlZENoaWxkcmVkQ2hhbmdlZExpc3Q7DQogICAgIExpc3RIYXNo
U2V0PFJlZlB0cjxBWENvcmVPYmplY3Q+PiBtX2RlZmVycmVkQ2hpbGRyZW5DaGFuZ2VkTGlzdDsN
CiAgICAgTGlzdEhhc2hTZXQ8Tm9kZSo+IG1fZGVmZXJyZWRDaGlsZHJlbkNoYW5nZWROb2RlTGlz
dDsNCisgICAgV2Vha0hhc2hTZXQ8RWxlbWVudD4gbV9kZWZlcnJlZE1vZGFsQ2hhbmdlZExpc3Q7
DQogICAgIEhhc2hNYXA8RWxlbWVudCosIFN0cmluZz4gbV9kZWZlcnJlZFRleHRGb3JtQ29udHJv
bFZhbHVlOw0KICAgICBIYXNoTWFwPEVsZW1lbnQqLCBRdWFsaWZpZWROYW1lPiBtX2RlZmVycmVk
QXR0cmlidXRlQ2hhbmdlOw0KICAgICBWZWN0b3I8c3RkOjpwYWlyPE5vZGUqLCBOb2RlKj4+IG1f
ZGVmZXJyZWRGb2N1c2VkTm9kZUNoYW5nZTsNCkBAIC01NzMsNyArNTc3LDggQEAgaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24oRnJhbWUqLCBB
WExvYWRpbmdFdmVudCkNCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdF
dmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdF
dmVudCkgeyB9DQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQWN0aXZlRGVzY2Vu
ZGFudENoYW5nZWQoTm9kZSopIHsgfQ0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZUFyaWFFeHBhbmRlZENoYW5nZShOb2RlKikgeyB9DQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6aGFuZGxlTW9kYWxDaGFuZ2UoTm9kZSopIHsgfQ0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmhhbmRsZU1vZGFsQ2hhbmdlKEVsZW1lbnQqKSB7IH0NCitpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpkZWZlck1vZGFsQ2hhbmdlKEVsZW1lbnQqKSB7IH0NCiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpoYW5kbGVBcmlhUm9sZUNoYW5nZWQoTm9kZSopIHsgfQ0KIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OmRlZmVyQXR0cmlidXRlQ2hhbmdlSWZOZWVkZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIEVsZW1lbnQqKSB7IH0NCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5k
bGVBdHRyaWJ1dGVDaGFuZ2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKSB7IH0NCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcA0KaW5kZXggNjIyNDlhMzgxNTEuLjczNzA2ODVhZDQ3IDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcA0KQEAgLTIyOCw3ICsyMjgsOCBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpmaXJzdENoaWxkKCkgY29uc3QNCiAgICAgaWYg
KCFmaXJzdENoaWxkICYmICFjYW5IYXZlQ2hpbGRyZW4oKSkNCiAgICAgICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6Zmlyc3RDaGlsZCgpOw0KIA0KLSAgICByZXR1cm4gYXhPYmpl
Y3RDYWNoZSgpLT5nZXRPckNyZWF0ZShmaXJzdENoaWxkKTsNCisgICAgYXV0byBvYmplY3RDYWNo
ZSA9IGF4T2JqZWN0Q2FjaGUoKTsNCisgICAgcmV0dXJuIG9iamVjdENhY2hlID8gb2JqZWN0Q2Fj
aGUtPmdldE9yQ3JlYXRlKGZpcnN0Q2hpbGQpIDogbnVsbHB0cjsNCiB9DQogDQogQWNjZXNzaWJp
bGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGFzdENoaWxkKCkgY29uc3QN
CkBAIC0yNDEsNyArMjQyLDggQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6bGFzdENoaWxkKCkgY29uc3QNCiAgICAgaWYgKCFsYXN0Q2hpbGQgJiYgIWNh
bkhhdmVDaGlsZHJlbigpKQ0KICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
OjpsYXN0Q2hpbGQoKTsNCiANCi0gICAgcmV0dXJuIGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVh
dGUobGFzdENoaWxkKTsNCisgICAgYXV0byBvYmplY3RDYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKTsN
CisgICAgcmV0dXJuIG9iamVjdENhY2hlID8gb2JqZWN0Q2FjaGUtPmdldE9yQ3JlYXRlKGxhc3RD
aGlsZCkgOiBudWxscHRyOw0KIH0NCiANCiBzdGF0aWMgaW5saW5lIFJlbmRlcklubGluZSogc3Rh
cnRPZkNvbnRpbnVhdGlvbnMoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikNCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402233</attachid>
            <date>2020-06-18 13:32:53 -0700</date>
            <delta_ts>2020-06-29 11:54:24 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_212849.txt</filename>
            <type>text/plain</type>
            <size>26455</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggNWEwODlkNDQ1ZTYuLmEwNTE1MDRkOGU5IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTgg
QEANCisyMDIwLTA2LTE4ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogYXJpYS1tb2RhbCBub2RlcyB3cmFwcGVkIGluIGFyaWEtaGlkZGVuIGFy
ZSBub3QgaG9ub3JlZA0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMjg0OQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0MDQ3MDE5Pg0KKw0KKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvYXJpYS1oaWRkZW4tbmVnYXRlcy1uby12aXNpYmlsaXR5LWV4cGVjdGVkLnR4dDoNCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1uZWdhdGVzLW5vLXZpc2liaWxpdHku
aHRtbDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLW1vZGFsLWluLWFyaWEtaGlkZGVu
LWV4cGVjdGVkLnR4dDogQWRkZWQuDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1tb2Rh
bC1pbi1hcmlhLWhpZGRlbi5odG1sOiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9h
cmlhLW1vZGFsLmh0bWw6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbW9kYWwt
YXV0by1mb2N1cy5odG1sOg0KKw0KIDIwMjAtMDYtMTggIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBp
bm9AaWdhbGlhLmNvbT4NCiANCiAgICAgICAgIFtHVEtdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5p
bmcuIFVwZGF0ZSBzdGF0dXMgb2YgZmxha3kgdGltZW91dCBmYWlsdXJlcyBhZnRlciByMjYzMjA2
Lg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tbmVn
YXRlcy1uby12aXNpYmlsaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvYXJpYS1oaWRkZW4tbmVnYXRlcy1uby12aXNpYmlsaXR5LWV4cGVjdGVkLnR4dA0KaW5kZXgg
YmI1ZWNmYjAyM2YuLmNhZDI0M2EwMmIwIDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9hcmlhLWhpZGRlbi1uZWdhdGVzLW5vLXZpc2liaWxpdHktZXhwZWN0ZWQudHh0DQor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLW5lZ2F0ZXMtbm8tdmlz
aWJpbGl0eS1leHBlY3RlZC50eHQNCkBAIC0yLDcgKzIsNiBAQCBoZWFkaW5nMS4yDQogDQogDQog
DQotDQogVGhpcyB0ZXN0cyBlbnN1cmVzIHRoYXQgYXJpYS1oaWRkZW49ZmFsc2Ugd2lsbCBhbGxv
dyBhIG5vZGUgdG8gYmUgaW4gdGhlIEFYIGhpZXJhcmNoeSBldmVuIGlmIGl0J3Mgbm90IHJlbmRl
cmVkIG9yIHZpc2libGUNCiANCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuDQpAQCAtMTgsNyAr
MTcsNyBAQCBQQVNTIHBhcmVudC5jaGlsZEF0SW5kZXgoMSkuaXNFcXVhbChoZWFkaW5nMykgaXMg
dHJ1ZQ0KIFBBU1MgaGVhZGluZzQucm9sZSBpcyAnQVhSb2xlOiBBWEhlYWRpbmcnDQogUEFTUyBw
YXJlbnQuY2hpbGRBdEluZGV4KDIpLmlzRXF1YWwoaGVhZGluZzQpIGlzIHRydWUNCiBUZXh0Zmll
bGQgVGl0bGU6IEFYVGl0bGU6IA0KLVBBU1MgdmlkZW8uY2hpbGRyZW5Db3VudCBpcyAwDQorUEFT
UyAhdmlkZW8gfHwgdmlkZW8uY2hpbGRyZW5Db3VudCA9PSAwIGlzIHRydWUNCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlDQogDQogVEVTVCBDT01QTEVURQ0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tbmVnYXRlcy1uby12aXNpYmlsaXR5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLW5lZ2F0ZXMtbm8t
dmlzaWJpbGl0eS5odG1sDQppbmRleCA0NzRiNjA5ZmRjOC4uNDBiM2Y3NGVmODEgMTAwNjQ0DQot
LS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLW5lZ2F0ZXMtbm8tdmlz
aWJpbGl0eS5odG1sDQorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVu
LW5lZ2F0ZXMtbm8tdmlzaWJpbGl0eS5odG1sDQpAQCAtMTYsMTEgKzE2LDEzIEBADQogPGRpdiBo
aWRkZW4gYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iaGlkZGVuRGl2Ij5IaWRkZW5UZXh0MTwvZGl2
Pg0KIDxpbnB1dCB0eXBlPSJ0ZXh0IiBhcmlhLWxhYmVsbGVkYnk9ImhpZGRlbkRpdiIgaWQ9InRl
eHRGaWVsZFdpdGhIaWRkZW5MYWJlbGxlciI+DQogDQorPGRpdj4NCiA8ZGl2IGFyaWEtaGlkZGVu
PSJmYWxzZSI+DQotPHZpZGVvIGlkPSJ2aWRlbyI+DQorPHZpZGVvIGhpZGRlbiBpZD0idmlkZW8i
Pg0KIEhpZGRlbiBjb250ZW50DQogPC92aWRlbz4NCiA8L2Rpdj4NCis8L2Rpdj4NCiANCiA8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4NCiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCkBAIC02Myw3
ICs2NSw3IEBAIEhpZGRlbiBjb250ZW50DQogICAgICAgICANCiAgICAgICAgIC8vIGFyaWEtaGlk
ZGVuPSJmYWxzZSIgbmVlZCB0byBiZSBvbiBlYWNoIHBhcmVudCwgaW5jbHVkaW5nIHJlbmRlcmVk
IHBhcmVudHMuDQogICAgICAgICB2YXIgdmlkZW8gPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoInZpZGVvIik7DQotICAgICAgICBzaG91bGRCZSgidmlkZW8u
Y2hpbGRyZW5Db3VudCIsICIwIik7DQorICAgICAgICBzaG91bGRCZVRydWUoIiF2aWRlbyB8fCB2
aWRlby5jaGlsZHJlbkNvdW50ID09IDAiKTsNCiAgICAgfQ0KIA0KIDwvc2NyaXB0Pg0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1tb2RhbC1pbi1hcmlhLWhpZGRl
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbW9kYWwtaW4t
YXJpYS1oaWRkZW4tZXhwZWN0ZWQudHh0DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw
MDAwMDAwMDAuLjRmM2FmZGZmOTJjDQotLS0gL2Rldi9udWxsDQorKysgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2FyaWEtbW9kYWwtaW4tYXJpYS1oaWRkZW4tZXhwZWN0ZWQudHh0DQpAQCAt
MCwwICsxLDE0IEBADQorVGhpcyB0ZXN0cyB0aGF0IHdoZW4gc29tZXRoaW5nIGlzIGFyaWEtbW9k
YWwgaW5zaWRlIGFuIGFyaWEtaGlkZGVuIGl0IGlzIGlnbm9yZWQuDQorDQorT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLg0KKw0KKw0KK1BBU1MgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCdiZ0NvbnRlbnQnKS5pc0lnbm9yZWQgaXMgZmFsc2UNCitQQVNTICFi
YWNrZ3JvdW5kQ29udGVudCB8fCAhYmFja2dyb3VuZENvbnRlbnQuaXNWYWxpZCgpIGlzIHRydWUN
CitQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgnYmdD
b250ZW50JykuaXNJZ25vcmVkIGlzIGZhbHNlDQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQ0KKw0KK1RFU1QgQ09NUExFVEUNCitPdGhlciBwYWdlIGNvbnRlbnQgd2l0aCBhIGR1bW15
IGZvY3VzYWJsZSBlbGVtZW50DQorDQorSnVzdCBhbiBleGFtcGxlLg0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1tb2RhbC1pbi1hcmlhLWhpZGRlbi5odG1sIGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLW1vZGFsLWluLWFyaWEtaGlkZGVuLmh0bWwN
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uNTYxZGUzNzdhNGMNCi0t
LSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1tb2RhbC1p
bi1hcmlhLWhpZGRlbi5odG1sDQpAQCAtMCwwICsxLDQ2IEBADQorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPg0KKzxodG1sPg0KKzxoZWFkPg0KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pg0KKzwvaGVhZD4NCisN
Cis8Ym9keSBpZD0iYm9keSI+DQorDQorPGRpdiBpZD0iYmciPg0KKzxwIGlkPSJiZ0NvbnRlbnQi
Pk90aGVyIHBhZ2UgY29udGVudCB3aXRoIDxhIGhyZWY9IiMiPmEgZHVtbXkgZm9jdXNhYmxlIGVs
ZW1lbnQ8L2E+PC9wPg0KKzwvZGl2Pg0KKw0KKzxkaXYgaWQ9ImNvbnRhaW5lciI+DQorICAgIDxk
aXYgcm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFsPSJmYWxzZSIgaWQ9ImJveCI+DQorICAgICAgICA8
aDMgaWQ9Im15RGlhbG9nIj5KdXN0IGFuIGV4YW1wbGUuPC9oMz4NCisgICAgPC9kaXY+DQorPC9k
aXY+DQorDQorDQorPHNjcmlwdD4NCisNCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhh
dCB3aGVuIHNvbWV0aGluZyBpcyBhcmlhLW1vZGFsIGluc2lkZSBhbiBhcmlhLWhpZGRlbiBpdCBp
cyBpZ25vcmVkLiIpOw0KKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7DQorDQorICAg
IGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsNCisgICAgICAgIHNob3VsZEJl
RmFsc2UoImFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgnYmdD
b250ZW50JykuaXNJZ25vcmVkIik7DQorICAgICAgICANCisgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJib3giKS5zZXRBdHRyaWJ1dGUoImFyaWEtbW9kYWwiLCAidHJ1ZSIpOw0KKw0K
KyAgICAgICAgdmFyIGJhY2tncm91bmRDb250ZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
YWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdiZ0NvbnRlbnQnKTsNCisgICAgICAgIHNob3VsZEJlVHJ1
ZSgiIWJhY2tncm91bmRDb250ZW50IHx8ICFiYWNrZ3JvdW5kQ29udGVudC5pc1ZhbGlkKCkiKTsN
CisNCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKS5zZXRBdHRy
aWJ1dGUoImFyaWEtaGlkZGVuIiwgInRydWUiKTsNCisNCisgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7DQorICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgiYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdiZ0NvbnRlbnQnKS5pc0lnbm9yZWQiKTsNCisg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsNCisgICAgICAgIH0sIDApOw0KKyAgICB9ICAgIA0K
Kw0KKzwvc2NyaXB0Pg0KKw0KKw0KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4NCis8L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1tb2RhbC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9hcmlhLW1vZGFsLmh0bWwNCmluZGV4IGMwYTRiNjdhYTRiLi43ODdlNWUxZThlMSAx
MDA2NDQNCi0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1tb2RhbC5odG1sDQor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbW9kYWwuaHRtbA0KQEAgLTIxLDcg
KzIxLDcgQEANCiA8c2NyaXB0Pg0KIA0KICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0
IGFyaWEtbW9kYWwgb24gZGlhbG9nIG1ha2VzIG90aGVyIGVsZW1lbnRzIGluZXJ0LiIpOw0KLQ0K
KyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsNCiAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcikgew0KICAgICAgICAgLy8gQmFja2dyb3VuZCBzaG91bGQgYmUgdW5hY2Nlc3Np
YmxlIGFmdGVyIGxvYWRpbmcsIHNpbmNlIHRoZSANCiAgICAgICAgIC8vIGRpYWxvZyBpcyBkaXNw
bGF5ZWQgYW5kIGFyaWEtbW9kYWw9dHJ1ZS4NCkBAIC00NywxMiArNDcsMTUgQEANCiAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3giKS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVu
IiwgInRydWUiKTsNCiAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYmFja2dyb3VuZEFjY2Vzc2libGUo
KSIpOw0KICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveCIpLnNldEF0dHJpYnV0
ZSgiYXJpYS1oaWRkZW4iLCAiZmFsc2UiKTsNCi0gICAgICAgIHNob3VsZEJlRmFsc2UoImJhY2tn
cm91bmRBY2Nlc3NpYmxlKCkiKTsNCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQor
ICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgiYmFja2dyb3VuZEFjY2Vzc2libGUoKSIpOw0KICAg
ICAgICAgDQotICAgICAgICAvLyBUZXN0IG1vZGFsIGRpYWxvZyBpcyByZW1vdmVkIGZyb20gRE9N
IHRyZWUuDQotICAgICAgICB2YXIgZGlhbG9nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJv
eCIpOw0KLSAgICAgICAgZGlhbG9nLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZGlhbG9nKTsNCi0g
ICAgICAgIHNob3VsZEJlVHJ1ZSgiYmFja2dyb3VuZEFjY2Vzc2libGUoKSIpOw0KKyAgICAgICAg
ICAgIC8vIFRlc3QgbW9kYWwgZGlhbG9nIGlzIHJlbW92ZWQgZnJvbSBET00gdHJlZS4NCisgICAg
ICAgICAgICB2YXIgZGlhbG9nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveCIpOw0KKyAg
ICAgICAgICAgIGRpYWxvZy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGRpYWxvZyk7DQorICAgICAg
ICAgICAgc2hvdWxkQmVUcnVlKCJiYWNrZ3JvdW5kQWNjZXNzaWJsZSgpIik7DQorICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7DQorICAgICAgICAgfSwgMCk7DQogICAgIH0NCiAgICAgDQogICAg
IGZ1bmN0aW9uIGJhY2tncm91bmRBY2Nlc3NpYmxlKCkgew0KQEAgLTgyLDQgKzg1LDQgQEANCiAN
CiA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+DQog
PC9ib2R5Pg0KLTwvaHRtbD4NClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KKzwvaHRtbD4N
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLW1vZGFsLWF1
dG8tZm9jdXMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbW9kYWwt
YXV0by1mb2N1cy5odG1sDQppbmRleCAxNmMyNjU0OWFjNy4uNWUyNmY1NTBjYmYgMTAwNjQ0DQot
LS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLW1vZGFsLWF1dG8tZm9jdXMu
aHRtbA0KKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1tb2RhbC1hdXRv
LWZvY3VzLmh0bWwNCkBAIC00OSwxNCArNDksMTcgQEANCiAgICAgICAgICAgICBzaG91bGRCZVRy
dWUoIm5ld0J0bi5pc0ZvY3VzZWQiKTsNCiAgICAgICAgICAgICANCiAgICAgICAgICAgICAvLyAy
LiBDbGljayB0aGUgbmV3IGJ1dHRvbiwgZGlhbG9nMiBzaG93cyBhbmQgZm9jdXMgc2hvdWxkIG1v
dmUgdG8gdGhlIGNsb3NlIGJ1dHRvbi4NCisgICAgICAgICAgICAvLyBTZXQgYXJpYS1tb2RhbCB0
byBmYWxzZSBvbiB0aGUgcHJldmlvdXMgbW9kYWwgb2JqZWN0ICh3ZSBzaG91bGRuJ3QgaGF2ZSB0
d28gbW9kYWxzIGluIHBsYXkpLg0KICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJuZXciKS5jbGljaygpOw0KKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJi
b3giKS5hcmlhTW9kYWwgPSBmYWxzZTsNCiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCl7IA0KICAgICAgICAgICAgICAgICBjbG9zZUJ0biA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2xvc2UiKTsNCiAgICAgICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCJjbG9zZUJ0bi5pc0ZvY3VzZWQiKTsNCiAgICAgICAgICAgICAgICAgICANCiAgICAg
ICAgICAgICAgICAgLy8gMy4gQ2xpY2sgdGhlIGNsb3NlIGJ1dHRvbiwgZGlhbG9nMiBjbG9zZXMg
YW5kIGZvY3VzIHNob3VsZCBnbyBiYWNrIHRvIHRoZQ0KLSAgICAgICAgICAgICAgICAvLyBmaXJz
dCBmb2N1c2FibGUgY2hpbGQgb2YgZGlhbG9nMS4NCisgICAgICAgICAgICAgICAgLy8gZmlyc3Qg
Zm9jdXNhYmxlIGNoaWxkIG9mIGRpYWxvZzEsIHdoaWNoIHdlIG5vdyBuZWVkIHRvIGFkZCBhcmlh
LW1vZGFsIGJhY2sgdG8uDQogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjbG9zZSIpLmNsaWNrKCk7DQorICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJib3giKS5hcmlhTW9kYWwgPSB0cnVlOw0KICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgICAgICBva0J0biA9IGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgib2siKTsNCiAgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgib2tCdG4uaXNGb2N1c2VkIik7DQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQppbmRleCA4ODg0
MWRiOTI2MS4uZTk3NDU5NDMyODEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cNCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KQEAgLTEsMyArMSw0NCBAQA0KKzIw
MjAtMDYtMTggIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAg
ICAgIEFYOiBhcmlhLW1vZGFsIG5vZGVzIHdyYXBwZWQgaW4gYXJpYS1oaWRkZW4gYXJlIG5vdCBo
b25vcmVkDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEyODQ5DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQwNDcwMTk+DQorDQorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxp
dHkvYXJpYS1tb2RhbC1pbi1hcmlhLWhpZGRlbi5odG1sDQorDQorICAgICAgICBJZiBhcmlhLW1v
ZGFsIHdhcyB3cmFwcGVkIGluc2lkZSBhcmlhLWhpZGRlbiwgd2Ugd2VyZSBzdGlsbCBwcm9jZXNz
aW5nIHRoYXQgYXMgdGhlIG1vZGFsIG5vZGUuDQorICAgICAgICBGaXhpbmcgdGhhdCB1bmNvdmVy
ZWQgYSBob3N0IG9mIHZlcnkgZmluaWNreSBpc3N1ZXMgcmVsYXRlZCB0byBhcmlhLW1vZGFsLg0K
KyAgICAgICAgMS4gV2Ugd2VyZSBwcm9jZXNzaW5nIG1vZGFsIHN0YXR1cyBpbW1lZGlhdGVseSBp
bnN0ZWFkIG9mIGFmdGVyIGEgZGVsYXksIHNvIHZpc2liaWxpdHkgcmVxdWlyZW1lbnRzIHdlcmUg
bm90IGNvcnJlY3QuDQorICAgICAgICAyLiBJbiBoYW5kbGVNb2RhbENoYW5nZTogV2Ugd2VyZSBw
cm9jZXNzaW5nIG11bHRpcGxlIG1vZGFsIG5vZGVzIHBlcmhhcHMgaW5jb3JyZWN0bHkgKHRoZSBz
cGVjIGRvZXNuJ3QgYWNjb3VudCBmb3IgbXVsdGlwbGUgbW9kYWwgbm9kZXMpLiANCisgICAgICAg
ICAgICAgLSBoYWQgdG8gdXBkYXRlIGEgdGVzdCB0byB0dXJuIG9mZiBtb2RhbCBzdGF0dXMgYmVm
b3JlIGFkZGluZyBhIG5ldyBtb2RhbCBub2RlDQorICAgICAgICAzLiBDaGFuZ2VkIHRoZSBtb2Rh
bCBub2RlIHRvIGEgV2Vha1B0cg0KKyAgICAgICAgNC4gSW4gaXNOb2RlQXJpYVZpc2libGU6IFdl
IHN0b3BwZWQgcHJvY2Vzc2luZyBmb3IgdmlzaWJpbGUgd2l0aCBhcmlhLWhpZGRlbiBhcyBzb29u
IGFzIHdlIGhpdCBhIHJlbmRlcmFibGUgYmxvY2ssIGJ1dCB0aGF0IG1lYW5zIGl0IHdvbid0IGFj
Y291bnQNCisgICAgICAgICAgIGZvciBub2RlcyBoaWdoZXIgaW4gdGhlIHRyZWUgd2l0aCBhcmlh
LWhpZGRlbi4NCisgICAgICAgIDUuIEluIGhhbmRsZUF0dHJpYnV0ZUNoYW5nZTogaWYgYXJpYS1o
aWRkZW4gY2hhbmdlcywgd2Ugc2hvdWxkIHVwZGF0ZSBtb2RhbCBzdGF0dXMgaWYgbmVlZGVkLg0K
KyAgICAgICAgNi4gSW4gZm9jdXNNb2RhbE5vZGVUaW1lckZpcmVkOiB3ZSBuZWVkIHRvIHZlcmlm
eSB0aGUgZWxlbWVudCBpcyBzdGlsbCBsaXZlLCBvdGhlcndpc2UgaXQgY2FuIGxlYWQgdG8gYSBj
cmFzaC4NCisNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoNCisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKToNCisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpmaW5kTW9kYWxOb2Rlcyk6DQorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6Y3VycmVudE1vZGFsTm9kZSk6DQorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6bW9kYWxOb2RlKToNCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpyZW1vdmUpOg0KKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmRlZmVy
TW9kYWxDaGFuZ2UpOg0KKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmZvY3VzTW9k
YWxOb2RlVGltZXJGaXJlZCk6DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFu
ZGxlQXR0cmlidXRlQ2hhbmdlKToNCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpo
YW5kbGVNb2RhbENoYW5nZSk6DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cHJl
cGFyZUZvckRvY3VtZW50RGVzdHJ1Y3Rpb24pOg0KKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlKToNCisgICAgICAgIChXZWJDb3JlOjpp
c05vZGVBcmlhVmlzaWJsZSk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oOg0KKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1vZGFsQ2hhbmdl
KToNCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpkZWZlck1vZGFsQ2hhbmdlKToN
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoN
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpmaXJzdENoaWxk
IGNvbnN0KToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojps
YXN0Q2hpbGQgY29uc3QpOg0KKw0KIDIwMjAtMDYtMTggIERhdmlkIEtpbHplciAgPGRka2lsemVy
QGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFtJUEMgaGFyZGVuaW5nXSBPcHRpb25TZXQ8PiB2YWx1
ZXMgc2hvdWxkIGJlIHZhbGlkYXRlZA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwDQppbmRleCA4ZDcyZTc2ZGM2MC4uOTI5YmZkYTJkODQgMTAwNjQ0
DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwDQpAQCAt
MjE5LDcgKzIxOSw3IEBAIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQ0KICAgICAsIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZB
WE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQ0KICAgICAs
IG1fbGl2ZVJlZ2lvbkNoYW5nZWRQb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpsaXZl
UmVnaW9uQ2hhbmdlZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQ0KICAgICAsIG1fZm9jdXNN
b2RhbE5vZGVUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6OmZvY3VzTW9kYWxOb2RlVGltZXJG
aXJlZCkNCi0gICAgLCBtX2N1cnJlbnRNb2RhbE5vZGUobnVsbHB0cikNCisgICAgLCBtX2N1cnJl
bnRNb2RhbEVsZW1lbnQobnVsbHB0cikNCiAgICAgLCBtX3BlcmZvcm1DYWNoZVVwZGF0ZVRpbWVy
KCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6cGVyZm9ybUNhY2hlVXBkYXRlVGltZXJGaXJlZCkNCiB7
DQogfQ0KQEAgLTI1MCwzOSArMjUwLDM5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6ZmluZE1vZGFs
Tm9kZXMoKQ0KICAgICAgICAgaWYgKCFlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbGVt
ZW50LT5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFyaWFfbW9kYWxBdHRyKSwgInRy
dWUiKSkNCiAgICAgICAgICAgICBjb250aW51ZTsNCiANCi0gICAgICAgIG1fbW9kYWxOb2Rlc1Nl
dC5hZGQoZWxlbWVudCk7DQorICAgICAgICBtX21vZGFsRWxlbWVudHNTZXQuYWRkKGVsZW1lbnQp
Ow0KICAgICB9DQogDQogICAgIG1fbW9kYWxOb2Rlc0luaXRpYWxpemVkID0gdHJ1ZTsNCiB9DQog
DQotTm9kZSogQVhPYmplY3RDYWNoZTo6Y3VycmVudE1vZGFsTm9kZSgpDQorRWxlbWVudCogQVhP
YmplY3RDYWNoZTo6Y3VycmVudE1vZGFsTm9kZSgpDQogew0KICAgICAvLyBUaGVyZSBtaWdodCBi
ZSBtdWx0aXBsZSBub2RlcyB3aXRoIGFyaWEtbW9kYWw9dHJ1ZSBzZXQuDQogICAgIC8vIFdlIHVz
ZSB0aGlzIGZ1bmN0aW9uIHRvIHBpY2sgdGhlIG9uZSB3ZSB3YW50Lg0KLSAgICBtX2N1cnJlbnRN
b2RhbE5vZGUgPSBudWxscHRyOw0KLSAgICBpZiAobV9tb2RhbE5vZGVzU2V0LmlzRW1wdHkoKSkN
CisgICAgbV9jdXJyZW50TW9kYWxFbGVtZW50ID0gbnVsbHB0cjsNCisgICAgaWYgKG1fbW9kYWxF
bGVtZW50c1NldC5pc0VtcHR5KCkpDQogICAgICAgICByZXR1cm4gbnVsbHB0cjsNCiANCiAgICAg
Ly8gSWYgYW55IG9mIHRoZSBtb2RhbCBub2RlcyBjb250YWlucyB0aGUga2V5Ym9hcmQgZm9jdXMs
IHdlIHdhbnQgdG8gcGljayB0aGF0IG9uZS4NCiAgICAgLy8gSWYgbm90LCB3ZSB3YW50IHRvIHBp
Y2sgdGhlIGxhc3QgdmlzaWJsZSBkaWFsb2cgaW4gdGhlIERPTS4NCiAgICAgUmVmUHRyPEVsZW1l
bnQ+IGZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQoKS5mb2N1c2VkRWxlbWVudCgpOw0KLSAgICBS
ZWZQdHI8Tm9kZT4gbGFzdFZpc2libGU7DQotICAgIGZvciAoYXV0byYgbm9kZSA6IG1fbW9kYWxO
b2Rlc1NldCkgew0KLSAgICAgICAgaWYgKGlzTm9kZVZpc2libGUobm9kZSkpIHsNCi0gICAgICAg
ICAgICBpZiAoZm9jdXNlZEVsZW1lbnQgJiYgZm9jdXNlZEVsZW1lbnQtPmlzRGVzY2VuZGFudE9m
KG5vZGUpKSB7DQotICAgICAgICAgICAgICAgIG1fY3VycmVudE1vZGFsTm9kZSA9IG5vZGU7DQor
ICAgIFJlZlB0cjxFbGVtZW50PiBsYXN0VmlzaWJsZTsNCisgICAgZm9yIChhdXRvJiBlbGVtZW50
IDogbV9tb2RhbEVsZW1lbnRzU2V0KSB7DQorICAgICAgICBpZiAoaXNOb2RlVmlzaWJsZShlbGVt
ZW50KSkgew0KKyAgICAgICAgICAgIGlmIChmb2N1c2VkRWxlbWVudCAmJiBmb2N1c2VkRWxlbWVu
dC0+aXNEZXNjZW5kYW50T2YoZWxlbWVudCkpIHsNCisgICAgICAgICAgICAgICAgbV9jdXJyZW50
TW9kYWxFbGVtZW50ID0gbWFrZVdlYWtQdHIoZWxlbWVudCk7DQogICAgICAgICAgICAgICAgIGJy
ZWFrOw0KICAgICAgICAgICAgIH0NCiANCi0gICAgICAgICAgICBsYXN0VmlzaWJsZSA9IG5vZGU7
DQorICAgICAgICAgICAgbGFzdFZpc2libGUgPSBlbGVtZW50Ow0KICAgICAgICAgfQ0KICAgICB9
DQogDQotICAgIGlmICghbV9jdXJyZW50TW9kYWxOb2RlKQ0KLSAgICAgICAgbV9jdXJyZW50TW9k
YWxOb2RlID0gbGFzdFZpc2libGUuZ2V0KCk7DQorICAgIGlmICghbV9jdXJyZW50TW9kYWxFbGVt
ZW50KQ0KKyAgICAgICAgbV9jdXJyZW50TW9kYWxFbGVtZW50ID0gbWFrZVdlYWtQdHIobGFzdFZp
c2libGUuZ2V0KCkpOw0KIA0KLSAgICByZXR1cm4gbV9jdXJyZW50TW9kYWxOb2RlOw0KKyAgICBy
ZXR1cm4gbV9jdXJyZW50TW9kYWxFbGVtZW50LmdldCgpOw0KIH0NCiANCiBib29sIEFYT2JqZWN0
Q2FjaGU6OmlzTm9kZVZpc2libGUoTm9kZSogbm9kZSkgY29uc3QNCkBAIC0zMDQsMjMgKzMwNCwy
MSBAQCBib29sIEFYT2JqZWN0Q2FjaGU6OmlzTm9kZVZpc2libGUoTm9kZSogbm9kZSkgY29uc3QN
CiAgICAgcmV0dXJuIHRydWU7DQogfQ0KIA0KKy8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUg
dmFsaWQgYXJpYSBtb2RhbCBub2RlLg0KIE5vZGUqIEFYT2JqZWN0Q2FjaGU6Om1vZGFsTm9kZSgp
DQogew0KLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHZhbGlkIGFyaWEgbW9kYWwg
bm9kZS4NCi0gICAgaWYgKCFtX21vZGFsTm9kZXNJbml0aWFsaXplZCkgew0KKyAgICBpZiAoIW1f
bW9kYWxOb2Rlc0luaXRpYWxpemVkKQ0KICAgICAgICAgZmluZE1vZGFsTm9kZXMoKTsNCi0gICAg
ICAgIHJldHVybiBjdXJyZW50TW9kYWxOb2RlKCk7DQotICAgIH0NCiANCi0gICAgaWYgKG1fbW9k
YWxOb2Rlc1NldC5pc0VtcHR5KCkpDQorICAgIGlmIChtX21vZGFsRWxlbWVudHNTZXQuaXNFbXB0
eSgpKQ0KICAgICAgICAgcmV0dXJuIG51bGxwdHI7DQogDQogICAgIC8vIENoZWNrIHRoZSBjYWNo
ZWQgY3VycmVudCB2YWxpZCBhcmlhIG1vZGFsIG5vZGUgZmlyc3QuDQogICAgIC8vIFVzdWFsbHkg
d2hlbiBvbmUgZGlhbG9nIHNldHMgYXJpYS1tb2RhbD10cnVlLCB0aGF0IGRpYWxvZyBpcyB0aGUg
b25lIHdlIHdhbnQuDQotICAgIGlmIChpc05vZGVWaXNpYmxlKG1fY3VycmVudE1vZGFsTm9kZSkp
DQotICAgICAgICByZXR1cm4gbV9jdXJyZW50TW9kYWxOb2RlOw0KKyAgICBpZiAoaXNOb2RlVmlz
aWJsZShtX2N1cnJlbnRNb2RhbEVsZW1lbnQuZ2V0KCkpKQ0KKyAgICAgICAgcmV0dXJuIG1fY3Vy
cmVudE1vZGFsRWxlbWVudC5nZXQoKTsNCiANCi0gICAgLy8gUmVjb21wdXRlIHRoZSB2YWxpZCBh
cmlhIG1vZGFsIG5vZGUgd2hlbiBtX2N1cnJlbnRNb2RhbE5vZGUgaXMgbnVsbCBvciBoaWRkZW4u
DQorICAgIC8vIFJlY29tcHV0ZSB0aGUgdmFsaWQgYXJpYSBtb2RhbCBub2RlIHdoZW4gbV9jdXJy
ZW50TW9kYWxFbGVtZW50IGlzIG51bGwgb3IgaGlkZGVuLg0KICAgICByZXR1cm4gY3VycmVudE1v
ZGFsTm9kZSgpOw0KIH0NCiANCkBAIC04NjksNiArODY3LDcgQEAgdm9pZCBBWE9iamVjdENhY2hl
OjpyZW1vdmUoTm9kZSYgbm9kZSkNCiAgICAgaWYgKGlzPEVsZW1lbnQ+KG5vZGUpKSB7DQogICAg
ICAgICBtX2RlZmVycmVkVGV4dEZvcm1Db250cm9sVmFsdWUucmVtb3ZlKGRvd25jYXN0PEVsZW1l
bnQ+KCZub2RlKSk7DQogICAgICAgICBtX2RlZmVycmVkQXR0cmlidXRlQ2hhbmdlLnJlbW92ZShk
b3duY2FzdDxFbGVtZW50Pigmbm9kZSkpOw0KKyAgICAgICAgbV9tb2RhbEVsZW1lbnRzU2V0LnJl
bW92ZShkb3duY2FzdDxFbGVtZW50Pigmbm9kZSkpOw0KICAgICB9DQogICAgIG1fZGVmZXJyZWRD
aGlsZHJlbkNoYW5nZWROb2RlTGlzdC5yZW1vdmUoJm5vZGUpOw0KICAgICBtX2RlZmVycmVkVGV4
dENoYW5nZWRMaXN0LnJlbW92ZSgmbm9kZSk7DQpAQCAtODg1LDExICs4ODQsNiBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnJlbW92ZShOb2RlJiBub2RlKQ0KICAgICByZW1vdmVOb2RlRm9yVXNlKG5v
ZGUpOw0KIA0KICAgICByZW1vdmUobV9ub2RlT2JqZWN0TWFwcGluZy50YWtlKCZub2RlKSk7DQot
DQotICAgIGlmIChtX2N1cnJlbnRNb2RhbE5vZGUgPT0gJm5vZGUpDQotICAgICAgICBtX2N1cnJl
bnRNb2RhbE5vZGUgPSBudWxscHRyOw0KLSAgICBtX21vZGFsTm9kZXNTZXQucmVtb3ZlKCZub2Rl
KTsNCi0NCiAgICAgcmVtb3ZlKG5vZGUucmVuZGVyZXIoKSk7DQogfQ0KIA0KQEAgLTExODIsNiAr
MTE3NiwxMyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyRm9jdXNlZFVJRWxlbWVudENoYW5n
ZUlmTmVlZGVkKE5vZGUqIG9sZE5vZGUsIE5vZGUqIG5ldw0KICAgICB9IGVsc2UNCiAgICAgICAg
IGhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKG9sZE5vZGUsIG5ld05vZGUpOw0KIH0NCisN
Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyTW9kYWxDaGFuZ2UoRWxlbWVudCogZWxlbWVudCkN
Cit7DQorICAgIG1fZGVmZXJyZWRNb2RhbENoYW5nZWRMaXN0LmFkZChlbGVtZW50KTsNCisgICAg
aWYgKCFtX3BlcmZvcm1DYWNoZVVwZGF0ZVRpbWVyLmlzQWN0aXZlKCkpDQorICAgICAgICBtX3Bl
cmZvcm1DYWNoZVVwZGF0ZVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOw0KK30NCiAgICAgDQogdm9p
ZCBBWE9iamVjdENhY2hlOjpoYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRO
b2RlLCBOb2RlKiBuZXdOb2RlKQ0KIHsNCkBAIC0xNTgwLDE1ICsxNTgxLDE5IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6Zm9jdXNNb2RhbE5vZGUoKQ0KIA0KIHZvaWQgQVhPYmplY3RDYWNoZTo6Zm9j
dXNNb2RhbE5vZGVUaW1lckZpcmVkKCkNCiB7DQotICAgIGlmICghbV9jdXJyZW50TW9kYWxOb2Rl
KQ0KKyAgICBpZiAoIW1fZG9jdW1lbnQuaGFzTGl2aW5nUmVuZGVyVHJlZSgpKQ0KKyAgICAgICAg
cmV0dXJuOw0KKw0KKyAgICBSZWY8RG9jdW1lbnQ+IHByb3RlY3RlZERvY3VtZW50KG1fZG9jdW1l
bnQpOw0KKyAgICBpZiAoIW5vZGVBbmRSZW5kZXJlckFyZVZhbGlkKG1fY3VycmVudE1vZGFsRWxl
bWVudC5nZXQoKSkgfHwgIWlzTm9kZVZpc2libGUobV9jdXJyZW50TW9kYWxFbGVtZW50LmdldCgp
KSkNCiAgICAgICAgIHJldHVybjsNCiAgICAgDQogICAgIC8vIERvbid0IHNldCBmb2N1cyBpZiB3
ZSBhcmUgYWxyZWFkeSBmb2N1c2luZyBvbnRvIHNvbWUgZWxlbWVudCB3aXRoaW4NCiAgICAgLy8g
dGhlIGRpYWxvZy4NCi0gICAgaWYgKG1fY3VycmVudE1vZGFsTm9kZS0+Y29udGFpbnMoZG9jdW1l
bnQoKS5mb2N1c2VkRWxlbWVudCgpKSkNCisgICAgaWYgKG1fY3VycmVudE1vZGFsRWxlbWVudC0+
Y29udGFpbnMoZG9jdW1lbnQoKS5mb2N1c2VkRWxlbWVudCgpKSkNCiAgICAgICAgIHJldHVybjsN
CiAgICAgDQotICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjdXJyZW50TW9kYWxOb2RlT2Jq
ZWN0ID0gZ2V0T3JDcmVhdGUobV9jdXJyZW50TW9kYWxOb2RlKSkgew0KKyAgICBpZiAoQWNjZXNz
aWJpbGl0eU9iamVjdCogY3VycmVudE1vZGFsTm9kZU9iamVjdCA9IGdldE9yQ3JlYXRlKG1fY3Vy
cmVudE1vZGFsRWxlbWVudC5nZXQoKSkpIHsNCiAgICAgICAgIGlmIChBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBmb2N1c2FibGUgPSBmaXJzdEZvY3VzYWJsZUNoaWxkKGN1cnJlbnRNb2RhbE5vZGVPYmpl
Y3QpKQ0KICAgICAgICAgICAgIGZvY3VzYWJsZS0+c2V0Rm9jdXNlZCh0cnVlKTsNCiAgICAgfQ0K
QEAgLTE2ODYsMTIgKzE2OTEsMTcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1
dGVDaGFuZ2UoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIEVsZW1lbnQNCiAgICAgICAg
IHNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKGVsZW1lbnQpOw0KICAgICBlbHNlIGlmIChhdHRyTmFt
ZSA9PSBhcmlhX2V4cGFuZGVkQXR0cikNCiAgICAgICAgIGhhbmRsZUFyaWFFeHBhbmRlZENoYW5n
ZShlbGVtZW50KTsNCi0gICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gYXJpYV9oaWRkZW5BdHRyKQ0K
KyAgICBlbHNlIGlmIChhdHRyTmFtZSA9PSBhcmlhX2hpZGRlbkF0dHIpIHsNCiAgICAgICAgIGNo
aWxkcmVuQ2hhbmdlZChlbGVtZW50LT5wYXJlbnROb2RlKCksIGVsZW1lbnQpOw0KKyAgICAgICAg
aWYgKG1fY3VycmVudE1vZGFsRWxlbWVudCAmJiBtX2N1cnJlbnRNb2RhbEVsZW1lbnQtPmlzRGVz
Y2VuZGFudE9mKGVsZW1lbnQpKSB7DQorICAgICAgICAgICAgbV9tb2RhbE5vZGVzSW5pdGlhbGl6
ZWQgPSBmYWxzZTsNCisgICAgICAgICAgICBkZWZlck1vZGFsQ2hhbmdlKG1fY3VycmVudE1vZGFs
RWxlbWVudC5nZXQoKSk7DQorICAgICAgICB9DQorICAgIH0NCiAgICAgZWxzZSBpZiAoYXR0ck5h
bWUgPT0gYXJpYV9pbnZhbGlkQXR0cikNCiAgICAgICAgIHBvc3ROb3RpZmljYXRpb24oZWxlbWVu
dCwgQVhPYmplY3RDYWNoZTo6QVhJbnZhbGlkU3RhdHVzQ2hhbmdlZCk7DQogICAgIGVsc2UgaWYg
KGF0dHJOYW1lID09IGFyaWFfbW9kYWxBdHRyKQ0KLSAgICAgICAgaGFuZGxlTW9kYWxDaGFuZ2Uo
ZWxlbWVudCk7DQorICAgICAgICBkZWZlck1vZGFsQ2hhbmdlKGVsZW1lbnQpOw0KICAgICBlbHNl
IGlmIChhdHRyTmFtZSA9PSBhcmlhX2N1cnJlbnRBdHRyKQ0KICAgICAgICAgcG9zdE5vdGlmaWNh
dGlvbihlbGVtZW50LCBBWE9iamVjdENhY2hlOjpBWEN1cnJlbnRDaGFuZ2VkKTsNCiAgICAgZWxz
ZSBpZiAoYXR0ck5hbWUgPT0gYXJpYV9kaXNhYmxlZEF0dHIpDQpAQCAtMTcwNiwxMiArMTcxNiw5
IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lLCBFbGVtZW50DQogICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKGVs
ZW1lbnQsIEFYT2JqZWN0Q2FjaGU6OkFYQXJpYUF0dHJpYnV0ZUNoYW5nZWQpOw0KIH0NCiANCi12
b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1vZGFsQ2hhbmdlKE5vZGUqIG5vZGUpDQordm9pZCBB
WE9iamVjdENhY2hlOjpoYW5kbGVNb2RhbENoYW5nZShFbGVtZW50JiBlbGVtZW50KQ0KIHsNCi0g
ICAgaWYgKCFpczxFbGVtZW50Pihub2RlKSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAgaWYg
KCFub2RlSGFzUm9sZShub2RlLCAiZGlhbG9nIikgJiYgIW5vZGVIYXNSb2xlKG5vZGUsICJhbGVy
dGRpYWxvZyIpKQ0KKyAgICBpZiAoIW5vZGVIYXNSb2xlKCZlbGVtZW50LCAiZGlhbG9nIikgJiYg
IW5vZGVIYXNSb2xlKCZlbGVtZW50LCAiYWxlcnRkaWFsb2ciKSkNCiAgICAgICAgIHJldHVybjsN
CiANCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsNCkBAIC0xNzE5
LDE4ICsxNzI2LDE5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlTW9kYWxDaGFuZ2UoTm9k
ZSogbm9kZSkNCiAgICAgaWYgKCFtX21vZGFsTm9kZXNJbml0aWFsaXplZCkNCiAgICAgICAgIGZp
bmRNb2RhbE5vZGVzKCk7DQogDQotICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihhcmlhX21vZGFsQXR0ciksICJ0cnVlIikpIHsNCi0gICAgICAgIC8vIEFkZCB0aGUgbmV3bHkg
bW9kaWZpZWQgbm9kZSB0byB0aGUgbW9kYWwgbm9kZXMgc2V0LCBhbmQgc2V0IGl0IHRvIGJlIHRo
ZSBjdXJyZW50IHZhbGlkIGFyaWEgbW9kYWwgbm9kZS4NCisgICAgaWYgKGVxdWFsTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKGVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihh
cmlhX21vZGFsQXR0ciksICJ0cnVlIikpIHsNCisgICAgICAgIC8vIEFkZCB0aGUgbmV3bHkgbW9k
aWZpZWQgbm9kZSB0byB0aGUgbW9kYWwgbm9kZXMgc2V0Lg0KICAgICAgICAgLy8gV2Ugd2lsbCBy
ZWNvbXB1dGUgdGhlIGN1cnJlbnQgdmFsaWQgYXJpYSBtb2RhbCBub2RlIGluIG1vZGFsTm9kZSgp
IHdoZW4gdGhpcyBub2RlIGlzIG5vdCB2aXNpYmxlLg0KLSAgICAgICAgbV9tb2RhbE5vZGVzU2V0
LmFkZChub2RlKTsNCi0gICAgICAgIG1fY3VycmVudE1vZGFsTm9kZSA9IG5vZGU7DQorICAgICAg
ICBtX21vZGFsRWxlbWVudHNTZXQuYWRkKCZlbGVtZW50KTsNCiAgICAgfSBlbHNlIHsNCi0gICAg
ICAgIC8vIFJlbW92ZSB0aGUgbm9kZSBmcm9tIHRoZSBtb2RhbCBub2RlcyBzZXQuIFRoZXJlIG1p
Z2h0IGJlIG90aGVyIHZpc2libGUgbW9kYWwgbm9kZXMsIHNvIHdlIHJlY29tcHV0ZSBoZXJlLg0K
LSAgICAgICAgbV9tb2RhbE5vZGVzU2V0LnJlbW92ZShub2RlKTsNCi0gICAgICAgIGN1cnJlbnRN
b2RhbE5vZGUoKTsNCisgICAgICAgIC8vIFJlbW92ZSB0aGUgbm9kZSBmcm9tIHRoZSBtb2RhbCBu
b2RlcyBzZXQuDQorICAgICAgICBtX21vZGFsRWxlbWVudHNTZXQucmVtb3ZlKCZlbGVtZW50KTsN
CiAgICAgfQ0KIA0KLSAgICBpZiAobV9jdXJyZW50TW9kYWxOb2RlKQ0KKyAgICAvLyBGaW5kIG5l
dyBhY3RpdmUgbW9kYWwgbm9kZS4NCisgICAgY3VycmVudE1vZGFsTm9kZSgpOw0KKw0KKyAgICBp
ZiAobV9jdXJyZW50TW9kYWxFbGVtZW50KQ0KICAgICAgICAgZm9jdXNNb2RhbE5vZGUoKTsNCiAN
CiAgICAgc3RhcnRDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzVW50aWxUcmVlTXV0YXRl
cygpOw0KQEAgLTMwMjksMTMgKzMwMzcsMTMgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwcmVwYXJl
Rm9yRG9jdW1lbnREZXN0cnVjdGlvbihjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpDQogew0KICAg
ICBIYXNoU2V0PE5vZGUqPiBub2Rlc1RvUmVtb3ZlOw0KICAgICBmaWx0ZXJMaXN0Rm9yUmVtb3Zh
bChtX3RleHRNYXJrZXJOb2RlcywgZG9jdW1lbnQsIG5vZGVzVG9SZW1vdmUpOw0KLSAgICBmaWx0
ZXJMaXN0Rm9yUmVtb3ZhbChtX21vZGFsTm9kZXNTZXQsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3Zl
KTsNCisgICAgZmlsdGVyTGlzdEZvclJlbW92YWwobV9tb2RhbEVsZW1lbnRzU2V0LCBkb2N1bWVu
dCwgbm9kZXNUb1JlbW92ZSk7DQogICAgIGZpbHRlckxpc3RGb3JSZW1vdmFsKG1fZGVmZXJyZWRU
ZXh0Q2hhbmdlZExpc3QsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsNCiAgICAgZmlsdGVyTGlz
dEZvclJlbW92YWwobV9kZWZlcnJlZENoaWxkcmVuQ2hhbmdlZE5vZGVMaXN0LCBkb2N1bWVudCwg
bm9kZXNUb1JlbW92ZSk7DQogICAgIGZpbHRlck1hcEZvclJlbW92YWwobV9kZWZlcnJlZFRleHRG
b3JtQ29udHJvbFZhbHVlLCBkb2N1bWVudCwgbm9kZXNUb1JlbW92ZSk7DQogICAgIGZpbHRlck1h
cEZvclJlbW92YWwobV9kZWZlcnJlZEF0dHJpYnV0ZUNoYW5nZSwgZG9jdW1lbnQsIG5vZGVzVG9S
ZW1vdmUpOw0KICAgICBmaWx0ZXJWZWN0b3JQYWlyRm9yUmVtb3ZhbChtX2RlZmVycmVkRm9jdXNl
ZE5vZGVDaGFuZ2UsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsNCi0NCisgICAgDQogICAgIGZv
ciAoYXV0byogbm9kZSA6IG5vZGVzVG9SZW1vdmUpDQogICAgICAgICByZW1vdmUoKm5vZGUpOw0K
IH0NCkBAIC0zMTA0LDYgKzMxMTIsMTAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVm
ZXJyZWRDYWNoZVVwZGF0ZSgpDQogICAgICAgICBoYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdl
ZChkZWZlcnJlZEZvY3VzZWRDaGFuZ2VDb250ZXh0LmZpcnN0LCBkZWZlcnJlZEZvY3VzZWRDaGFu
Z2VDb250ZXh0LnNlY29uZCk7DQogICAgIG1fZGVmZXJyZWRGb2N1c2VkTm9kZUNoYW5nZS5jbGVh
cigpOw0KIA0KKyAgICBmb3IgKGF1dG8mIGRlZmVycmVkTW9kYWxDaGFuZ2VkRWxlbWVudCA6IG1f
ZGVmZXJyZWRNb2RhbENoYW5nZWRMaXN0KQ0KKyAgICAgICAgaGFuZGxlTW9kYWxDaGFuZ2UoZGVm
ZXJyZWRNb2RhbENoYW5nZWRFbGVtZW50KTsNCisgICAgbV9kZWZlcnJlZE1vZGFsQ2hhbmdlZExp
c3QuY2xlYXIoKTsNCisNCiAgICAgcGxhdGZvcm1QZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSgp
Ow0KIH0NCiAgICAgDQpAQCAtMzI5NiwxNSArMzMwOCwxNiBAQCBib29sIGlzTm9kZUFyaWFWaXNp
YmxlKE5vZGUqIG5vZGUpDQogICAgICAgICAgICAgY29uc3QgQXRvbVN0cmluZyYgYXJpYUhpZGRl
blZhbHVlID0gZG93bmNhc3Q8RWxlbWVudD4oKnRlc3ROb2RlKS5hdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKGFyaWFfaGlkZGVuQXR0cik7DQogICAgICAgICAgICAgaWYgKGVxdWFsTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGFyaWFIaWRkZW5WYWx1ZSwgInRydWUiKSkNCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOw0KLSAgICAgICAgICAgIA0KKw0KKyAgICAgICAgICAgIC8v
IFdlIHNob3VsZCBicmVhayBlYXJseSB3aGVuIGl0IGdldHMgdG8gdGhlIGJvZHkuDQorICAgICAg
ICAgICAgaWYgKHRlc3ROb2RlLT5oYXNUYWdOYW1lKGJvZHlUYWcpKQ0KKyAgICAgICAgICAgICAg
ICBicmVhazsNCisNCiAgICAgICAgICAgICBib29sIGFyaWFIaWRkZW5GYWxzZSA9IGVxdWFsTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGFyaWFIaWRkZW5WYWx1ZSwgImZhbHNlIik7DQogICAgICAg
ICAgICAgaWYgKCF0ZXN0Tm9kZS0+cmVuZGVyZXIoKSAmJiAhYXJpYUhpZGRlbkZhbHNlKQ0KICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgaWYgKCFhcmlhSGlkZGVu
RmFsc2VQcmVzZW50ICYmIGFyaWFIaWRkZW5GYWxzZSkNCiAgICAgICAgICAgICAgICAgYXJpYUhp
ZGRlbkZhbHNlUHJlc2VudCA9IHRydWU7DQotICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIGJyZWFr
IGVhcmx5IHdoZW4gaXQgZ2V0cyB0byBhIHJlbmRlcmVkIG9iamVjdC4NCi0gICAgICAgICAgICBp
ZiAodGVzdE5vZGUtPnJlbmRlcmVyKCkpDQotICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAg
ICAgfQ0KICAgICB9DQogICAgIA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgNCmluZGV4IDFjZjJkNjg1ZTBjLi4yZmU0NmUyNGJkNSAxMDA2NDQNCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KQEAgLTE5MCw2ICsxOTAs
NyBAQCBwdWJsaWM6DQogICAgIHZvaWQgdXBkYXRlQ2FjaGVBZnRlck5vZGVJc0F0dGFjaGVkKE5v
ZGUqKTsNCiANCiAgICAgdm9pZCBkZWZlckZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VJZk5lZWRlZChO
b2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOw0KKyAgICB2b2lkIGRl
ZmVyTW9kYWxDaGFuZ2UoRWxlbWVudCopOw0KICAgICB2b2lkIGhhbmRsZVNjcm9sbGVkVG9BbmNo
b3IoY29uc3QgTm9kZSogYW5jaG9yTm9kZSk7DQogICAgIHZvaWQgaGFuZGxlU2Nyb2xsYmFyVXBk
YXRlKFNjcm9sbFZpZXcqKTsNCiAgICAgDQpAQCAtNDYyLDEwICs0NjMsMTAgQEAgcHJpdmF0ZToN
CiANCiAgICAgLy8gYXJpYS1tb2RhbCByZWxhdGVkDQogICAgIHZvaWQgZmluZE1vZGFsTm9kZXMo
KTsNCi0gICAgTm9kZSogY3VycmVudE1vZGFsTm9kZSgpOw0KKyAgICBFbGVtZW50KiBjdXJyZW50
TW9kYWxOb2RlKCk7DQogICAgIGJvb2wgaXNOb2RlVmlzaWJsZShOb2RlKikgY29uc3Q7DQotICAg
IHZvaWQgaGFuZGxlTW9kYWxDaGFuZ2UoTm9kZSopOw0KLQ0KKyAgICB2b2lkIGhhbmRsZU1vZGFs
Q2hhbmdlKEVsZW1lbnQmKTsNCisgICAgDQogICAgIERvY3VtZW50JiBtX2RvY3VtZW50Ow0KICAg
ICBjb25zdCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gbV9wYWdlSUQ7IC8vIGNvbnN0YW50IGZv
ciBvYmplY3QncyBsaWZldGltZS4NCiAgICAgSGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJp
bGl0eU9iamVjdD4+IG1fb2JqZWN0czsNCkBAIC00OTAsOCArNDkxLDEwIEBAIHByaXZhdGU6DQog
ICAgIExpc3RIYXNoU2V0PFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9saXZlUmVnaW9u
T2JqZWN0c1NldDsNCiANCiAgICAgVGltZXIgbV9mb2N1c01vZGFsTm9kZVRpbWVyOw0KLSAgICBO
b2RlKiBtX2N1cnJlbnRNb2RhbE5vZGU7DQotICAgIExpc3RIYXNoU2V0PE5vZGUqPiBtX21vZGFs
Tm9kZXNTZXQ7DQorICAgIFdlYWtQdHI8RWxlbWVudD4gbV9jdXJyZW50TW9kYWxFbGVtZW50Ow0K
KyAgICAvLyBNdWx0aXBsZSBhcmlhLW1vZGFscyBiZWhhdmlvciBpcyB1bmRlZmluZWQgYnkgc3Bl
Yy4gV2Uga2VlcCB0aGVtIHNvcnRlZCBiYXNlZCBvbiBET00gb3JkZXIgaGVyZS4NCisgICAgLy8g
SWYgdGhhdCBjaGFuZ2VzIHRvIHJlcXVpcmUgb25seSBvbmUgYXJpYS1tb2RhbCB3ZSBjb3VsZCBj
aGFuZ2UgdGhpcyB0byBhIFdlYWtIYXNoU2V0LCBvciBkaXNjYXJkIHRoZSBzZXQgY29tcGxldGVs
eS4NCisgICAgTGlzdEhhc2hTZXQ8RWxlbWVudCo+IG1fbW9kYWxFbGVtZW50c1NldDsNCiAgICAg
Ym9vbCBtX21vZGFsTm9kZXNJbml0aWFsaXplZCB7IGZhbHNlIH07DQogDQogICAgIFRpbWVyIG1f
cGVyZm9ybUNhY2hlVXBkYXRlVGltZXI7DQpAQCAtNTAyLDYgKzUwNSw3IEBAIHByaXZhdGU6DQog
ICAgIFdlYWtIYXNoU2V0PEVsZW1lbnQ+IG1fZGVmZXJyZWRTZWxlY3RlZENoaWxkcmVkQ2hhbmdl
ZExpc3Q7DQogICAgIExpc3RIYXNoU2V0PFJlZlB0cjxBWENvcmVPYmplY3Q+PiBtX2RlZmVycmVk
Q2hpbGRyZW5DaGFuZ2VkTGlzdDsNCiAgICAgTGlzdEhhc2hTZXQ8Tm9kZSo+IG1fZGVmZXJyZWRD
aGlsZHJlbkNoYW5nZWROb2RlTGlzdDsNCisgICAgV2Vha0hhc2hTZXQ8RWxlbWVudD4gbV9kZWZl
cnJlZE1vZGFsQ2hhbmdlZExpc3Q7DQogICAgIEhhc2hNYXA8RWxlbWVudCosIFN0cmluZz4gbV9k
ZWZlcnJlZFRleHRGb3JtQ29udHJvbFZhbHVlOw0KICAgICBIYXNoTWFwPEVsZW1lbnQqLCBRdWFs
aWZpZWROYW1lPiBtX2RlZmVycmVkQXR0cmlidXRlQ2hhbmdlOw0KICAgICBWZWN0b3I8c3RkOjpw
YWlyPE5vZGUqLCBOb2RlKj4+IG1fZGVmZXJyZWRGb2N1c2VkTm9kZUNoYW5nZTsNCkBAIC01NzMs
NyArNTc3LDggQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRO
b3RpZmljYXRpb24oRnJhbWUqLCBBWExvYWRpbmdFdmVudCkNCiBpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWExvYWRpbmdFdmVudCkgeyB9DQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6aGFuZGxlQWN0aXZlRGVzY2VuZGFudENoYW5nZWQoTm9kZSopIHsgfQ0KIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUFyaWFFeHBhbmRlZENoYW5nZShOb2RlKikgeyB9DQotaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlTW9kYWxDaGFuZ2UoTm9kZSopIHsgfQ0KK2lu
bGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1vZGFsQ2hhbmdlKEVsZW1lbnQqKSB7IH0N
CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpkZWZlck1vZGFsQ2hhbmdlKEVsZW1lbnQqKSB7
IH0NCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBcmlhUm9sZUNoYW5nZWQoTm9k
ZSopIHsgfQ0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyQXR0cmlidXRlQ2hhbmdl
SWZOZWVkZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKSB7IH0NCiBpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIEVsZW1lbnQqKSB7IH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcA0KaW5kZXggNjIyNDlhMzgxNTEu
LjczNzA2ODVhZDQ3IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcA0KQEAgLTIyOCw3ICsyMjgsOCBA
QCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpmaXJzdENo
aWxkKCkgY29uc3QNCiAgICAgaWYgKCFmaXJzdENoaWxkICYmICFjYW5IYXZlQ2hpbGRyZW4oKSkN
CiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Zmlyc3RDaGlsZCgpOw0K
IA0KLSAgICByZXR1cm4gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShmaXJzdENoaWxkKTsN
CisgICAgYXV0byBvYmplY3RDYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKTsNCisgICAgcmV0dXJuIG9i
amVjdENhY2hlID8gb2JqZWN0Q2FjaGUtPmdldE9yQ3JlYXRlKGZpcnN0Q2hpbGQpIDogbnVsbHB0
cjsNCiB9DQogDQogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6bGFzdENoaWxkKCkgY29uc3QNCkBAIC0yNDEsNyArMjQyLDggQEAgQWNjZXNzaWJpbGl0eU9i
amVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGFzdENoaWxkKCkgY29uc3QNCiAgICAg
aWYgKCFsYXN0Q2hpbGQgJiYgIWNhbkhhdmVDaGlsZHJlbigpKQ0KICAgICAgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpsYXN0Q2hpbGQoKTsNCiANCi0gICAgcmV0dXJuIGF4T2Jq
ZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUobGFzdENoaWxkKTsNCisgICAgYXV0byBvYmplY3RDYWNo
ZSA9IGF4T2JqZWN0Q2FjaGUoKTsNCisgICAgcmV0dXJuIG9iamVjdENhY2hlID8gb2JqZWN0Q2Fj
aGUtPmdldE9yQ3JlYXRlKGxhc3RDaGlsZCkgOiBudWxscHRyOw0KIH0NCiANCiBzdGF0aWMgaW5s
aW5lIFJlbmRlcklubGluZSogc3RhcnRPZkNvbnRpbnVhdGlvbnMoUmVuZGVyT2JqZWN0JiByZW5k
ZXJlcikNCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>