<?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>211415</bug_id>
          
          <creation_ts>2020-05-04 17:25:05 -0700</creation_ts>
          <short_desc>AX: Implement accessibility of HTML 5.1 Drag &amp; Drop</short_desc>
          <delta_ts>2020-05-06 13:11:44 -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>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1648844</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-04 17:25:05 -0700</bug_when>
    <thetext>Content attributes to be mapped:
- @draggable
- @dropzone (optional for the author, which represents a major problem for VoiceOver)

Events
- dragstart
- dragenter
- dragover
- drop</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648846</commentid>
    <comment_count>1</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-04 17:25:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/22695531&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648991</commentid>
    <comment_count>2</comment_count>
      <attachid>398480</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-04 23:55:29 -0700</bug_when>
    <thetext>Created attachment 398480
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648994</commentid>
    <comment_count>3</comment_count>
      <attachid>398481</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-05 00:00:58 -0700</bug_when>
    <thetext>Created attachment 398481
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649006</commentid>
    <comment_count>4</comment_count>
      <attachid>398486</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-05 00:36:39 -0700</bug_when>
    <thetext>Created attachment 398486
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649121</commentid>
    <comment_count>5</comment_count>
      <attachid>398490</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-05 01:18:22 -0700</bug_when>
    <thetext>Created attachment 398490
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649126</commentid>
    <comment_count>6</comment_count>
      <attachid>398492</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-05 01:32:20 -0700</bug_when>
    <thetext>Created attachment 398492
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649307</commentid>
    <comment_count>7</comment_count>
      <attachid>398534</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-05 11:58:50 -0700</bug_when>
    <thetext>Created attachment 398534
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649309</commentid>
    <comment_count>8</comment_count>
      <attachid>398535</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-05 12:00:34 -0700</bug_when>
    <thetext>Created attachment 398535
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649329</commentid>
    <comment_count>9</comment_count>
      <attachid>398540</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-05 12:27:23 -0700</bug_when>
    <thetext>Created attachment 398540
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649333</commentid>
    <comment_count>10</comment_count>
      <attachid>398542</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-05 12:41:05 -0700</bug_when>
    <thetext>Created attachment 398542
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649347</commentid>
    <comment_count>11</comment_count>
      <attachid>398546</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-05 13:23:00 -0700</bug_when>
    <thetext>Created attachment 398546
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649374</commentid>
    <comment_count>12</comment_count>
      <attachid>398551</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-05 14:25:55 -0700</bug_when>
    <thetext>Created attachment 398551
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649403</commentid>
    <comment_count>13</comment_count>
      <attachid>398559</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-05 15:28:47 -0700</bug_when>
    <thetext>Created attachment 398559
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649427</commentid>
    <comment_count>14</comment_count>
      <attachid>398567</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-05 16:37:27 -0700</bug_when>
    <thetext>Created attachment 398567
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649501</commentid>
    <comment_count>15</comment_count>
      <attachid>398589</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-05 22:18:43 -0700</bug_when>
    <thetext>Created attachment 398589
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649519</commentid>
    <comment_count>16</comment_count>
      <attachid>398595</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-05 23:46:16 -0700</bug_when>
    <thetext>Created attachment 398595
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649520</commentid>
    <comment_count>17</comment_count>
      <attachid>398596</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-05-05 23:48:36 -0700</bug_when>
    <thetext>Created attachment 398596
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649764</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-06 13:11:43 -0700</bug_when>
    <thetext>Committed r261248: &lt;https://trac.webkit.org/changeset/261248&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398596.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398480</attachid>
            <date>2020-05-04 23:55:29 -0700</date>
            <delta_ts>2020-05-05 00:00:58 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>26084</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTg0NGZjZmE2NTkuLmYwNWI2MTQzMDE2IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDQtMzAgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+DQogDQogICAgICAgICBib3JkZXItcmFkaXVzIGZh
aWxzIHRvIGNsaXAgaWZyYW1lIGNvbnRlbnRzDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
DQppbmRleCAwMDAwMDAwMDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0w
LDAgKzEsMjEgQEANCitUaGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRy
aWJ1dGVzIGFuZCBub3RpZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRp
b25zLg0KKw0KK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQg
c3F1YXJlIG9udG8gbWUuDQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0
YXJnZXQ6DQorDQorU3F1YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQn
KSBpcyB0cnVlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoJ2Ryb3BUYXJnZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMg
ZmFsc2UNCitUYXJnZXQgaXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitU
YXJnZXQgaXMgZ3JhYmJlZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVy
IGRyYWc6IDENCitBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0
aW9uRHJvcEFsbG93ZWQNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVT
VCBDT01QTEVURQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2RyYWdnYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxl
Lmh0bWwNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYTJhYzAzMGZl
MWUNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS5odG1sDQpAQCAtMCwwICsxLDk1IEBADQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPHN0eWxl
Pg0KKyAgICAjZHJvcFRhcmdldCwgI2RyYWdNZSB7IHRleHQtYWxpZ246IGNlbnRlcjsgZGlzcGxh
eTogdGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246IG1pZGRsZSB9DQorICAgICNkcm9wVGFyZ2V0
IHt3aWR0aDogMjU2cHg7IGhlaWdodDogMjU2cHg7IGJvcmRlcjogMXB4IGRhc2hlZH0NCisgICAg
I2RyYWdNZSB7LXdlYmtpdC11c2VyLWRyYWc6IGVsZW1lbnQ7IC13ZWJraXQtdXNlci1zZWxlY3Q6
IG5vbmU7IGJhY2tncm91bmQ6ICNmZjAwMDA7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDY0cHg7IGNv
bG9yOiB3aGl0ZX0NCis8L3N0eWxlPg0KKzxzY3JpcHQ+DQorICAgIHZhciBkcmFnTWU7DQorICAg
IHZhciBkcm9wVGFyZ2V0Ow0KKyAgICB2YXIgZXZlbnQ7DQorDQorICAgIGZ1bmN0aW9uIGRyb3Ao
ZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJUYXJnZXQgaXMgZ3JhYmJlZCBhZnRlciBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKyAgICAgICAgZGVi
dWcoIlRFU1QgUEFTU0VEOiBzcXVhcmUgZHJvcHBlZCIpOw0KKyAgICAgICAgZXZlbnQucHJldmVu
dERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBkcmFnT3ZlcihldmVudCkNCisg
ICAgew0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBm
dW5jdGlvbiBkcmFnU3RhcnQoZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJURVNUIGRy
YWcgc3RhcnQiKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBydW5UZXN0KCkNCisgICAgew0K
KyAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpDQorICAgICAgICAgICAgcmV0dXJuOw0K
Kw0KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOw0KKw0KKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZHJh
Z01lLm9mZnNldExlZnQgKyAxMCwgZHJhZ01lLm9mZnNldFRvcCArIGRyYWdNZS5vZmZzZXRIZWln
aHQgLyAyKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgICAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3
YXJkKDIwMCk7DQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcm9wVGFyZ2V0Lm9m
ZnNldExlZnQgKyAxMCwgZHJvcFRhcmdldC5vZmZzZXRUb3AgKyBkcm9wVGFyZ2V0Lm9mZnNldEhl
aWdodCAvIDIpOw0KKw0KKyAgICAgICAgZGVidWcoIlRhcmdldCBpcyBncmFiYmVkIGR1cmluZyBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKw0KKyAgICAgICAg
ZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgIH0NCis8
L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+DQorICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
Pg0KKyAgICA8ZGl2IGlkPSJ0ZXN0LWNvbnRhaW5lciI+DQorICAgICAgICA8ZGl2IGlkPSJkcm9w
VGFyZ2V0IiBkcm9wem9uZT0iY29weSI+RHJvcCB0aGUgcmVkIHNxdWFyZSBvbnRvIG1lLjwvZGl2
Pg0KKyAgICAgICAgPGhyLz4NCisgICAgICAgIDxwPkl0ZW1zIHRoYXQgY2FuIGJlIGRyYWdnZWQg
dG8gdGhlIGRyb3AgdGFyZ2V0OjwvcD4NCisgICAgICAgIDxkaXYgaWQ9ImRyYWdNZSIgZHJhZ2dh
YmxlPSJ0cnVlIj5TcXVhcmU8L2Rpdj4NCisgICAgICAgIDxoci8+DQorICAgIDwvZGl2Pg0KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgPHNjcmlwdD4NCisgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsNCisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
Y2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3RpZmljYXRpb25z
IGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLiIpOw0KKw0KKyAgICAgICAgZHJh
Z01lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYWdNZSIpOw0KKyAgICAgICAgZHJvcFRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcm9wVGFyZ2V0Iik7DQorDQorICAgICAg
ICBkcm9wVGFyZ2V0Lm9uZHJhZ292ZXIgPSBkcmFnT3ZlcjsNCisgICAgICAgIGRyb3BUYXJnZXQu
b25kcm9wID0gZHJvcDsNCisgICAgICAgIGRyYWdNZS5vbnN0YXJ0ID0gZHJhZ1N0YXJ0Ow0KKw0K
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSIp
Ow0KKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCdkcm9wVGFyZ2V0JykuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYR3Jh
YmJlZCcpIik7DQorDQorICAgICAgICBkZWJ1ZygiVGFyZ2V0IGlzIGdyYWJiZWQ6ICIgKyBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLm51bWJl
ckF0dHJpYnV0ZVZhbHVlKCJBWEdyYWJiZWQiKSk7DQorICAgICAgICBkZWJ1ZygiRHJvcHpvbmUg
ZWZmZWN0czogIiArIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgnZHJvcFRhcmdldCcpLmFyaWFEcm9wRWZmZWN0cyk7DQorDQorICAgICAgICBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5jdGlvbihlbGVtZW50LCBu
b3RpZmljYXRpb24pIHsNCisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uLnN0YXJ0c1dpdGgo
IkFYRHJhZyIpKSB7DQorICAgICAgICAgICAgICAgIGRlYnVnKG5vdGlmaWNhdGlvbik7DQorICAg
ICAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYRHJhZ2dpbmdEZXN0aW5hdGlvbkRy
b3BBbGxvd2VkIikgew0KKyAgICAgICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsNCisgICAgICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAg
IH0pOw0KKw0KKyAgICAgICAgc2V0VGltZW91dChydW5UZXN0KCksIDApOw0KKw0KKyAgICA8L3Nj
cmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IGJjMzkzOGViNDRhLi4x
YjQzY2I2MDE4MiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDUwIEBADQorMjAyMC0wNS0wNCAg
Q2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IElt
cGxlbWVudCBhY2Nlc3NpYmlsaXR5IG9mIEhUTUwgNS4xIERyYWcgJiBEcm9wDQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNDE1DQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjI2OTU1MzE+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4NCisNCisgICAgICAgIFN1cHBvcnQgSFRNTDUgZHJhZyBhbmQgZHJvcC4gU3VwcG9y
dCBkcm9wem9uZSBhdHRyaWJ1dGUuDQorICAgICAgICBBZGQgbmV3IG5vdGlmaWNhdGlvbnMgZm9y
IFZvaWNlT3ZlciB0byBjb25zdW1lLg0KKw0KKyAgICAgICAgSXQgYXBwZWFycyB0aGF0IG1vc3Qg
b2YgdGhlIGRyYWdnaW5nIHRlc3RzIGFyZSBza2lwcGVkIGJlY2F1c2Ugb2YgZXZlbnRTZW5kZXIg
aXNzdWVzLg0KKyAgICAgICAgSSB0aGluayB0aGlzIHRlc3QgY291bGQgZG8gYSBsaXR0bGUgbW9y
ZSBpZiB0aG9zZSBpc3N1ZXMgd2VyZSByZXNvbHZlZC4gU3BlY2lmaWNhbGx5LCBub3QgYWxsDQor
ICAgICAgICB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VlbiB0aGF0IGFyZSBleHBlY3RlZC4NCisN
CisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS5odG1sDQorDQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMgY29uc3QpOg0KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQVhIaWRkZW4gY29uc3QpOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoNCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6DQorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcm9wcGluZyBjb25zdCk6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNE
cmFnZ2luZyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNHcmFiYmVkKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpkZXRlcm1pbmVEcm9wRWZmZWN0cyk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJvcHBpbmcgY29uc3QpOiBEZWxldGVk
Lg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRz
QVJJQURyYWdnaW5nIGNvbnN0KTogRGVsZXRlZC4NCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FSSUFHcmFiYmVkKTogRGVsZXRlZC4NCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBUklBRHJvcEVmZmVj
dHMpOiBEZWxldGVkLg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZUF0dHJpYnV0ZURhdGEpOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW06DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVz
XSk6DQorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6XSk6DQorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluOg0KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6DQorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudCk6DQorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpkcmFnZ2luZ0VsZW1lbnQgY29uc3QpOg0KKyAgICAgICAgKiBwYWdlL0V2
ZW50SGFuZGxlci5oOg0KKw0KIDIwMjAtMDQtMzAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2df
MjJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgRml4IGZvciBjcmFzaCBpbiBBWExvZ2dlci4NCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQppbmRleCBhMzBk
MmE5MTUxNi4uNzczOTc5OTZhYjAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgNCkBAIC0zMDMsNyArMzAzLDEyIEBAIHB1YmxpYzoNCiAgICAgICAg
IEFYUmVxdWlyZWRTdGF0dXNDaGFuZ2VkLA0KICAgICAgICAgQVhUZXh0Q2hhbmdlZCwNCiAgICAg
ICAgIEFYQXJpYUF0dHJpYnV0ZUNoYW5nZWQsDQotICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdl
ZA0KKyAgICAgICAgQVhFbGVtZW50QnVzeUNoYW5nZWQsDQorICAgICAgICBBWERyYWdnaW5nU3Rh
cnRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbmRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbnRl
cmVkRHJvcFpvbmUsDQorICAgICAgICBBWERyYWdnaW5nRHJvcHBlZCwNCisgICAgICAgIEFYRHJh
Z2dpbmdFeGl0ZWREcm9wWm9uZQ0KICAgICB9Ow0KIA0KICAgICB2b2lkIHBvc3ROb3RpZmljYXRp
b24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVt
ZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7DQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCmluZGV4IDQwZWE1
ZmVhZTEyLi42NjJhM2ExZjllZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCkBAIC0yNTM0LDggKzI1MzQsOCBAQCBi
b29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMoKSBjb25zdA0K
IHsNCiAgICAgLy8gVGhpcyByZXR1cm5zIHdoZXRoZXIgdGhlIGVsZW1lbnQgc3VwcG9ydHMgYW55
IGdsb2JhbCBBUklBIGF0dHJpYnV0ZXMuDQogICAgIHJldHVybiBzdXBwb3J0c0xpdmVSZWdpb24o
KQ0KLSAgICAgICAgfHwgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKQ0KLSAgICAgICAgfHwgc3VwcG9y
dHNBUklBRHJvcHBpbmcoKQ0KKyAgICAgICAgfHwgc3VwcG9ydHNEcmFnZ2luZygpDQorICAgICAg
ICB8fCBzdXBwb3J0c0Ryb3BwaW5nKCkNCiAgICAgICAgIHx8IHN1cHBvcnRzQVJJQU93bnMoKQ0K
ICAgICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYXRvbWljQXR0cikNCiAgICAgICAgIHx8IGhh
c0F0dHJpYnV0ZShhcmlhX2J1c3lBdHRyKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCmluZGV4IGY1M2Q2OWI3YzMzLi5jN2U0MjFh
MGU3NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaA0KQEAgLTMyNywxMSArMzI3LDExIEBAIHB1YmxpYzoNCiAgICAgaW50IHBv
c0luU2V0KCkgY29uc3Qgb3ZlcnJpZGU7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0K
LSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9DQotICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0NCiAgICAgdm9pZCBzZXRBUklBR3JhYmJlZChib29sKSBvdmVy
cmlkZSB7IH0NCi0gICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkg
b3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQorICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZURy
b3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQogDQogICAgIC8vIENhbGxlZCBv
biB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBlbGVt
ZW50Lg0KICAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBv
aW50JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgNCmluZGV4IDFjODg5NThlZGJlLi5mOGQ2YWVjOGQ0MCAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaA0KQEAgLTc1NiwxMSArNzU2LDExIEBAIHB1YmxpYzoNCiAgICAgdmlydHVhbCBpbnQg
cG9zSW5TZXQoKSBjb25zdCA9IDA7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0KLSAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCA9IDA7DQotICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0ID0gMDsNCi0gICAgdmlydHVh
bCBib29sIGlzQVJJQUdyYWJiZWQoKSA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Ry
b3BwaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygp
IGNvbnN0ID0gMDsNCisgICAgdmlydHVhbCBib29sIGlzR3JhYmJlZCgpID0gMDsNCiAgICAgdmly
dHVhbCB2b2lkIHNldEFSSUFHcmFiYmVkKGJvb2wpID0gMDsNCi0gICAgdmlydHVhbCBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSA9IDA7DQorICAgIHZpcnR1YWwgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSA9IDA7DQogDQogICAgIC8vIENhbGxl
ZCBvbiB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBl
bGVtZW50Lg0KICAgICB2aXJ0dWFsIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3Qo
Y29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCmluZGV4IDAy
Yzc1NzAwYTg1Li43ZWQxODE4MDczZSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCkBAIC0xMDQw
LDMzICsxMDQwLDQwIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aGFzUG9wdXAo
KSBjb25zdA0KICAgICB9KTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IA0KK2Jvb2wgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c3VwcG9ydHNEcm9wcGluZygpIGNvbnN0DQogew0KLSAgICBjb25zdCBBdG9tU3Ry
aW5nJiBkcm9wRWZmZWN0ID0gZ2V0QXR0cmlidXRlKGFyaWFfZHJvcGVmZmVjdEF0dHIpOw0KLSAg
ICByZXR1cm4gIWRyb3BFZmZlY3QuaXNFbXB0eSgpOw0KKyAgICByZXR1cm4gIWdldEF0dHJpYnV0
ZShhcmlhX2Ryb3BlZmZlY3RBdHRyKS5pc0VtcHR5KCkgfHwgIWdldEF0dHJpYnV0ZShkcmFnZ2Fi
bGVBdHRyKS5pc0VtcHR5KCk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdA0KK2Jvb2wgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0DQogew0KICAgICBjb25zdCBBdG9tU3Ry
aW5nJiBncmFiYmVkID0gZ2V0QXR0cmlidXRlKGFyaWFfZ3JhYmJlZEF0dHIpOw0KLSAgICByZXR1
cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgInRydWUiKSB8fCBlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAiZmFsc2UiKTsNCisgICAgcmV0dXJu
IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdyYWJiZWQsICJ0cnVlIikgfHwgZXF1YWxM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgImZhbHNlIikgfHwNCisgICAgKGlzPEhU
TUxFbGVtZW50PihlbGVtZW50KCkpICYmIGRvd25jYXN0PEhUTUxFbGVtZW50Pihub2RlKCkpLT5k
cmFnZ2FibGUoKSk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNB
UklBR3JhYmJlZCgpDQorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0dyYWJiZWQo
KQ0KIHsNCisgICAgaWYgKG1haW5GcmFtZSgpICYmIG1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIo
KS5kcmFnZ2luZ0VsZW1lbnQoKSA9PSBlbGVtZW50KCkpDQorICAgICAgICByZXR1cm4gdHJ1ZTsN
CisgICAgDQogICAgIHJldHVybiBlbGVtZW50QXR0cmlidXRlVmFsdWUoYXJpYV9ncmFiYmVkQXR0
cik7DQogfQ0KIA0KLVZlY3RvcjxTdHJpbmc+IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRl
dGVybWluZUFSSUFEcm9wRWZmZWN0cygpDQorVmVjdG9yPFN0cmluZz4gQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKQ0KIHsNCiAgICAgY29uc3QgQXRvbVN0
cmluZyYgZHJvcEVmZmVjdHMgPSBnZXRBdHRyaWJ1dGUoYXJpYV9kcm9wZWZmZWN0QXR0cik7DQot
ICAgIGlmIChkcm9wRWZmZWN0cy5pc0VtcHR5KCkpIHsNCi0gICAgICAgIHJldHVybiB7IH07DQor
ICAgIGlmICghZHJvcEVmZmVjdHMuaXNFbXB0eSgpKSB7DQorICAgICAgICBTdHJpbmcgZHJvcEVm
ZmVjdHNTdHJpbmcgPSBkcm9wRWZmZWN0cy5zdHJpbmcoKTsNCisgICAgICAgIGRyb3BFZmZlY3Rz
U3RyaW5nLnJlcGxhY2UoJ1xuJywgJyAnKTsNCisgICAgICAgIHJldHVybiBkcm9wRWZmZWN0c1N0
cmluZy5zcGxpdCgnICcpOw0KICAgICB9DQogICAgIA0KLSAgICBTdHJpbmcgZHJvcEVmZmVjdHNT
dHJpbmcgPSBkcm9wRWZmZWN0cy5zdHJpbmcoKTsNCi0gICAgZHJvcEVmZmVjdHNTdHJpbmcucmVw
bGFjZSgnXG4nLCAnICcpOw0KLSAgICByZXR1cm4gZHJvcEVmZmVjdHNTdHJpbmcuc3BsaXQoJyAn
KTsNCisgICAgYXV0byBkcm9wem9uZSA9IGdldEF0dHJpYnV0ZShkcm9wem9uZUF0dHIpOw0KKyAg
ICBpZiAoIWRyb3B6b25lLmlzRW1wdHkoKSkNCisgICAgICAgIHJldHVybiBWZWN0b3I8U3RyaW5n
PiB7IGdldEF0dHJpYnV0ZShkcm9wem9uZUF0dHIpIH07DQorDQorICAgIHJldHVybiBWZWN0b3I8
U3RyaW5nPiB7IGdldEF0dHJpYnV0ZSh3ZWJraXRkcm9wem9uZUF0dHIpIH07DQogfQ0KICAgICAN
CiBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmV4cG9zZXNUaXRsZVVJRWxlbWVudCgp
IGNvbnN0DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuaA0KaW5kZXggN2VjZjA0YWEwNGUuLjE4OTRmODYyMDk1IDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5oDQpAQCAtMTcxLDEwICsxNzEsMTAgQEAgcHVibGljOg0KICAgICBi
b29sIGlzVmlzaWJsZVBvc2l0aW9uUmFuZ2VJbkRpZmZlcmVudERvY3VtZW50KGNvbnN0IFZpc2li
bGVQb3NpdGlvblJhbmdlJikgY29uc3Q7DQogICAgIGJvb2wgaGFzUG9wdXAoKSBjb25zdCBvdmVy
cmlkZTsNCiANCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IG92ZXJyaWRl
Ow0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGU7DQotICAg
IGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlOw0KLSAgICBWZWN0b3I8U3RyaW5nPiBkZXRl
cm1pbmVBUklBRHJvcEVmZmVjdHMoKSBvdmVycmlkZTsNCisgICAgYm9vbCBzdXBwb3J0c0Ryb3Bw
aW5nKCkgY29uc3Qgb3ZlcnJpZGU7DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlOw0KKyAgICBib29sIGlzR3JhYmJlZCgpIG92ZXJyaWRlOw0KKyAgICBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpIG92ZXJyaWRlOw0KICAgICANCiAgICAgVmlz
aWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvclBvaW50KGNvbnN0IEludFBvaW50JikgY29u
c3Qgb3ZlcnJpZGU7DQogICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRl
eCh1bnNpZ25lZCBpbmRleFZhbHVlLCBib29sIGxhc3RJbmRleE9LKSBjb25zdCBvdmVycmlkZTsN
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwDQppbmRleCA3ODkwOTA5YTgyZC4uZjUwY2M2Y2E5
ODMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHANCkBAIC0xNzIsMTAgKzE3MiwxMCBA
QCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9i
amVjdCYgb2JqZWN0LCBib29sIGlzUm9vdA0KICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6U3VwcG9ydHNQb3NJblNldCwgb2JqZWN0LnN1cHBvcnRzUG9zSW5TZXQoKSk7DQogICAgIHNl
dFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTZXRTaXplLCBvYmplY3Quc2V0U2l6ZSgpKTsNCiAg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlBvc0luU2V0LCBvYmplY3QucG9zSW5TZXQo
KSk7DQotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0FSSUFEcm9wcGlu
Zywgb2JqZWN0LnN1cHBvcnRzQVJJQURyb3BwaW5nKCkpOw0KLSAgICBzZXRQcm9wZXJ0eShBWFBy
b3BlcnR5TmFtZTo6U3VwcG9ydHNBUklBRHJhZ2dpbmcsIG9iamVjdC5zdXBwb3J0c0FSSUFEcmFn
Z2luZygpKTsNCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzQVJJQUdyYWJiZWQs
IG9iamVjdC5pc0FSSUFHcmFiYmVkKCkpOw0KLSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6QVJJQURyb3BFZmZlY3RzLCBvYmplY3QuZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkpOw0K
KyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNEcm9wcGluZywgb2JqZWN0
LnN1cHBvcnRzRHJvcHBpbmcoKSk7DQorICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpT
dXBwb3J0c0RyYWdnaW5nLCBvYmplY3Quc3VwcG9ydHNEcmFnZ2luZygpKTsNCisgICAgc2V0UHJv
cGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzR3JhYmJlZCwgb2JqZWN0LmlzR3JhYmJlZCgpKTsNCisg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkRyb3BFZmZlY3RzLCBvYmplY3QuZGV0ZXJt
aW5lRHJvcEVmZmVjdHMoKSk7DQogICAgIHNldE9iamVjdFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpUaXRsZVVJRWxlbWVudCwgb2JqZWN0LnRpdGxlVUlFbGVtZW50KCkpOw0KICAgICBzZXRQcm9w
ZXJ0eShBWFByb3BlcnR5TmFtZTo6RXhwb3Nlc1RpdGxlVUlFbGVtZW50LCBvYmplY3QuZXhwb3Nl
c1RpdGxlVUlFbGVtZW50KCkpOw0KICAgICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6VmVydGljYWxTY3JvbGxCYXIsIG9iamVjdC5zY3JvbGxCYXIoQWNjZXNzaWJpbGl0eU9yaWVu
dGF0aW9uOjpWZXJ0aWNhbCkpOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KaW5kZXggMWM5MzZm
ZGEyNmEuLjRjOTAyZWZlMGExIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCkBAIC04OSw3
ICs4OSw3IEBAIHByaXZhdGU6DQogICAgICAgICBBdXRvQ29tcGxldGVWYWx1ZSwNCiAgICAgICAg
IEFSSUFDb250cm9sc0VsZW1lbnRzLA0KICAgICAgICAgQVJJQURldGFpbHNFbGVtZW50cywNCi0g
ICAgICAgIEFSSUFEcm9wRWZmZWN0cywNCisgICAgICAgIERyb3BFZmZlY3RzLA0KICAgICAgICAg
QVJJQUVycm9yTWVzc2FnZUVsZW1lbnRzLA0KICAgICAgICAgQVJJQUlzTXVsdGlsaW5lLA0KICAg
ICAgICAgQVJJQUZsb3dUb0VsZW1lbnRzLA0KQEAgLTE2MSw3ICsxNjEsNyBAQCBwcml2YXRlOg0K
ICAgICAgICAgSXNBY2Nlc3NpYmlsaXR5SWdub3JlZCwNCiAgICAgICAgIElzQWN0aXZlRGVzY2Vu
ZGFudE9mRm9jdXNlZENvbnRhaW5lciwNCiAgICAgICAgIElzQW5vbnltb3VzTWF0aE9wZXJhdG9y
LA0KLSAgICAgICAgSXNBUklBR3JhYmJlZCwNCisgICAgICAgIElzR3JhYmJlZCwNCiAgICAgICAg
IElzQVJJQVRyZWVHcmlkUm93LA0KICAgICAgICAgSXNBdHRhY2htZW50LA0KICAgICAgICAgSXNC
dXR0b24sDQpAQCAtMjk5LDggKzI5OSw4IEBAIHByaXZhdGU6DQogICAgICAgICBTcGVha0FzLA0K
ICAgICAgICAgU3BlZWNoSGludCwNCiAgICAgICAgIFN0cmluZ1ZhbHVlLA0KLSAgICAgICAgU3Vw
cG9ydHNBUklBRHJhZ2dpbmcsDQotICAgICAgICBTdXBwb3J0c0FSSUFEcm9wcGluZywNCisgICAg
ICAgIFN1cHBvcnRzRHJhZ2dpbmcsDQorICAgICAgICBTdXBwb3J0c0Ryb3BwaW5nLA0KICAgICAg
ICAgU3VwcG9ydHNBUklBT3ducywNCiAgICAgICAgIFN1cHBvcnRzQ3VycmVudCwNCiAgICAgICAg
IFN1cHBvcnRzRGF0ZXRpbWVBdHRyaWJ1dGUsDQpAQCAtNTA0LDEwICs1MDQsMTAgQEAgcHJpdmF0
ZToNCiAgICAgYm9vbCBzdXBwb3J0c1Bvc0luU2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
Ym9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c1Bvc0luU2V0KTsgfQ0K
ICAgICBpbnQgc2V0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGludEF0dHJpYnV0ZVZh
bHVlKEFYUHJvcGVydHlOYW1lOjpTZXRTaXplKTsgfQ0KICAgICBpbnQgcG9zSW5TZXQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBpbnRBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6UG9z
SW5TZXQpOyB9DQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJ
QURyb3BwaW5nKTsgfQ0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0
c0FSSUFEcmFnZ2luZyk7IH0NCi0gICAgYm9vbCBpc0FSSUFHcmFiYmVkKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc0FSSUFHcmFiYmVkKTsg
fQ0KLSAgICBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSBvdmVycmlk
ZSB7IHJldHVybiB2ZWN0b3JBdHRyaWJ1dGVWYWx1ZTxTdHJpbmc+KEFYUHJvcGVydHlOYW1lOjpB
UklBRHJvcEVmZmVjdHMpOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9y
dHNEcm9wcGluZyk7IH0NCisgICAgYm9vbCBzdXBwb3J0c0RyYWdnaW5nKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0Ry
YWdnaW5nKTsgfQ0KKyAgICBib29sIGlzR3JhYmJlZCgpIG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNHcmFiYmVkKTsgfQ0KKyAgICBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpIG92ZXJyaWRlIHsgcmV0dXJuIHZlY3RvckF0
dHJpYnV0ZVZhbHVlPFN0cmluZz4oQVhQcm9wZXJ0eU5hbWU6OkRyb3BFZmZlY3RzKTsgfQ0KICAg
ICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JikgY29u
c3Qgb3ZlcnJpZGU7DQogICAgIEFYQ29yZU9iamVjdCogZm9jdXNlZFVJRWxlbWVudCgpIGNvbnN0
IG92ZXJyaWRlOw0KICAgICBBWENvcmVPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHBhcmVudE9iamVjdFVuaWdub3JlZCgpOyB9DQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0NCmluZGV4IDRm
ZWRmYTU2ZTM2Li5lM2YwN2FiZjQzMSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0NCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0NCkBAIC05Niw2ICs5NiwzMSBAQA0K
ICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUg
QCJBWFNlbGVjdGVkVGV4dE1hcmtlclJhbmdlIg0KICNlbmRpZg0KIA0KKyNpZm5kZWYga0FYRHJh
Z2dpbmdTb3VyY2VEcmFnQmVnYW5Ob3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5nU291
cmNlRHJhZ0JlZ2FuTm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2Fu
IikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVkTm90aWZp
Y2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5vdGlmaWNhdGlvbiBD
RlNUUigiQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBr
QVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtB
WERyYWdnaW5nRGVzdGluYXRpb25Ecm9wQWxsb3dlZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFn
Z2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FYRHJh
Z2dpbmdEZXN0aW5hdGlvbkRyb3BOb3RBbGxvd2VkTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhE
cmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcE5vdEFsbG93ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJh
Z2dpbmdEZXN0aW5hdGlvbkRyb3BOb3RBbGxvd2VkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtB
WERyYWdnaW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtB
WERyYWdnaW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJh
Z2dpbmdEZXN0aW5hdGlvbkRyYWdBY2NlcHRlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhE
cmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkTm90aWZpY2F0aW9uDQorI2RlZmluZSBr
QVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkTm90aWZpY2F0aW9uIENGU1RSKCJB
WERyYWdnaW5nRGVzdGluYXRpb25EcmFnTm90QWNjZXB0ZWQiKQ0KKyNlbmRpZg0KKw0KKw0KIC8v
IFZlcnkgbGFyZ2Ugc3RyaW5ncyBjYW4gbmVnYXRpdmVseSBpbXBhY3QgdGhlIHBlcmZvcm1hbmNl
IG9mIG5vdGlmaWNhdGlvbnMsIHNvIHRoaXMgbGVuZ3RoIGlzIGNob3NlbiB0byB0cnkgdG8gZml0
IGFuIGF2ZXJhZ2UgcGFyYWdyYXBoIG9yIGxpbmUgb2YgdGV4dCwgYnV0IG5vdCBhbGxvdyBzdHJp
bmdzIHRvIGJlIGxhcmdlIGVub3VnaCB0byBodXJ0IHBlcmZvcm1hbmNlLg0KIHN0YXRpYyBjb25z
dCBOU1VJbnRlZ2VyIEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsNCiANCkBA
IC0zNTMsNiArMzc4LDIxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFYQ29yZU9iamVjdCogb2JqLCBBWE5vdGlmaWNhdGlvbiBuDQogICAgICAgICBjYXNl
IEFYTWVudU9wZW5lZDoNCiAgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYTWVu
dU9wZW5lZE5vdGlmaWNhdGlvbjsNCiAgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2Ug
QVhEcmFnZ2luZ1N0YXJ0ZWQ6DQorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtB
WERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFr
Ow0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5nRW5kZWQ6DQorICAgICAgICAgICAgbWFjTm90aWZp
Y2F0aW9uID0gKGlkKWtBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVkTm90aWZpY2F0aW9uOw0KKyAg
ICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5nRW50ZXJlZERyb3Bab25l
Og0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ0Rlc3RpbmF0
aW9uRHJvcEFsbG93ZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAg
ICBjYXNlIEFYRHJhZ2dpbmdEcm9wcGVkOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9
IChpZClrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uOw0KKyAg
ICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5nRXhpdGVkRHJvcFpvbmU6
DQorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWERyYWdnaW5nRGVzdGluYXRp
b25EcmFnTm90QWNjZXB0ZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQogICAg
ICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgIHJldHVybjsNCiAgICAgfQ0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCmluZGV4IGYxYjhhZGI0YWFhLi45MjBkMmM0ZWRk
OCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KQEAgLTEzNTAs
MTAgKzEzNTAsMTAgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5EDQogICAg
ICAgICB8fCBiYWNraW5nT2JqZWN0LT5pc1Rvb2xiYXIoKSkNCiAgICAgICAgIFthZGRpdGlvbmFs
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPcmllbnRhdGlvbkF0dHJpYnV0ZV07DQogDQotICAg
IGlmIChiYWNraW5nT2JqZWN0LT5zdXBwb3J0c0FSSUFEcmFnZ2luZygpKQ0KKyAgICBpZiAoYmFj
a2luZ09iamVjdC0+c3VwcG9ydHNEcmFnZ2luZygpKQ0KICAgICAgICAgW2FkZGl0aW9uYWwgYWRk
T2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUdyYWJiZWRBdHRyaWJ1dGVdOw0KIA0KLSAgICBpZiAoYmFj
a2luZ09iamVjdC0+c3VwcG9ydHNBUklBRHJvcHBpbmcoKSkNCisgICAgaWYgKGJhY2tpbmdPYmpl
Y3QtPnN1cHBvcnRzRHJvcHBpbmcoKSkNCiAgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpO
U0FjY2Vzc2liaWxpdHlEcm9wRWZmZWN0c0F0dHJpYnV0ZV07DQogDQogICAgIGlmIChiYWNraW5n
T2JqZWN0LT5pc1RhYmxlKCkgJiYgYmFja2luZ09iamVjdC0+aXNFeHBvc2FibGUoKSAmJiBiYWNr
aW5nT2JqZWN0LT5zdXBwb3J0c1NlbGVjdGVkUm93cygpKQ0KQEAgLTI5MTcsMTAgKzI5MTcsMTAg
QEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5EDQogICAgICAgICByZXR1cm4g
QChiYWNraW5nT2JqZWN0LT5zZXRTaXplKCkpOw0KIA0KICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUg
aXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUdyYWJiZWRBdHRyaWJ1dGVdKQ0KLSAgICAg
ICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpiYWNraW5nT2JqZWN0LT5pc0FSSUFH
cmFiYmVkKCldOw0KKyAgICAgICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpiYWNr
aW5nT2JqZWN0LT5pc0dyYWJiZWQoKV07DQogDQogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0Vx
dWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5RHJvcEVmZmVjdHNBdHRyaWJ1dGVdKQ0KLSAgICAg
ICAgcmV0dXJuIGNyZWF0ZU5TQXJyYXkoYmFja2luZ09iamVjdC0+ZGV0ZXJtaW5lQVJJQURyb3BF
ZmZlY3RzKCkpLmF1dG9yZWxlYXNlKCk7DQorICAgICAgICByZXR1cm4gY3JlYXRlTlNBcnJheShi
YWNraW5nT2JqZWN0LT5kZXRlcm1pbmVEcm9wRWZmZWN0cygpKS5hdXRvcmVsZWFzZSgpOw0KIA0K
ICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVBs
YWNlaG9sZGVyVmFsdWVBdHRyaWJ1dGVdKQ0KICAgICAgICAgcmV0dXJuIGJhY2tpbmdPYmplY3Qt
PnBsYWNlaG9sZGVyVmFsdWUoKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluDQppbmRleCBkY2Q4Mzc4ZDk1NC4uY2IzMDQ5MDQwODkgMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbg0KKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4NCkBAIC0xMjEsNiArMTIxLDcgQEAgZGlzYWJs
ZXJlbW90ZXBsYXliYWNrDQogZGlzcG9zaXRpb24NCiBkb3dubG9hZA0KIGRyYWdnYWJsZQ0KK2Ry
b3B6b25lDQogd2Via2l0ZHJvcHpvbmUNCiBlbmN0eXBlDQogZW5kDQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwDQppbmRleCA4OWI2YjZkN2UxZi4uNGNjM2QwOWU3ODggMTAwNjQ0DQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHANCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcA0KQEAgLTIyNzQsNyArMjI3NCwzMCBAQCBib29s
IEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRU
eXBlLCBFbGVtZW50JiBkcmFnVA0KICAgICAgICAgZXZlbnQubW9kaWZpZXJzKCksIDAsIDAsIG51
bGxwdHIsIGV2ZW50LmZvcmNlKCksIE5vVGFwLCAmZGF0YVRyYW5zZmVyKTsNCiANCiAgICAgZHJh
Z1RhcmdldC5kaXNwYXRjaEV2ZW50KGRyYWdFdmVudCk7DQotICAgIHJldHVybiBkcmFnRXZlbnQt
PmRlZmF1bHRQcmV2ZW50ZWQoKTsNCisgICAgYm9vbCByZXN1bHQgPSBkcmFnRXZlbnQtPmRlZmF1
bHRQcmV2ZW50ZWQoKTsNCisNCisgICAgaWYgKGF1dG8qIGNhY2hlID0gbV9mcmFtZS5kb2N1bWVu
dCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgew0KKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkuZHJhZ3N0YXJ0RXZlbnQpDQorICAgICAgICAgICAgY2FjaGUtPnBvc3RO
b3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdTdGFydGVk
KTsNCisgICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJhZ2VuZEV2
ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBB
WE9iamVjdENhY2hlOjpBWERyYWdnaW5nRW5kZWQpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRU
eXBlID09IGV2ZW50TmFtZXMoKS5kcmFnZW50ZXJFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+
cG9zdE5vdGlmaWNhdGlvbigmZHJhZ1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0Vu
dGVyZWREcm9wWm9uZSk7DQorICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmRyYWdsZWF2ZUV2ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9u
KCZkcmFnVGFyZ2V0LCBBWE9iamVjdENhY2hlOjpBWERyYWdnaW5nRXhpdGVkRHJvcFpvbmUpOw0K
KyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kcm9wRXZlbnQpDQor
ICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0
Q2FjaGU6OkFYRHJhZ2dpbmdEcm9wcGVkKTsNCisgICAgfQ0KKw0KKyAgICBpZiAoIXJlc3VsdCkN
CisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgDQorICAgIHJldHVybiB0cnVlOw0KK30NCisN
CitFbGVtZW50KiBFdmVudEhhbmRsZXI6OmRyYWdnaW5nRWxlbWVudCgpIGNvbnN0DQorew0KKyAg
ICByZXR1cm4gZHJhZ1N0YXRlKCkuc291cmNlLmdldCgpOw0KIH0NCiANCiBzdGF0aWMgYm9vbCB0
YXJnZXRJc0ZyYW1lKE5vZGUqIHRhcmdldCwgRnJhbWUqJiBmcmFtZSkNCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuaA0KaW5kZXggYWRiMTVkYmI0YzUuLjExNGJiYzc4OWQzIDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KQEAgLTMzOCw2ICszMzgsNyBAQCBwdWJsaWM6DQogDQog
ICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPEN1cnNvcj4gc2VsZWN0Q3Vyc29yKGNvbnN0IEhp
dFRlc3RSZXN1bHQmLCBib29sIHNoaWZ0S2V5KTsNCiANCisgICAgRWxlbWVudCogZHJhZ2dpbmdF
bGVtZW50KCkgY29uc3Q7DQogcHJpdmF0ZToNCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkNCiAg
ICAgc3RhdGljIERyYWdTdGF0ZSYgZHJhZ1N0YXRlKCk7DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398481</attachid>
            <date>2020-05-05 00:00:58 -0700</date>
            <delta_ts>2020-05-05 00:36:39 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>26084</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTg0NGZjZmE2NTkuLmYwNWI2MTQzMDE2IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDQtMzAgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+DQogDQogICAgICAgICBib3JkZXItcmFkaXVzIGZh
aWxzIHRvIGNsaXAgaWZyYW1lIGNvbnRlbnRzDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
DQppbmRleCAwMDAwMDAwMDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0w
LDAgKzEsMjEgQEANCitUaGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRy
aWJ1dGVzIGFuZCBub3RpZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRp
b25zLg0KKw0KK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQg
c3F1YXJlIG9udG8gbWUuDQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0
YXJnZXQ6DQorDQorU3F1YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQn
KSBpcyB0cnVlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoJ2Ryb3BUYXJnZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMg
ZmFsc2UNCitUYXJnZXQgaXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitU
YXJnZXQgaXMgZ3JhYmJlZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVy
IGRyYWc6IDENCitBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0
aW9uRHJvcEFsbG93ZWQNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVT
VCBDT01QTEVURQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2RyYWdnYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxl
Lmh0bWwNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYTJhYzAzMGZl
MWUNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS5odG1sDQpAQCAtMCwwICsxLDk1IEBADQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPHN0eWxl
Pg0KKyAgICAjZHJvcFRhcmdldCwgI2RyYWdNZSB7IHRleHQtYWxpZ246IGNlbnRlcjsgZGlzcGxh
eTogdGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246IG1pZGRsZSB9DQorICAgICNkcm9wVGFyZ2V0
IHt3aWR0aDogMjU2cHg7IGhlaWdodDogMjU2cHg7IGJvcmRlcjogMXB4IGRhc2hlZH0NCisgICAg
I2RyYWdNZSB7LXdlYmtpdC11c2VyLWRyYWc6IGVsZW1lbnQ7IC13ZWJraXQtdXNlci1zZWxlY3Q6
IG5vbmU7IGJhY2tncm91bmQ6ICNmZjAwMDA7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDY0cHg7IGNv
bG9yOiB3aGl0ZX0NCis8L3N0eWxlPg0KKzxzY3JpcHQ+DQorICAgIHZhciBkcmFnTWU7DQorICAg
IHZhciBkcm9wVGFyZ2V0Ow0KKyAgICB2YXIgZXZlbnQ7DQorDQorICAgIGZ1bmN0aW9uIGRyb3Ao
ZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJUYXJnZXQgaXMgZ3JhYmJlZCBhZnRlciBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKyAgICAgICAgZGVi
dWcoIlRFU1QgUEFTU0VEOiBzcXVhcmUgZHJvcHBlZCIpOw0KKyAgICAgICAgZXZlbnQucHJldmVu
dERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBkcmFnT3ZlcihldmVudCkNCisg
ICAgew0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBm
dW5jdGlvbiBkcmFnU3RhcnQoZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJURVNUIGRy
YWcgc3RhcnQiKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBydW5UZXN0KCkNCisgICAgew0K
KyAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpDQorICAgICAgICAgICAgcmV0dXJuOw0K
Kw0KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOw0KKw0KKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZHJh
Z01lLm9mZnNldExlZnQgKyAxMCwgZHJhZ01lLm9mZnNldFRvcCArIGRyYWdNZS5vZmZzZXRIZWln
aHQgLyAyKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgICAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3
YXJkKDIwMCk7DQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcm9wVGFyZ2V0Lm9m
ZnNldExlZnQgKyAxMCwgZHJvcFRhcmdldC5vZmZzZXRUb3AgKyBkcm9wVGFyZ2V0Lm9mZnNldEhl
aWdodCAvIDIpOw0KKw0KKyAgICAgICAgZGVidWcoIlRhcmdldCBpcyBncmFiYmVkIGR1cmluZyBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKw0KKyAgICAgICAg
ZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgIH0NCis8
L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+DQorICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
Pg0KKyAgICA8ZGl2IGlkPSJ0ZXN0LWNvbnRhaW5lciI+DQorICAgICAgICA8ZGl2IGlkPSJkcm9w
VGFyZ2V0IiBkcm9wem9uZT0iY29weSI+RHJvcCB0aGUgcmVkIHNxdWFyZSBvbnRvIG1lLjwvZGl2
Pg0KKyAgICAgICAgPGhyLz4NCisgICAgICAgIDxwPkl0ZW1zIHRoYXQgY2FuIGJlIGRyYWdnZWQg
dG8gdGhlIGRyb3AgdGFyZ2V0OjwvcD4NCisgICAgICAgIDxkaXYgaWQ9ImRyYWdNZSIgZHJhZ2dh
YmxlPSJ0cnVlIj5TcXVhcmU8L2Rpdj4NCisgICAgICAgIDxoci8+DQorICAgIDwvZGl2Pg0KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgPHNjcmlwdD4NCisgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsNCisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
Y2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3RpZmljYXRpb25z
IGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLiIpOw0KKw0KKyAgICAgICAgZHJh
Z01lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYWdNZSIpOw0KKyAgICAgICAgZHJvcFRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcm9wVGFyZ2V0Iik7DQorDQorICAgICAg
ICBkcm9wVGFyZ2V0Lm9uZHJhZ292ZXIgPSBkcmFnT3ZlcjsNCisgICAgICAgIGRyb3BUYXJnZXQu
b25kcm9wID0gZHJvcDsNCisgICAgICAgIGRyYWdNZS5vbnN0YXJ0ID0gZHJhZ1N0YXJ0Ow0KKw0K
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSIp
Ow0KKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCdkcm9wVGFyZ2V0JykuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYR3Jh
YmJlZCcpIik7DQorDQorICAgICAgICBkZWJ1ZygiVGFyZ2V0IGlzIGdyYWJiZWQ6ICIgKyBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLm51bWJl
ckF0dHJpYnV0ZVZhbHVlKCJBWEdyYWJiZWQiKSk7DQorICAgICAgICBkZWJ1ZygiRHJvcHpvbmUg
ZWZmZWN0czogIiArIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgnZHJvcFRhcmdldCcpLmFyaWFEcm9wRWZmZWN0cyk7DQorDQorICAgICAgICBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5jdGlvbihlbGVtZW50LCBu
b3RpZmljYXRpb24pIHsNCisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uLnN0YXJ0c1dpdGgo
IkFYRHJhZyIpKSB7DQorICAgICAgICAgICAgICAgIGRlYnVnKG5vdGlmaWNhdGlvbik7DQorICAg
ICAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYRHJhZ2dpbmdEZXN0aW5hdGlvbkRy
b3BBbGxvd2VkIikgew0KKyAgICAgICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsNCisgICAgICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAg
IH0pOw0KKw0KKyAgICAgICAgc2V0VGltZW91dChydW5UZXN0KCksIDApOw0KKw0KKyAgICA8L3Nj
cmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IGJjMzkzOGViNDRhLi4x
YjQzY2I2MDE4MiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDUwIEBADQorMjAyMC0wNS0wNCAg
Q2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IElt
cGxlbWVudCBhY2Nlc3NpYmlsaXR5IG9mIEhUTUwgNS4xIERyYWcgJiBEcm9wDQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNDE1DQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjI2OTU1MzE+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4NCisNCisgICAgICAgIFN1cHBvcnQgSFRNTDUgZHJhZyBhbmQgZHJvcC4gU3VwcG9y
dCBkcm9wem9uZSBhdHRyaWJ1dGUuDQorICAgICAgICBBZGQgbmV3IG5vdGlmaWNhdGlvbnMgZm9y
IFZvaWNlT3ZlciB0byBjb25zdW1lLg0KKw0KKyAgICAgICAgSXQgYXBwZWFycyB0aGF0IG1vc3Qg
b2YgdGhlIGRyYWdnaW5nIHRlc3RzIGFyZSBza2lwcGVkIGJlY2F1c2Ugb2YgZXZlbnRTZW5kZXIg
aXNzdWVzLg0KKyAgICAgICAgSSB0aGluayB0aGlzIHRlc3QgY291bGQgZG8gYSBsaXR0bGUgbW9y
ZSBpZiB0aG9zZSBpc3N1ZXMgd2VyZSByZXNvbHZlZC4gU3BlY2lmaWNhbGx5LCBub3QgYWxsDQor
ICAgICAgICB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VlbiB0aGF0IGFyZSBleHBlY3RlZC4NCisN
CisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS5odG1sDQorDQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMgY29uc3QpOg0KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQVhIaWRkZW4gY29uc3QpOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoNCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6DQorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcm9wcGluZyBjb25zdCk6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNE
cmFnZ2luZyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNHcmFiYmVkKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpkZXRlcm1pbmVEcm9wRWZmZWN0cyk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJvcHBpbmcgY29uc3QpOiBEZWxldGVk
Lg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRz
QVJJQURyYWdnaW5nIGNvbnN0KTogRGVsZXRlZC4NCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FSSUFHcmFiYmVkKTogRGVsZXRlZC4NCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBUklBRHJvcEVmZmVj
dHMpOiBEZWxldGVkLg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZUF0dHJpYnV0ZURhdGEpOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW06DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVz
XSk6DQorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6XSk6DQorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluOg0KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6DQorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudCk6DQorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpkcmFnZ2luZ0VsZW1lbnQgY29uc3QpOg0KKyAgICAgICAgKiBwYWdlL0V2
ZW50SGFuZGxlci5oOg0KKw0KIDIwMjAtMDQtMzAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2df
MjJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgRml4IGZvciBjcmFzaCBpbiBBWExvZ2dlci4NCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQppbmRleCBhMzBk
MmE5MTUxNi4uNzczOTc5OTZhYjAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgNCkBAIC0zMDMsNyArMzAzLDEyIEBAIHB1YmxpYzoNCiAgICAgICAg
IEFYUmVxdWlyZWRTdGF0dXNDaGFuZ2VkLA0KICAgICAgICAgQVhUZXh0Q2hhbmdlZCwNCiAgICAg
ICAgIEFYQXJpYUF0dHJpYnV0ZUNoYW5nZWQsDQotICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdl
ZA0KKyAgICAgICAgQVhFbGVtZW50QnVzeUNoYW5nZWQsDQorICAgICAgICBBWERyYWdnaW5nU3Rh
cnRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbmRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbnRl
cmVkRHJvcFpvbmUsDQorICAgICAgICBBWERyYWdnaW5nRHJvcHBlZCwNCisgICAgICAgIEFYRHJh
Z2dpbmdFeGl0ZWREcm9wWm9uZQ0KICAgICB9Ow0KIA0KICAgICB2b2lkIHBvc3ROb3RpZmljYXRp
b24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVt
ZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7DQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCmluZGV4IDQwZWE1
ZmVhZTEyLi42NjJhM2ExZjllZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCkBAIC0yNTM0LDggKzI1MzQsOCBAQCBi
b29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMoKSBjb25zdA0K
IHsNCiAgICAgLy8gVGhpcyByZXR1cm5zIHdoZXRoZXIgdGhlIGVsZW1lbnQgc3VwcG9ydHMgYW55
IGdsb2JhbCBBUklBIGF0dHJpYnV0ZXMuDQogICAgIHJldHVybiBzdXBwb3J0c0xpdmVSZWdpb24o
KQ0KLSAgICAgICAgfHwgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKQ0KLSAgICAgICAgfHwgc3VwcG9y
dHNBUklBRHJvcHBpbmcoKQ0KKyAgICAgICAgfHwgc3VwcG9ydHNEcmFnZ2luZygpDQorICAgICAg
ICB8fCBzdXBwb3J0c0Ryb3BwaW5nKCkNCiAgICAgICAgIHx8IHN1cHBvcnRzQVJJQU93bnMoKQ0K
ICAgICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYXRvbWljQXR0cikNCiAgICAgICAgIHx8IGhh
c0F0dHJpYnV0ZShhcmlhX2J1c3lBdHRyKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCmluZGV4IGY1M2Q2OWI3YzMzLi5jN2U0MjFh
MGU3NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaA0KQEAgLTMyNywxMSArMzI3LDExIEBAIHB1YmxpYzoNCiAgICAgaW50IHBv
c0luU2V0KCkgY29uc3Qgb3ZlcnJpZGU7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0K
LSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9DQotICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0NCiAgICAgdm9pZCBzZXRBUklBR3JhYmJlZChib29sKSBvdmVy
cmlkZSB7IH0NCi0gICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkg
b3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQorICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZURy
b3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQogDQogICAgIC8vIENhbGxlZCBv
biB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBlbGVt
ZW50Lg0KICAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBv
aW50JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgNCmluZGV4IDFjODg5NThlZGJlLi5mOGQ2YWVjOGQ0MCAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaA0KQEAgLTc1NiwxMSArNzU2LDExIEBAIHB1YmxpYzoNCiAgICAgdmlydHVhbCBpbnQg
cG9zSW5TZXQoKSBjb25zdCA9IDA7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0KLSAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCA9IDA7DQotICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0ID0gMDsNCi0gICAgdmlydHVh
bCBib29sIGlzQVJJQUdyYWJiZWQoKSA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Ry
b3BwaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygp
IGNvbnN0ID0gMDsNCisgICAgdmlydHVhbCBib29sIGlzR3JhYmJlZCgpID0gMDsNCiAgICAgdmly
dHVhbCB2b2lkIHNldEFSSUFHcmFiYmVkKGJvb2wpID0gMDsNCi0gICAgdmlydHVhbCBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSA9IDA7DQorICAgIHZpcnR1YWwgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSA9IDA7DQogDQogICAgIC8vIENhbGxl
ZCBvbiB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBl
bGVtZW50Lg0KICAgICB2aXJ0dWFsIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3Qo
Y29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCmluZGV4IDAy
Yzc1NzAwYTg1Li43ZWQxODE4MDczZSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCkBAIC0xMDQw
LDMzICsxMDQwLDQwIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aGFzUG9wdXAo
KSBjb25zdA0KICAgICB9KTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IA0KK2Jvb2wgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c3VwcG9ydHNEcm9wcGluZygpIGNvbnN0DQogew0KLSAgICBjb25zdCBBdG9tU3Ry
aW5nJiBkcm9wRWZmZWN0ID0gZ2V0QXR0cmlidXRlKGFyaWFfZHJvcGVmZmVjdEF0dHIpOw0KLSAg
ICByZXR1cm4gIWRyb3BFZmZlY3QuaXNFbXB0eSgpOw0KKyAgICByZXR1cm4gIWdldEF0dHJpYnV0
ZShhcmlhX2Ryb3BlZmZlY3RBdHRyKS5pc0VtcHR5KCkgfHwgIWdldEF0dHJpYnV0ZShkcmFnZ2Fi
bGVBdHRyKS5pc0VtcHR5KCk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdA0KK2Jvb2wgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0DQogew0KICAgICBjb25zdCBBdG9tU3Ry
aW5nJiBncmFiYmVkID0gZ2V0QXR0cmlidXRlKGFyaWFfZ3JhYmJlZEF0dHIpOw0KLSAgICByZXR1
cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgInRydWUiKSB8fCBlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAiZmFsc2UiKTsNCisgICAgcmV0dXJu
IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdyYWJiZWQsICJ0cnVlIikgfHwgZXF1YWxM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgImZhbHNlIikNCisgICAgfHwgKGlzPEhU
TUxFbGVtZW50PihlbGVtZW50KCkpICYmIGRvd25jYXN0PEhUTUxFbGVtZW50Pihub2RlKCkpLT5k
cmFnZ2FibGUoKSk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNB
UklBR3JhYmJlZCgpDQorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0dyYWJiZWQo
KQ0KIHsNCisgICAgaWYgKG1haW5GcmFtZSgpICYmIG1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIo
KS5kcmFnZ2luZ0VsZW1lbnQoKSA9PSBlbGVtZW50KCkpDQorICAgICAgICByZXR1cm4gdHJ1ZTsN
CisgICAgDQogICAgIHJldHVybiBlbGVtZW50QXR0cmlidXRlVmFsdWUoYXJpYV9ncmFiYmVkQXR0
cik7DQogfQ0KIA0KLVZlY3RvcjxTdHJpbmc+IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRl
dGVybWluZUFSSUFEcm9wRWZmZWN0cygpDQorVmVjdG9yPFN0cmluZz4gQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKQ0KIHsNCiAgICAgY29uc3QgQXRvbVN0
cmluZyYgZHJvcEVmZmVjdHMgPSBnZXRBdHRyaWJ1dGUoYXJpYV9kcm9wZWZmZWN0QXR0cik7DQot
ICAgIGlmIChkcm9wRWZmZWN0cy5pc0VtcHR5KCkpIHsNCi0gICAgICAgIHJldHVybiB7IH07DQor
ICAgIGlmICghZHJvcEVmZmVjdHMuaXNFbXB0eSgpKSB7DQorICAgICAgICBTdHJpbmcgZHJvcEVm
ZmVjdHNTdHJpbmcgPSBkcm9wRWZmZWN0cy5zdHJpbmcoKTsNCisgICAgICAgIGRyb3BFZmZlY3Rz
U3RyaW5nLnJlcGxhY2UoJ1xuJywgJyAnKTsNCisgICAgICAgIHJldHVybiBkcm9wRWZmZWN0c1N0
cmluZy5zcGxpdCgnICcpOw0KICAgICB9DQogICAgIA0KLSAgICBTdHJpbmcgZHJvcEVmZmVjdHNT
dHJpbmcgPSBkcm9wRWZmZWN0cy5zdHJpbmcoKTsNCi0gICAgZHJvcEVmZmVjdHNTdHJpbmcucmVw
bGFjZSgnXG4nLCAnICcpOw0KLSAgICByZXR1cm4gZHJvcEVmZmVjdHNTdHJpbmcuc3BsaXQoJyAn
KTsNCisgICAgYXV0byBkcm9wem9uZSA9IGdldEF0dHJpYnV0ZShkcm9wem9uZUF0dHIpOw0KKyAg
ICBpZiAoIWRyb3B6b25lLmlzRW1wdHkoKSkNCisgICAgICAgIHJldHVybiBWZWN0b3I8U3RyaW5n
PiB7IGdldEF0dHJpYnV0ZShkcm9wem9uZUF0dHIpIH07DQorDQorICAgIHJldHVybiBWZWN0b3I8
U3RyaW5nPiB7IGdldEF0dHJpYnV0ZSh3ZWJraXRkcm9wem9uZUF0dHIpIH07DQogfQ0KICAgICAN
CiBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmV4cG9zZXNUaXRsZVVJRWxlbWVudCgp
IGNvbnN0DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuaA0KaW5kZXggN2VjZjA0YWEwNGUuLjE4OTRmODYyMDk1IDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5oDQpAQCAtMTcxLDEwICsxNzEsMTAgQEAgcHVibGljOg0KICAgICBi
b29sIGlzVmlzaWJsZVBvc2l0aW9uUmFuZ2VJbkRpZmZlcmVudERvY3VtZW50KGNvbnN0IFZpc2li
bGVQb3NpdGlvblJhbmdlJikgY29uc3Q7DQogICAgIGJvb2wgaGFzUG9wdXAoKSBjb25zdCBvdmVy
cmlkZTsNCiANCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IG92ZXJyaWRl
Ow0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGU7DQotICAg
IGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlOw0KLSAgICBWZWN0b3I8U3RyaW5nPiBkZXRl
cm1pbmVBUklBRHJvcEVmZmVjdHMoKSBvdmVycmlkZTsNCisgICAgYm9vbCBzdXBwb3J0c0Ryb3Bw
aW5nKCkgY29uc3Qgb3ZlcnJpZGU7DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlOw0KKyAgICBib29sIGlzR3JhYmJlZCgpIG92ZXJyaWRlOw0KKyAgICBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpIG92ZXJyaWRlOw0KICAgICANCiAgICAgVmlz
aWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvclBvaW50KGNvbnN0IEludFBvaW50JikgY29u
c3Qgb3ZlcnJpZGU7DQogICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRl
eCh1bnNpZ25lZCBpbmRleFZhbHVlLCBib29sIGxhc3RJbmRleE9LKSBjb25zdCBvdmVycmlkZTsN
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwDQppbmRleCA3ODkwOTA5YTgyZC4uZjUwY2M2Y2E5
ODMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHANCkBAIC0xNzIsMTAgKzE3MiwxMCBA
QCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9i
amVjdCYgb2JqZWN0LCBib29sIGlzUm9vdA0KICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6U3VwcG9ydHNQb3NJblNldCwgb2JqZWN0LnN1cHBvcnRzUG9zSW5TZXQoKSk7DQogICAgIHNl
dFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTZXRTaXplLCBvYmplY3Quc2V0U2l6ZSgpKTsNCiAg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlBvc0luU2V0LCBvYmplY3QucG9zSW5TZXQo
KSk7DQotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0FSSUFEcm9wcGlu
Zywgb2JqZWN0LnN1cHBvcnRzQVJJQURyb3BwaW5nKCkpOw0KLSAgICBzZXRQcm9wZXJ0eShBWFBy
b3BlcnR5TmFtZTo6U3VwcG9ydHNBUklBRHJhZ2dpbmcsIG9iamVjdC5zdXBwb3J0c0FSSUFEcmFn
Z2luZygpKTsNCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzQVJJQUdyYWJiZWQs
IG9iamVjdC5pc0FSSUFHcmFiYmVkKCkpOw0KLSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6QVJJQURyb3BFZmZlY3RzLCBvYmplY3QuZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkpOw0K
KyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNEcm9wcGluZywgb2JqZWN0
LnN1cHBvcnRzRHJvcHBpbmcoKSk7DQorICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpT
dXBwb3J0c0RyYWdnaW5nLCBvYmplY3Quc3VwcG9ydHNEcmFnZ2luZygpKTsNCisgICAgc2V0UHJv
cGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzR3JhYmJlZCwgb2JqZWN0LmlzR3JhYmJlZCgpKTsNCisg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkRyb3BFZmZlY3RzLCBvYmplY3QuZGV0ZXJt
aW5lRHJvcEVmZmVjdHMoKSk7DQogICAgIHNldE9iamVjdFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpUaXRsZVVJRWxlbWVudCwgb2JqZWN0LnRpdGxlVUlFbGVtZW50KCkpOw0KICAgICBzZXRQcm9w
ZXJ0eShBWFByb3BlcnR5TmFtZTo6RXhwb3Nlc1RpdGxlVUlFbGVtZW50LCBvYmplY3QuZXhwb3Nl
c1RpdGxlVUlFbGVtZW50KCkpOw0KICAgICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6VmVydGljYWxTY3JvbGxCYXIsIG9iamVjdC5zY3JvbGxCYXIoQWNjZXNzaWJpbGl0eU9yaWVu
dGF0aW9uOjpWZXJ0aWNhbCkpOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KaW5kZXggMWM5MzZm
ZGEyNmEuLjRjOTAyZWZlMGExIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCkBAIC04OSw3
ICs4OSw3IEBAIHByaXZhdGU6DQogICAgICAgICBBdXRvQ29tcGxldGVWYWx1ZSwNCiAgICAgICAg
IEFSSUFDb250cm9sc0VsZW1lbnRzLA0KICAgICAgICAgQVJJQURldGFpbHNFbGVtZW50cywNCi0g
ICAgICAgIEFSSUFEcm9wRWZmZWN0cywNCisgICAgICAgIERyb3BFZmZlY3RzLA0KICAgICAgICAg
QVJJQUVycm9yTWVzc2FnZUVsZW1lbnRzLA0KICAgICAgICAgQVJJQUlzTXVsdGlsaW5lLA0KICAg
ICAgICAgQVJJQUZsb3dUb0VsZW1lbnRzLA0KQEAgLTE2MSw3ICsxNjEsNyBAQCBwcml2YXRlOg0K
ICAgICAgICAgSXNBY2Nlc3NpYmlsaXR5SWdub3JlZCwNCiAgICAgICAgIElzQWN0aXZlRGVzY2Vu
ZGFudE9mRm9jdXNlZENvbnRhaW5lciwNCiAgICAgICAgIElzQW5vbnltb3VzTWF0aE9wZXJhdG9y
LA0KLSAgICAgICAgSXNBUklBR3JhYmJlZCwNCisgICAgICAgIElzR3JhYmJlZCwNCiAgICAgICAg
IElzQVJJQVRyZWVHcmlkUm93LA0KICAgICAgICAgSXNBdHRhY2htZW50LA0KICAgICAgICAgSXNC
dXR0b24sDQpAQCAtMjk5LDggKzI5OSw4IEBAIHByaXZhdGU6DQogICAgICAgICBTcGVha0FzLA0K
ICAgICAgICAgU3BlZWNoSGludCwNCiAgICAgICAgIFN0cmluZ1ZhbHVlLA0KLSAgICAgICAgU3Vw
cG9ydHNBUklBRHJhZ2dpbmcsDQotICAgICAgICBTdXBwb3J0c0FSSUFEcm9wcGluZywNCisgICAg
ICAgIFN1cHBvcnRzRHJhZ2dpbmcsDQorICAgICAgICBTdXBwb3J0c0Ryb3BwaW5nLA0KICAgICAg
ICAgU3VwcG9ydHNBUklBT3ducywNCiAgICAgICAgIFN1cHBvcnRzQ3VycmVudCwNCiAgICAgICAg
IFN1cHBvcnRzRGF0ZXRpbWVBdHRyaWJ1dGUsDQpAQCAtNTA0LDEwICs1MDQsMTAgQEAgcHJpdmF0
ZToNCiAgICAgYm9vbCBzdXBwb3J0c1Bvc0luU2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
Ym9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c1Bvc0luU2V0KTsgfQ0K
ICAgICBpbnQgc2V0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGludEF0dHJpYnV0ZVZh
bHVlKEFYUHJvcGVydHlOYW1lOjpTZXRTaXplKTsgfQ0KICAgICBpbnQgcG9zSW5TZXQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBpbnRBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6UG9z
SW5TZXQpOyB9DQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJ
QURyb3BwaW5nKTsgfQ0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0
c0FSSUFEcmFnZ2luZyk7IH0NCi0gICAgYm9vbCBpc0FSSUFHcmFiYmVkKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc0FSSUFHcmFiYmVkKTsg
fQ0KLSAgICBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSBvdmVycmlk
ZSB7IHJldHVybiB2ZWN0b3JBdHRyaWJ1dGVWYWx1ZTxTdHJpbmc+KEFYUHJvcGVydHlOYW1lOjpB
UklBRHJvcEVmZmVjdHMpOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9y
dHNEcm9wcGluZyk7IH0NCisgICAgYm9vbCBzdXBwb3J0c0RyYWdnaW5nKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0Ry
YWdnaW5nKTsgfQ0KKyAgICBib29sIGlzR3JhYmJlZCgpIG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNHcmFiYmVkKTsgfQ0KKyAgICBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpIG92ZXJyaWRlIHsgcmV0dXJuIHZlY3RvckF0
dHJpYnV0ZVZhbHVlPFN0cmluZz4oQVhQcm9wZXJ0eU5hbWU6OkRyb3BFZmZlY3RzKTsgfQ0KICAg
ICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JikgY29u
c3Qgb3ZlcnJpZGU7DQogICAgIEFYQ29yZU9iamVjdCogZm9jdXNlZFVJRWxlbWVudCgpIGNvbnN0
IG92ZXJyaWRlOw0KICAgICBBWENvcmVPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHBhcmVudE9iamVjdFVuaWdub3JlZCgpOyB9DQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0NCmluZGV4IDRm
ZWRmYTU2ZTM2Li5lM2YwN2FiZjQzMSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0NCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0NCkBAIC05Niw2ICs5NiwzMSBAQA0K
ICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUg
QCJBWFNlbGVjdGVkVGV4dE1hcmtlclJhbmdlIg0KICNlbmRpZg0KIA0KKyNpZm5kZWYga0FYRHJh
Z2dpbmdTb3VyY2VEcmFnQmVnYW5Ob3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5nU291
cmNlRHJhZ0JlZ2FuTm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2Fu
IikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVkTm90aWZp
Y2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5vdGlmaWNhdGlvbiBD
RlNUUigiQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBr
QVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtB
WERyYWdnaW5nRGVzdGluYXRpb25Ecm9wQWxsb3dlZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFn
Z2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FYRHJh
Z2dpbmdEZXN0aW5hdGlvbkRyb3BOb3RBbGxvd2VkTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhE
cmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcE5vdEFsbG93ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJh
Z2dpbmdEZXN0aW5hdGlvbkRyb3BOb3RBbGxvd2VkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtB
WERyYWdnaW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtB
WERyYWdnaW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJh
Z2dpbmdEZXN0aW5hdGlvbkRyYWdBY2NlcHRlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhE
cmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkTm90aWZpY2F0aW9uDQorI2RlZmluZSBr
QVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkTm90aWZpY2F0aW9uIENGU1RSKCJB
WERyYWdnaW5nRGVzdGluYXRpb25EcmFnTm90QWNjZXB0ZWQiKQ0KKyNlbmRpZg0KKw0KKw0KIC8v
IFZlcnkgbGFyZ2Ugc3RyaW5ncyBjYW4gbmVnYXRpdmVseSBpbXBhY3QgdGhlIHBlcmZvcm1hbmNl
IG9mIG5vdGlmaWNhdGlvbnMsIHNvIHRoaXMgbGVuZ3RoIGlzIGNob3NlbiB0byB0cnkgdG8gZml0
IGFuIGF2ZXJhZ2UgcGFyYWdyYXBoIG9yIGxpbmUgb2YgdGV4dCwgYnV0IG5vdCBhbGxvdyBzdHJp
bmdzIHRvIGJlIGxhcmdlIGVub3VnaCB0byBodXJ0IHBlcmZvcm1hbmNlLg0KIHN0YXRpYyBjb25z
dCBOU1VJbnRlZ2VyIEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsNCiANCkBA
IC0zNTMsNiArMzc4LDIxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFYQ29yZU9iamVjdCogb2JqLCBBWE5vdGlmaWNhdGlvbiBuDQogICAgICAgICBjYXNl
IEFYTWVudU9wZW5lZDoNCiAgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYTWVu
dU9wZW5lZE5vdGlmaWNhdGlvbjsNCiAgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2Ug
QVhEcmFnZ2luZ1N0YXJ0ZWQ6DQorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtB
WERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFr
Ow0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5nRW5kZWQ6DQorICAgICAgICAgICAgbWFjTm90aWZp
Y2F0aW9uID0gKGlkKWtBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVkTm90aWZpY2F0aW9uOw0KKyAg
ICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5nRW50ZXJlZERyb3Bab25l
Og0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ0Rlc3RpbmF0
aW9uRHJvcEFsbG93ZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAg
ICBjYXNlIEFYRHJhZ2dpbmdEcm9wcGVkOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9
IChpZClrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uOw0KKyAg
ICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5nRXhpdGVkRHJvcFpvbmU6
DQorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWERyYWdnaW5nRGVzdGluYXRp
b25EcmFnTm90QWNjZXB0ZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQogICAg
ICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgIHJldHVybjsNCiAgICAgfQ0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCmluZGV4IGYxYjhhZGI0YWFhLi45MjBkMmM0ZWRk
OCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KQEAgLTEzNTAs
MTAgKzEzNTAsMTAgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5EDQogICAg
ICAgICB8fCBiYWNraW5nT2JqZWN0LT5pc1Rvb2xiYXIoKSkNCiAgICAgICAgIFthZGRpdGlvbmFs
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPcmllbnRhdGlvbkF0dHJpYnV0ZV07DQogDQotICAg
IGlmIChiYWNraW5nT2JqZWN0LT5zdXBwb3J0c0FSSUFEcmFnZ2luZygpKQ0KKyAgICBpZiAoYmFj
a2luZ09iamVjdC0+c3VwcG9ydHNEcmFnZ2luZygpKQ0KICAgICAgICAgW2FkZGl0aW9uYWwgYWRk
T2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUdyYWJiZWRBdHRyaWJ1dGVdOw0KIA0KLSAgICBpZiAoYmFj
a2luZ09iamVjdC0+c3VwcG9ydHNBUklBRHJvcHBpbmcoKSkNCisgICAgaWYgKGJhY2tpbmdPYmpl
Y3QtPnN1cHBvcnRzRHJvcHBpbmcoKSkNCiAgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpO
U0FjY2Vzc2liaWxpdHlEcm9wRWZmZWN0c0F0dHJpYnV0ZV07DQogDQogICAgIGlmIChiYWNraW5n
T2JqZWN0LT5pc1RhYmxlKCkgJiYgYmFja2luZ09iamVjdC0+aXNFeHBvc2FibGUoKSAmJiBiYWNr
aW5nT2JqZWN0LT5zdXBwb3J0c1NlbGVjdGVkUm93cygpKQ0KQEAgLTI5MTcsMTAgKzI5MTcsMTAg
QEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5EDQogICAgICAgICByZXR1cm4g
QChiYWNraW5nT2JqZWN0LT5zZXRTaXplKCkpOw0KIA0KICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUg
aXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUdyYWJiZWRBdHRyaWJ1dGVdKQ0KLSAgICAg
ICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpiYWNraW5nT2JqZWN0LT5pc0FSSUFH
cmFiYmVkKCldOw0KKyAgICAgICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpiYWNr
aW5nT2JqZWN0LT5pc0dyYWJiZWQoKV07DQogDQogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0Vx
dWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5RHJvcEVmZmVjdHNBdHRyaWJ1dGVdKQ0KLSAgICAg
ICAgcmV0dXJuIGNyZWF0ZU5TQXJyYXkoYmFja2luZ09iamVjdC0+ZGV0ZXJtaW5lQVJJQURyb3BF
ZmZlY3RzKCkpLmF1dG9yZWxlYXNlKCk7DQorICAgICAgICByZXR1cm4gY3JlYXRlTlNBcnJheShi
YWNraW5nT2JqZWN0LT5kZXRlcm1pbmVEcm9wRWZmZWN0cygpKS5hdXRvcmVsZWFzZSgpOw0KIA0K
ICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVBs
YWNlaG9sZGVyVmFsdWVBdHRyaWJ1dGVdKQ0KICAgICAgICAgcmV0dXJuIGJhY2tpbmdPYmplY3Qt
PnBsYWNlaG9sZGVyVmFsdWUoKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluDQppbmRleCBkY2Q4Mzc4ZDk1NC4uY2IzMDQ5MDQwODkgMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbg0KKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4NCkBAIC0xMjEsNiArMTIxLDcgQEAgZGlzYWJs
ZXJlbW90ZXBsYXliYWNrDQogZGlzcG9zaXRpb24NCiBkb3dubG9hZA0KIGRyYWdnYWJsZQ0KK2Ry
b3B6b25lDQogd2Via2l0ZHJvcHpvbmUNCiBlbmN0eXBlDQogZW5kDQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwDQppbmRleCA4OWI2YjZkN2UxZi4uNGNjM2QwOWU3ODggMTAwNjQ0DQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHANCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcA0KQEAgLTIyNzQsNyArMjI3NCwzMCBAQCBib29s
IEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRU
eXBlLCBFbGVtZW50JiBkcmFnVA0KICAgICAgICAgZXZlbnQubW9kaWZpZXJzKCksIDAsIDAsIG51
bGxwdHIsIGV2ZW50LmZvcmNlKCksIE5vVGFwLCAmZGF0YVRyYW5zZmVyKTsNCiANCiAgICAgZHJh
Z1RhcmdldC5kaXNwYXRjaEV2ZW50KGRyYWdFdmVudCk7DQotICAgIHJldHVybiBkcmFnRXZlbnQt
PmRlZmF1bHRQcmV2ZW50ZWQoKTsNCisgICAgYm9vbCByZXN1bHQgPSBkcmFnRXZlbnQtPmRlZmF1
bHRQcmV2ZW50ZWQoKTsNCisNCisgICAgaWYgKGF1dG8qIGNhY2hlID0gbV9mcmFtZS5kb2N1bWVu
dCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgew0KKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkuZHJhZ3N0YXJ0RXZlbnQpDQorICAgICAgICAgICAgY2FjaGUtPnBvc3RO
b3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdTdGFydGVk
KTsNCisgICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJhZ2VuZEV2
ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBB
WE9iamVjdENhY2hlOjpBWERyYWdnaW5nRW5kZWQpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRU
eXBlID09IGV2ZW50TmFtZXMoKS5kcmFnZW50ZXJFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+
cG9zdE5vdGlmaWNhdGlvbigmZHJhZ1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0Vu
dGVyZWREcm9wWm9uZSk7DQorICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmRyYWdsZWF2ZUV2ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9u
KCZkcmFnVGFyZ2V0LCBBWE9iamVjdENhY2hlOjpBWERyYWdnaW5nRXhpdGVkRHJvcFpvbmUpOw0K
KyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kcm9wRXZlbnQpDQor
ICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0
Q2FjaGU6OkFYRHJhZ2dpbmdEcm9wcGVkKTsNCisgICAgfQ0KKw0KKyAgICBpZiAoIXJlc3VsdCkN
CisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgDQorICAgIHJldHVybiB0cnVlOw0KK30NCisN
CitFbGVtZW50KiBFdmVudEhhbmRsZXI6OmRyYWdnaW5nRWxlbWVudCgpIGNvbnN0DQorew0KKyAg
ICByZXR1cm4gZHJhZ1N0YXRlKCkuc291cmNlLmdldCgpOw0KIH0NCiANCiBzdGF0aWMgYm9vbCB0
YXJnZXRJc0ZyYW1lKE5vZGUqIHRhcmdldCwgRnJhbWUqJiBmcmFtZSkNCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuaA0KaW5kZXggYWRiMTVkYmI0YzUuLjExNGJiYzc4OWQzIDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KQEAgLTMzOCw2ICszMzgsNyBAQCBwdWJsaWM6DQogDQog
ICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPEN1cnNvcj4gc2VsZWN0Q3Vyc29yKGNvbnN0IEhp
dFRlc3RSZXN1bHQmLCBib29sIHNoaWZ0S2V5KTsNCiANCisgICAgRWxlbWVudCogZHJhZ2dpbmdF
bGVtZW50KCkgY29uc3Q7DQogcHJpdmF0ZToNCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkNCiAg
ICAgc3RhdGljIERyYWdTdGF0ZSYgZHJhZ1N0YXRlKCk7DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398486</attachid>
            <date>2020-05-05 00:36:39 -0700</date>
            <delta_ts>2020-05-05 01:18:22 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>27016</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTg0NGZjZmE2NTkuLmYwNWI2MTQzMDE2IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDQtMzAgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+DQogDQogICAgICAgICBib3JkZXItcmFkaXVzIGZh
aWxzIHRvIGNsaXAgaWZyYW1lIGNvbnRlbnRzDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
DQppbmRleCAwMDAwMDAwMDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0w
LDAgKzEsMjEgQEANCitUaGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRy
aWJ1dGVzIGFuZCBub3RpZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRp
b25zLg0KKw0KK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQg
c3F1YXJlIG9udG8gbWUuDQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0
YXJnZXQ6DQorDQorU3F1YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQn
KSBpcyB0cnVlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoJ2Ryb3BUYXJnZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMg
ZmFsc2UNCitUYXJnZXQgaXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitU
YXJnZXQgaXMgZ3JhYmJlZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVy
IGRyYWc6IDENCitBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0
aW9uRHJvcEFsbG93ZWQNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVT
VCBDT01QTEVURQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2RyYWdnYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxl
Lmh0bWwNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYTJhYzAzMGZl
MWUNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS5odG1sDQpAQCAtMCwwICsxLDk1IEBADQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPHN0eWxl
Pg0KKyAgICAjZHJvcFRhcmdldCwgI2RyYWdNZSB7IHRleHQtYWxpZ246IGNlbnRlcjsgZGlzcGxh
eTogdGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246IG1pZGRsZSB9DQorICAgICNkcm9wVGFyZ2V0
IHt3aWR0aDogMjU2cHg7IGhlaWdodDogMjU2cHg7IGJvcmRlcjogMXB4IGRhc2hlZH0NCisgICAg
I2RyYWdNZSB7LXdlYmtpdC11c2VyLWRyYWc6IGVsZW1lbnQ7IC13ZWJraXQtdXNlci1zZWxlY3Q6
IG5vbmU7IGJhY2tncm91bmQ6ICNmZjAwMDA7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDY0cHg7IGNv
bG9yOiB3aGl0ZX0NCis8L3N0eWxlPg0KKzxzY3JpcHQ+DQorICAgIHZhciBkcmFnTWU7DQorICAg
IHZhciBkcm9wVGFyZ2V0Ow0KKyAgICB2YXIgZXZlbnQ7DQorDQorICAgIGZ1bmN0aW9uIGRyb3Ao
ZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJUYXJnZXQgaXMgZ3JhYmJlZCBhZnRlciBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKyAgICAgICAgZGVi
dWcoIlRFU1QgUEFTU0VEOiBzcXVhcmUgZHJvcHBlZCIpOw0KKyAgICAgICAgZXZlbnQucHJldmVu
dERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBkcmFnT3ZlcihldmVudCkNCisg
ICAgew0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBm
dW5jdGlvbiBkcmFnU3RhcnQoZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJURVNUIGRy
YWcgc3RhcnQiKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBydW5UZXN0KCkNCisgICAgew0K
KyAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpDQorICAgICAgICAgICAgcmV0dXJuOw0K
Kw0KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOw0KKw0KKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZHJh
Z01lLm9mZnNldExlZnQgKyAxMCwgZHJhZ01lLm9mZnNldFRvcCArIGRyYWdNZS5vZmZzZXRIZWln
aHQgLyAyKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgICAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3
YXJkKDIwMCk7DQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcm9wVGFyZ2V0Lm9m
ZnNldExlZnQgKyAxMCwgZHJvcFRhcmdldC5vZmZzZXRUb3AgKyBkcm9wVGFyZ2V0Lm9mZnNldEhl
aWdodCAvIDIpOw0KKw0KKyAgICAgICAgZGVidWcoIlRhcmdldCBpcyBncmFiYmVkIGR1cmluZyBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKw0KKyAgICAgICAg
ZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgIH0NCis8
L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+DQorICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
Pg0KKyAgICA8ZGl2IGlkPSJ0ZXN0LWNvbnRhaW5lciI+DQorICAgICAgICA8ZGl2IGlkPSJkcm9w
VGFyZ2V0IiBkcm9wem9uZT0iY29weSI+RHJvcCB0aGUgcmVkIHNxdWFyZSBvbnRvIG1lLjwvZGl2
Pg0KKyAgICAgICAgPGhyLz4NCisgICAgICAgIDxwPkl0ZW1zIHRoYXQgY2FuIGJlIGRyYWdnZWQg
dG8gdGhlIGRyb3AgdGFyZ2V0OjwvcD4NCisgICAgICAgIDxkaXYgaWQ9ImRyYWdNZSIgZHJhZ2dh
YmxlPSJ0cnVlIj5TcXVhcmU8L2Rpdj4NCisgICAgICAgIDxoci8+DQorICAgIDwvZGl2Pg0KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgPHNjcmlwdD4NCisgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsNCisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
Y2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3RpZmljYXRpb25z
IGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLiIpOw0KKw0KKyAgICAgICAgZHJh
Z01lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYWdNZSIpOw0KKyAgICAgICAgZHJvcFRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcm9wVGFyZ2V0Iik7DQorDQorICAgICAg
ICBkcm9wVGFyZ2V0Lm9uZHJhZ292ZXIgPSBkcmFnT3ZlcjsNCisgICAgICAgIGRyb3BUYXJnZXQu
b25kcm9wID0gZHJvcDsNCisgICAgICAgIGRyYWdNZS5vbnN0YXJ0ID0gZHJhZ1N0YXJ0Ow0KKw0K
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSIp
Ow0KKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCdkcm9wVGFyZ2V0JykuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYR3Jh
YmJlZCcpIik7DQorDQorICAgICAgICBkZWJ1ZygiVGFyZ2V0IGlzIGdyYWJiZWQ6ICIgKyBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLm51bWJl
ckF0dHJpYnV0ZVZhbHVlKCJBWEdyYWJiZWQiKSk7DQorICAgICAgICBkZWJ1ZygiRHJvcHpvbmUg
ZWZmZWN0czogIiArIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgnZHJvcFRhcmdldCcpLmFyaWFEcm9wRWZmZWN0cyk7DQorDQorICAgICAgICBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5jdGlvbihlbGVtZW50LCBu
b3RpZmljYXRpb24pIHsNCisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uLnN0YXJ0c1dpdGgo
IkFYRHJhZyIpKSB7DQorICAgICAgICAgICAgICAgIGRlYnVnKG5vdGlmaWNhdGlvbik7DQorICAg
ICAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYRHJhZ2dpbmdEZXN0aW5hdGlvbkRy
b3BBbGxvd2VkIikgew0KKyAgICAgICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsNCisgICAgICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAg
IH0pOw0KKw0KKyAgICAgICAgc2V0VGltZW91dChydW5UZXN0KCksIDApOw0KKw0KKyAgICA8L3Nj
cmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IGJjMzkzOGViNDRhLi4x
YjQzY2I2MDE4MiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDUwIEBADQorMjAyMC0wNS0wNCAg
Q2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IElt
cGxlbWVudCBhY2Nlc3NpYmlsaXR5IG9mIEhUTUwgNS4xIERyYWcgJiBEcm9wDQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNDE1DQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjI2OTU1MzE+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4NCisNCisgICAgICAgIFN1cHBvcnQgSFRNTDUgZHJhZyBhbmQgZHJvcC4gU3VwcG9y
dCBkcm9wem9uZSBhdHRyaWJ1dGUuDQorICAgICAgICBBZGQgbmV3IG5vdGlmaWNhdGlvbnMgZm9y
IFZvaWNlT3ZlciB0byBjb25zdW1lLg0KKw0KKyAgICAgICAgSXQgYXBwZWFycyB0aGF0IG1vc3Qg
b2YgdGhlIGRyYWdnaW5nIHRlc3RzIGFyZSBza2lwcGVkIGJlY2F1c2Ugb2YgZXZlbnRTZW5kZXIg
aXNzdWVzLg0KKyAgICAgICAgSSB0aGluayB0aGlzIHRlc3QgY291bGQgZG8gYSBsaXR0bGUgbW9y
ZSBpZiB0aG9zZSBpc3N1ZXMgd2VyZSByZXNvbHZlZC4gU3BlY2lmaWNhbGx5LCBub3QgYWxsDQor
ICAgICAgICB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VlbiB0aGF0IGFyZSBleHBlY3RlZC4NCisN
CisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS5odG1sDQorDQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMgY29uc3QpOg0KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQVhIaWRkZW4gY29uc3QpOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoNCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6DQorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcm9wcGluZyBjb25zdCk6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNE
cmFnZ2luZyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNHcmFiYmVkKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpkZXRlcm1pbmVEcm9wRWZmZWN0cyk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJvcHBpbmcgY29uc3QpOiBEZWxldGVk
Lg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRz
QVJJQURyYWdnaW5nIGNvbnN0KTogRGVsZXRlZC4NCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FSSUFHcmFiYmVkKTogRGVsZXRlZC4NCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBUklBRHJvcEVmZmVj
dHMpOiBEZWxldGVkLg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZUF0dHJpYnV0ZURhdGEpOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW06DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVz
XSk6DQorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6XSk6DQorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluOg0KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6DQorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudCk6DQorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpkcmFnZ2luZ0VsZW1lbnQgY29uc3QpOg0KKyAgICAgICAgKiBwYWdlL0V2
ZW50SGFuZGxlci5oOg0KKw0KIDIwMjAtMDQtMzAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2df
MjJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgRml4IGZvciBjcmFzaCBpbiBBWExvZ2dlci4NCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQppbmRleCBhMzBk
MmE5MTUxNi4uNzczOTc5OTZhYjAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgNCkBAIC0zMDMsNyArMzAzLDEyIEBAIHB1YmxpYzoNCiAgICAgICAg
IEFYUmVxdWlyZWRTdGF0dXNDaGFuZ2VkLA0KICAgICAgICAgQVhUZXh0Q2hhbmdlZCwNCiAgICAg
ICAgIEFYQXJpYUF0dHJpYnV0ZUNoYW5nZWQsDQotICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdl
ZA0KKyAgICAgICAgQVhFbGVtZW50QnVzeUNoYW5nZWQsDQorICAgICAgICBBWERyYWdnaW5nU3Rh
cnRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbmRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbnRl
cmVkRHJvcFpvbmUsDQorICAgICAgICBBWERyYWdnaW5nRHJvcHBlZCwNCisgICAgICAgIEFYRHJh
Z2dpbmdFeGl0ZWREcm9wWm9uZQ0KICAgICB9Ow0KIA0KICAgICB2b2lkIHBvc3ROb3RpZmljYXRp
b24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVt
ZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7DQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCmluZGV4IDQwZWE1
ZmVhZTEyLi42NjJhM2ExZjllZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCkBAIC0yNTM0LDggKzI1MzQsOCBAQCBi
b29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMoKSBjb25zdA0K
IHsNCiAgICAgLy8gVGhpcyByZXR1cm5zIHdoZXRoZXIgdGhlIGVsZW1lbnQgc3VwcG9ydHMgYW55
IGdsb2JhbCBBUklBIGF0dHJpYnV0ZXMuDQogICAgIHJldHVybiBzdXBwb3J0c0xpdmVSZWdpb24o
KQ0KLSAgICAgICAgfHwgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKQ0KLSAgICAgICAgfHwgc3VwcG9y
dHNBUklBRHJvcHBpbmcoKQ0KKyAgICAgICAgfHwgc3VwcG9ydHNEcmFnZ2luZygpDQorICAgICAg
ICB8fCBzdXBwb3J0c0Ryb3BwaW5nKCkNCiAgICAgICAgIHx8IHN1cHBvcnRzQVJJQU93bnMoKQ0K
ICAgICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYXRvbWljQXR0cikNCiAgICAgICAgIHx8IGhh
c0F0dHJpYnV0ZShhcmlhX2J1c3lBdHRyKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCmluZGV4IGY1M2Q2OWI3YzMzLi5jN2U0MjFh
MGU3NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaA0KQEAgLTMyNywxMSArMzI3LDExIEBAIHB1YmxpYzoNCiAgICAgaW50IHBv
c0luU2V0KCkgY29uc3Qgb3ZlcnJpZGU7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0K
LSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9DQotICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0NCiAgICAgdm9pZCBzZXRBUklBR3JhYmJlZChib29sKSBvdmVy
cmlkZSB7IH0NCi0gICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkg
b3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQorICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZURy
b3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQogDQogICAgIC8vIENhbGxlZCBv
biB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBlbGVt
ZW50Lg0KICAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBv
aW50JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgNCmluZGV4IDFjODg5NThlZGJlLi5mOGQ2YWVjOGQ0MCAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaA0KQEAgLTc1NiwxMSArNzU2LDExIEBAIHB1YmxpYzoNCiAgICAgdmlydHVhbCBpbnQg
cG9zSW5TZXQoKSBjb25zdCA9IDA7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0KLSAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCA9IDA7DQotICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0ID0gMDsNCi0gICAgdmlydHVh
bCBib29sIGlzQVJJQUdyYWJiZWQoKSA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Ry
b3BwaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygp
IGNvbnN0ID0gMDsNCisgICAgdmlydHVhbCBib29sIGlzR3JhYmJlZCgpID0gMDsNCiAgICAgdmly
dHVhbCB2b2lkIHNldEFSSUFHcmFiYmVkKGJvb2wpID0gMDsNCi0gICAgdmlydHVhbCBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSA9IDA7DQorICAgIHZpcnR1YWwgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSA9IDA7DQogDQogICAgIC8vIENhbGxl
ZCBvbiB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBl
bGVtZW50Lg0KICAgICB2aXJ0dWFsIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3Qo
Y29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCmluZGV4IDAy
Yzc1NzAwYTg1Li43ZWQxODE4MDczZSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCkBAIC0xMDQw
LDMzICsxMDQwLDQwIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aGFzUG9wdXAo
KSBjb25zdA0KICAgICB9KTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IA0KK2Jvb2wgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c3VwcG9ydHNEcm9wcGluZygpIGNvbnN0DQogew0KLSAgICBjb25zdCBBdG9tU3Ry
aW5nJiBkcm9wRWZmZWN0ID0gZ2V0QXR0cmlidXRlKGFyaWFfZHJvcGVmZmVjdEF0dHIpOw0KLSAg
ICByZXR1cm4gIWRyb3BFZmZlY3QuaXNFbXB0eSgpOw0KKyAgICByZXR1cm4gIWdldEF0dHJpYnV0
ZShhcmlhX2Ryb3BlZmZlY3RBdHRyKS5pc0VtcHR5KCkgfHwgIWdldEF0dHJpYnV0ZShkcmFnZ2Fi
bGVBdHRyKS5pc0VtcHR5KCk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdA0KK2Jvb2wgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0DQogew0KICAgICBjb25zdCBBdG9tU3Ry
aW5nJiBncmFiYmVkID0gZ2V0QXR0cmlidXRlKGFyaWFfZ3JhYmJlZEF0dHIpOw0KLSAgICByZXR1
cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgInRydWUiKSB8fCBlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAiZmFsc2UiKTsNCisgICAgcmV0dXJu
IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdyYWJiZWQsICJ0cnVlIikgfHwgZXF1YWxM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgImZhbHNlIikNCisgICAgfHwgKGlzPEhU
TUxFbGVtZW50PihlbGVtZW50KCkpICYmIGRvd25jYXN0PEhUTUxFbGVtZW50Pihub2RlKCkpLT5k
cmFnZ2FibGUoKSk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNB
UklBR3JhYmJlZCgpDQorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0dyYWJiZWQo
KQ0KIHsNCisgICAgaWYgKG1haW5GcmFtZSgpICYmIG1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIo
KS5kcmFnZ2luZ0VsZW1lbnQoKSA9PSBlbGVtZW50KCkpDQorICAgICAgICByZXR1cm4gdHJ1ZTsN
CisgICAgDQogICAgIHJldHVybiBlbGVtZW50QXR0cmlidXRlVmFsdWUoYXJpYV9ncmFiYmVkQXR0
cik7DQogfQ0KIA0KLVZlY3RvcjxTdHJpbmc+IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRl
dGVybWluZUFSSUFEcm9wRWZmZWN0cygpDQorVmVjdG9yPFN0cmluZz4gQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKQ0KIHsNCiAgICAgY29uc3QgQXRvbVN0
cmluZyYgZHJvcEVmZmVjdHMgPSBnZXRBdHRyaWJ1dGUoYXJpYV9kcm9wZWZmZWN0QXR0cik7DQot
ICAgIGlmIChkcm9wRWZmZWN0cy5pc0VtcHR5KCkpIHsNCi0gICAgICAgIHJldHVybiB7IH07DQor
ICAgIGlmICghZHJvcEVmZmVjdHMuaXNFbXB0eSgpKSB7DQorICAgICAgICBTdHJpbmcgZHJvcEVm
ZmVjdHNTdHJpbmcgPSBkcm9wRWZmZWN0cy5zdHJpbmcoKTsNCisgICAgICAgIGRyb3BFZmZlY3Rz
U3RyaW5nLnJlcGxhY2UoJ1xuJywgJyAnKTsNCisgICAgICAgIHJldHVybiBkcm9wRWZmZWN0c1N0
cmluZy5zcGxpdCgnICcpOw0KICAgICB9DQogICAgIA0KLSAgICBTdHJpbmcgZHJvcEVmZmVjdHNT
dHJpbmcgPSBkcm9wRWZmZWN0cy5zdHJpbmcoKTsNCi0gICAgZHJvcEVmZmVjdHNTdHJpbmcucmVw
bGFjZSgnXG4nLCAnICcpOw0KLSAgICByZXR1cm4gZHJvcEVmZmVjdHNTdHJpbmcuc3BsaXQoJyAn
KTsNCisgICAgYXV0byBkcm9wem9uZSA9IGdldEF0dHJpYnV0ZShkcm9wem9uZUF0dHIpOw0KKyAg
ICBpZiAoIWRyb3B6b25lLmlzRW1wdHkoKSkNCisgICAgICAgIHJldHVybiBWZWN0b3I8U3RyaW5n
PiB7IGdldEF0dHJpYnV0ZShkcm9wem9uZUF0dHIpIH07DQorDQorICAgIHJldHVybiBWZWN0b3I8
U3RyaW5nPiB7IGdldEF0dHJpYnV0ZSh3ZWJraXRkcm9wem9uZUF0dHIpIH07DQogfQ0KICAgICAN
CiBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmV4cG9zZXNUaXRsZVVJRWxlbWVudCgp
IGNvbnN0DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuaA0KaW5kZXggN2VjZjA0YWEwNGUuLjE4OTRmODYyMDk1IDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5oDQpAQCAtMTcxLDEwICsxNzEsMTAgQEAgcHVibGljOg0KICAgICBi
b29sIGlzVmlzaWJsZVBvc2l0aW9uUmFuZ2VJbkRpZmZlcmVudERvY3VtZW50KGNvbnN0IFZpc2li
bGVQb3NpdGlvblJhbmdlJikgY29uc3Q7DQogICAgIGJvb2wgaGFzUG9wdXAoKSBjb25zdCBvdmVy
cmlkZTsNCiANCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IG92ZXJyaWRl
Ow0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGU7DQotICAg
IGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlOw0KLSAgICBWZWN0b3I8U3RyaW5nPiBkZXRl
cm1pbmVBUklBRHJvcEVmZmVjdHMoKSBvdmVycmlkZTsNCisgICAgYm9vbCBzdXBwb3J0c0Ryb3Bw
aW5nKCkgY29uc3Qgb3ZlcnJpZGU7DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlOw0KKyAgICBib29sIGlzR3JhYmJlZCgpIG92ZXJyaWRlOw0KKyAgICBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpIG92ZXJyaWRlOw0KICAgICANCiAgICAgVmlz
aWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvclBvaW50KGNvbnN0IEludFBvaW50JikgY29u
c3Qgb3ZlcnJpZGU7DQogICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRl
eCh1bnNpZ25lZCBpbmRleFZhbHVlLCBib29sIGxhc3RJbmRleE9LKSBjb25zdCBvdmVycmlkZTsN
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwDQppbmRleCA3ODkwOTA5YTgyZC4uZjUwY2M2Y2E5
ODMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHANCkBAIC0xNzIsMTAgKzE3MiwxMCBA
QCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9i
amVjdCYgb2JqZWN0LCBib29sIGlzUm9vdA0KICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6U3VwcG9ydHNQb3NJblNldCwgb2JqZWN0LnN1cHBvcnRzUG9zSW5TZXQoKSk7DQogICAgIHNl
dFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTZXRTaXplLCBvYmplY3Quc2V0U2l6ZSgpKTsNCiAg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlBvc0luU2V0LCBvYmplY3QucG9zSW5TZXQo
KSk7DQotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0FSSUFEcm9wcGlu
Zywgb2JqZWN0LnN1cHBvcnRzQVJJQURyb3BwaW5nKCkpOw0KLSAgICBzZXRQcm9wZXJ0eShBWFBy
b3BlcnR5TmFtZTo6U3VwcG9ydHNBUklBRHJhZ2dpbmcsIG9iamVjdC5zdXBwb3J0c0FSSUFEcmFn
Z2luZygpKTsNCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzQVJJQUdyYWJiZWQs
IG9iamVjdC5pc0FSSUFHcmFiYmVkKCkpOw0KLSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6QVJJQURyb3BFZmZlY3RzLCBvYmplY3QuZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkpOw0K
KyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNEcm9wcGluZywgb2JqZWN0
LnN1cHBvcnRzRHJvcHBpbmcoKSk7DQorICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpT
dXBwb3J0c0RyYWdnaW5nLCBvYmplY3Quc3VwcG9ydHNEcmFnZ2luZygpKTsNCisgICAgc2V0UHJv
cGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzR3JhYmJlZCwgb2JqZWN0LmlzR3JhYmJlZCgpKTsNCisg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkRyb3BFZmZlY3RzLCBvYmplY3QuZGV0ZXJt
aW5lRHJvcEVmZmVjdHMoKSk7DQogICAgIHNldE9iamVjdFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpUaXRsZVVJRWxlbWVudCwgb2JqZWN0LnRpdGxlVUlFbGVtZW50KCkpOw0KICAgICBzZXRQcm9w
ZXJ0eShBWFByb3BlcnR5TmFtZTo6RXhwb3Nlc1RpdGxlVUlFbGVtZW50LCBvYmplY3QuZXhwb3Nl
c1RpdGxlVUlFbGVtZW50KCkpOw0KICAgICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6VmVydGljYWxTY3JvbGxCYXIsIG9iamVjdC5zY3JvbGxCYXIoQWNjZXNzaWJpbGl0eU9yaWVu
dGF0aW9uOjpWZXJ0aWNhbCkpOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KaW5kZXggMWM5MzZm
ZGEyNmEuLjRjOTAyZWZlMGExIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCkBAIC04OSw3
ICs4OSw3IEBAIHByaXZhdGU6DQogICAgICAgICBBdXRvQ29tcGxldGVWYWx1ZSwNCiAgICAgICAg
IEFSSUFDb250cm9sc0VsZW1lbnRzLA0KICAgICAgICAgQVJJQURldGFpbHNFbGVtZW50cywNCi0g
ICAgICAgIEFSSUFEcm9wRWZmZWN0cywNCisgICAgICAgIERyb3BFZmZlY3RzLA0KICAgICAgICAg
QVJJQUVycm9yTWVzc2FnZUVsZW1lbnRzLA0KICAgICAgICAgQVJJQUlzTXVsdGlsaW5lLA0KICAg
ICAgICAgQVJJQUZsb3dUb0VsZW1lbnRzLA0KQEAgLTE2MSw3ICsxNjEsNyBAQCBwcml2YXRlOg0K
ICAgICAgICAgSXNBY2Nlc3NpYmlsaXR5SWdub3JlZCwNCiAgICAgICAgIElzQWN0aXZlRGVzY2Vu
ZGFudE9mRm9jdXNlZENvbnRhaW5lciwNCiAgICAgICAgIElzQW5vbnltb3VzTWF0aE9wZXJhdG9y
LA0KLSAgICAgICAgSXNBUklBR3JhYmJlZCwNCisgICAgICAgIElzR3JhYmJlZCwNCiAgICAgICAg
IElzQVJJQVRyZWVHcmlkUm93LA0KICAgICAgICAgSXNBdHRhY2htZW50LA0KICAgICAgICAgSXNC
dXR0b24sDQpAQCAtMjk5LDggKzI5OSw4IEBAIHByaXZhdGU6DQogICAgICAgICBTcGVha0FzLA0K
ICAgICAgICAgU3BlZWNoSGludCwNCiAgICAgICAgIFN0cmluZ1ZhbHVlLA0KLSAgICAgICAgU3Vw
cG9ydHNBUklBRHJhZ2dpbmcsDQotICAgICAgICBTdXBwb3J0c0FSSUFEcm9wcGluZywNCisgICAg
ICAgIFN1cHBvcnRzRHJhZ2dpbmcsDQorICAgICAgICBTdXBwb3J0c0Ryb3BwaW5nLA0KICAgICAg
ICAgU3VwcG9ydHNBUklBT3ducywNCiAgICAgICAgIFN1cHBvcnRzQ3VycmVudCwNCiAgICAgICAg
IFN1cHBvcnRzRGF0ZXRpbWVBdHRyaWJ1dGUsDQpAQCAtNTA0LDEwICs1MDQsMTAgQEAgcHJpdmF0
ZToNCiAgICAgYm9vbCBzdXBwb3J0c1Bvc0luU2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
Ym9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c1Bvc0luU2V0KTsgfQ0K
ICAgICBpbnQgc2V0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGludEF0dHJpYnV0ZVZh
bHVlKEFYUHJvcGVydHlOYW1lOjpTZXRTaXplKTsgfQ0KICAgICBpbnQgcG9zSW5TZXQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBpbnRBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6UG9z
SW5TZXQpOyB9DQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJ
QURyb3BwaW5nKTsgfQ0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0
c0FSSUFEcmFnZ2luZyk7IH0NCi0gICAgYm9vbCBpc0FSSUFHcmFiYmVkKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc0FSSUFHcmFiYmVkKTsg
fQ0KLSAgICBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSBvdmVycmlk
ZSB7IHJldHVybiB2ZWN0b3JBdHRyaWJ1dGVWYWx1ZTxTdHJpbmc+KEFYUHJvcGVydHlOYW1lOjpB
UklBRHJvcEVmZmVjdHMpOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9y
dHNEcm9wcGluZyk7IH0NCisgICAgYm9vbCBzdXBwb3J0c0RyYWdnaW5nKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0Ry
YWdnaW5nKTsgfQ0KKyAgICBib29sIGlzR3JhYmJlZCgpIG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNHcmFiYmVkKTsgfQ0KKyAgICBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpIG92ZXJyaWRlIHsgcmV0dXJuIHZlY3RvckF0
dHJpYnV0ZVZhbHVlPFN0cmluZz4oQVhQcm9wZXJ0eU5hbWU6OkRyb3BFZmZlY3RzKTsgfQ0KICAg
ICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JikgY29u
c3Qgb3ZlcnJpZGU7DQogICAgIEFYQ29yZU9iamVjdCogZm9jdXNlZFVJRWxlbWVudCgpIGNvbnN0
IG92ZXJyaWRlOw0KICAgICBBWENvcmVPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHBhcmVudE9iamVjdFVuaWdub3JlZCgpOyB9DQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0NCmluZGV4IDRm
ZWRmYTU2ZTM2Li5lM2YwN2FiZjQzMSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0NCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0NCkBAIC05Niw2ICs5NiwzMSBAQA0K
ICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUg
QCJBWFNlbGVjdGVkVGV4dE1hcmtlclJhbmdlIg0KICNlbmRpZg0KIA0KKyNpZm5kZWYga0FYRHJh
Z2dpbmdTb3VyY2VEcmFnQmVnYW5Ob3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5nU291
cmNlRHJhZ0JlZ2FuTm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2Fu
IikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVkTm90aWZp
Y2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5vdGlmaWNhdGlvbiBD
RlNUUigiQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBr
QVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtB
WERyYWdnaW5nRGVzdGluYXRpb25Ecm9wQWxsb3dlZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFn
Z2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FYRHJh
Z2dpbmdEZXN0aW5hdGlvbkRyb3BOb3RBbGxvd2VkTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhE
cmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcE5vdEFsbG93ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJh
Z2dpbmdEZXN0aW5hdGlvbkRyb3BOb3RBbGxvd2VkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtB
WERyYWdnaW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtB
WERyYWdnaW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJh
Z2dpbmdEZXN0aW5hdGlvbkRyYWdBY2NlcHRlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhE
cmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkTm90aWZpY2F0aW9uDQorI2RlZmluZSBr
QVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkTm90aWZpY2F0aW9uIENGU1RSKCJB
WERyYWdnaW5nRGVzdGluYXRpb25EcmFnTm90QWNjZXB0ZWQiKQ0KKyNlbmRpZg0KKw0KKw0KIC8v
IFZlcnkgbGFyZ2Ugc3RyaW5ncyBjYW4gbmVnYXRpdmVseSBpbXBhY3QgdGhlIHBlcmZvcm1hbmNl
IG9mIG5vdGlmaWNhdGlvbnMsIHNvIHRoaXMgbGVuZ3RoIGlzIGNob3NlbiB0byB0cnkgdG8gZml0
IGFuIGF2ZXJhZ2UgcGFyYWdyYXBoIG9yIGxpbmUgb2YgdGV4dCwgYnV0IG5vdCBhbGxvdyBzdHJp
bmdzIHRvIGJlIGxhcmdlIGVub3VnaCB0byBodXJ0IHBlcmZvcm1hbmNlLg0KIHN0YXRpYyBjb25z
dCBOU1VJbnRlZ2VyIEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsNCiANCkBA
IC0zNTMsNiArMzc4LDIxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFYQ29yZU9iamVjdCogb2JqLCBBWE5vdGlmaWNhdGlvbiBuDQogICAgICAgICBjYXNl
IEFYTWVudU9wZW5lZDoNCiAgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYTWVu
dU9wZW5lZE5vdGlmaWNhdGlvbjsNCiAgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2Ug
QVhEcmFnZ2luZ1N0YXJ0ZWQ6DQorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtB
WERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFr
Ow0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5nRW5kZWQ6DQorICAgICAgICAgICAgbWFjTm90aWZp
Y2F0aW9uID0gKGlkKWtBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVkTm90aWZpY2F0aW9uOw0KKyAg
ICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5nRW50ZXJlZERyb3Bab25l
Og0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ0Rlc3RpbmF0
aW9uRHJvcEFsbG93ZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAg
ICBjYXNlIEFYRHJhZ2dpbmdEcm9wcGVkOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9
IChpZClrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uOw0KKyAg
ICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5nRXhpdGVkRHJvcFpvbmU6
DQorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWERyYWdnaW5nRGVzdGluYXRp
b25EcmFnTm90QWNjZXB0ZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQogICAg
ICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgIHJldHVybjsNCiAgICAgfQ0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCmluZGV4IGYxYjhhZGI0YWFhLi45MjBkMmM0ZWRk
OCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KQEAgLTEzNTAs
MTAgKzEzNTAsMTAgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5EDQogICAg
ICAgICB8fCBiYWNraW5nT2JqZWN0LT5pc1Rvb2xiYXIoKSkNCiAgICAgICAgIFthZGRpdGlvbmFs
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPcmllbnRhdGlvbkF0dHJpYnV0ZV07DQogDQotICAg
IGlmIChiYWNraW5nT2JqZWN0LT5zdXBwb3J0c0FSSUFEcmFnZ2luZygpKQ0KKyAgICBpZiAoYmFj
a2luZ09iamVjdC0+c3VwcG9ydHNEcmFnZ2luZygpKQ0KICAgICAgICAgW2FkZGl0aW9uYWwgYWRk
T2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUdyYWJiZWRBdHRyaWJ1dGVdOw0KIA0KLSAgICBpZiAoYmFj
a2luZ09iamVjdC0+c3VwcG9ydHNBUklBRHJvcHBpbmcoKSkNCisgICAgaWYgKGJhY2tpbmdPYmpl
Y3QtPnN1cHBvcnRzRHJvcHBpbmcoKSkNCiAgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpO
U0FjY2Vzc2liaWxpdHlEcm9wRWZmZWN0c0F0dHJpYnV0ZV07DQogDQogICAgIGlmIChiYWNraW5n
T2JqZWN0LT5pc1RhYmxlKCkgJiYgYmFja2luZ09iamVjdC0+aXNFeHBvc2FibGUoKSAmJiBiYWNr
aW5nT2JqZWN0LT5zdXBwb3J0c1NlbGVjdGVkUm93cygpKQ0KQEAgLTI5MTcsMTAgKzI5MTcsMTAg
QEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5EDQogICAgICAgICByZXR1cm4g
QChiYWNraW5nT2JqZWN0LT5zZXRTaXplKCkpOw0KIA0KICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUg
aXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUdyYWJiZWRBdHRyaWJ1dGVdKQ0KLSAgICAg
ICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpiYWNraW5nT2JqZWN0LT5pc0FSSUFH
cmFiYmVkKCldOw0KKyAgICAgICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpiYWNr
aW5nT2JqZWN0LT5pc0dyYWJiZWQoKV07DQogDQogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0Vx
dWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5RHJvcEVmZmVjdHNBdHRyaWJ1dGVdKQ0KLSAgICAg
ICAgcmV0dXJuIGNyZWF0ZU5TQXJyYXkoYmFja2luZ09iamVjdC0+ZGV0ZXJtaW5lQVJJQURyb3BF
ZmZlY3RzKCkpLmF1dG9yZWxlYXNlKCk7DQorICAgICAgICByZXR1cm4gY3JlYXRlTlNBcnJheShi
YWNraW5nT2JqZWN0LT5kZXRlcm1pbmVEcm9wRWZmZWN0cygpKS5hdXRvcmVsZWFzZSgpOw0KIA0K
ICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVBs
YWNlaG9sZGVyVmFsdWVBdHRyaWJ1dGVdKQ0KICAgICAgICAgcmV0dXJuIGJhY2tpbmdPYmplY3Qt
PnBsYWNlaG9sZGVyVmFsdWUoKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluDQppbmRleCBkY2Q4Mzc4ZDk1NC4uY2IzMDQ5MDQwODkgMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbg0KKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4NCkBAIC0xMjEsNiArMTIxLDcgQEAgZGlzYWJs
ZXJlbW90ZXBsYXliYWNrDQogZGlzcG9zaXRpb24NCiBkb3dubG9hZA0KIGRyYWdnYWJsZQ0KK2Ry
b3B6b25lDQogd2Via2l0ZHJvcHpvbmUNCiBlbmN0eXBlDQogZW5kDQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwDQppbmRleCA4OWI2YjZkN2UxZi4uNGNjM2QwOWU3ODggMTAwNjQ0DQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHANCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcA0KQEAgLTIyNzQsNyArMjI3NCwzMCBAQCBib29s
IEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRU
eXBlLCBFbGVtZW50JiBkcmFnVA0KICAgICAgICAgZXZlbnQubW9kaWZpZXJzKCksIDAsIDAsIG51
bGxwdHIsIGV2ZW50LmZvcmNlKCksIE5vVGFwLCAmZGF0YVRyYW5zZmVyKTsNCiANCiAgICAgZHJh
Z1RhcmdldC5kaXNwYXRjaEV2ZW50KGRyYWdFdmVudCk7DQotICAgIHJldHVybiBkcmFnRXZlbnQt
PmRlZmF1bHRQcmV2ZW50ZWQoKTsNCisgICAgYm9vbCByZXN1bHQgPSBkcmFnRXZlbnQtPmRlZmF1
bHRQcmV2ZW50ZWQoKTsNCisNCisgICAgaWYgKGF1dG8qIGNhY2hlID0gbV9mcmFtZS5kb2N1bWVu
dCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgew0KKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkuZHJhZ3N0YXJ0RXZlbnQpDQorICAgICAgICAgICAgY2FjaGUtPnBvc3RO
b3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdTdGFydGVk
KTsNCisgICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJhZ2VuZEV2
ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBB
WE9iamVjdENhY2hlOjpBWERyYWdnaW5nRW5kZWQpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRU
eXBlID09IGV2ZW50TmFtZXMoKS5kcmFnZW50ZXJFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+
cG9zdE5vdGlmaWNhdGlvbigmZHJhZ1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0Vu
dGVyZWREcm9wWm9uZSk7DQorICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmRyYWdsZWF2ZUV2ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9u
KCZkcmFnVGFyZ2V0LCBBWE9iamVjdENhY2hlOjpBWERyYWdnaW5nRXhpdGVkRHJvcFpvbmUpOw0K
KyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kcm9wRXZlbnQpDQor
ICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0
Q2FjaGU6OkFYRHJhZ2dpbmdEcm9wcGVkKTsNCisgICAgfQ0KKw0KKyAgICBpZiAoIXJlc3VsdCkN
CisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgDQorICAgIHJldHVybiB0cnVlOw0KK30NCisN
CitFbGVtZW50KiBFdmVudEhhbmRsZXI6OmRyYWdnaW5nRWxlbWVudCgpIGNvbnN0DQorew0KKyAg
ICByZXR1cm4gZHJhZ1N0YXRlKCkuc291cmNlLmdldCgpOw0KIH0NCiANCiBzdGF0aWMgYm9vbCB0
YXJnZXRJc0ZyYW1lKE5vZGUqIHRhcmdldCwgRnJhbWUqJiBmcmFtZSkNCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuaA0KaW5kZXggYWRiMTVkYmI0YzUuLjExNGJiYzc4OWQzIDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KQEAgLTMzOCw2ICszMzgsNyBAQCBwdWJsaWM6DQogDQog
ICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPEN1cnNvcj4gc2VsZWN0Q3Vyc29yKGNvbnN0IEhp
dFRlc3RSZXN1bHQmLCBib29sIHNoaWZ0S2V5KTsNCiANCisgICAgRWxlbWVudCogZHJhZ2dpbmdF
bGVtZW50KCkgY29uc3Q7DQogcHJpdmF0ZToNCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkNCiAg
ICAgc3RhdGljIERyYWdTdGF0ZSYgZHJhZ1N0YXRlKCk7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlLmNwcA0KaW5kZXggOWYzOGU3
ODY1YmQuLjBkNDExZjQzZTllIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZS5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGUuY3BwDQpAQCAtNTYzLDkgKzU2Myw5IEBAIHN0
YXRpYyBBdGtBdHRyaWJ1dGVTZXQqIHdlYmtpdEFjY2Vzc2libGVHZXRBdHRyaWJ1dGVzKEF0a09i
amVjdCogb2JqZWN0KQ0KICAgICBpZiAoIWRyb3BFZmZlY3QuaXNFbXB0eSgpKQ0KICAgICAgICAg
YXR0cmlidXRlU2V0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQoYXR0cmlidXRlU2V0LCAiZHJvcGVm
ZmVjdCIsIGRyb3BFZmZlY3QudXRmOCgpLmRhdGEoKSk7DQogDQotICAgIGlmIChjb3JlT2JqZWN0
LT5pc0FSSUFHcmFiYmVkKCkpDQorICAgIGlmIChjb3JlT2JqZWN0LT5pc0dyYWJiZWQoKSkNCiAg
ICAgICAgIGF0dHJpYnV0ZVNldCA9IGFkZFRvQXRrQXR0cmlidXRlU2V0KGF0dHJpYnV0ZVNldCwg
ImdyYWJiZWQiLCAidHJ1ZSIpOw0KLSAgICBlbHNlIGlmIChjb3JlT2JqZWN0LT5zdXBwb3J0c0FS
SUFEcmFnZ2luZygpKQ0KKyAgICBlbHNlIGlmIChjb3JlT2JqZWN0LT5zdXBwb3J0c0RyYWdnaW5n
KCkpDQogICAgICAgICBhdHRyaWJ1dGVTZXQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChhdHRyaWJ1
dGVTZXQsICJncmFiYmVkIiwgImZhbHNlIik7DQogDQogICAgIC8vIFRoZSBDb3JlIEFBTSBzdGF0
ZXMgdGhlIGF1dGhvci1wcm92aWRlZCB2YWx1ZSBzaG91bGQgYmUgZXhwb3NlZCBhcy1pcy4NCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398490</attachid>
            <date>2020-05-05 01:18:22 -0700</date>
            <delta_ts>2020-05-05 01:32:20 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>27083</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTg0NGZjZmE2NTkuLmYwNWI2MTQzMDE2IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDQtMzAgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+DQogDQogICAgICAgICBib3JkZXItcmFkaXVzIGZh
aWxzIHRvIGNsaXAgaWZyYW1lIGNvbnRlbnRzDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
DQppbmRleCAwMDAwMDAwMDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0w
LDAgKzEsMjEgQEANCitUaGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRy
aWJ1dGVzIGFuZCBub3RpZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRp
b25zLg0KKw0KK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQg
c3F1YXJlIG9udG8gbWUuDQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0
YXJnZXQ6DQorDQorU3F1YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQn
KSBpcyB0cnVlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoJ2Ryb3BUYXJnZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMg
ZmFsc2UNCitUYXJnZXQgaXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitU
YXJnZXQgaXMgZ3JhYmJlZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVy
IGRyYWc6IDENCitBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0
aW9uRHJvcEFsbG93ZWQNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVT
VCBDT01QTEVURQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2RyYWdnYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxl
Lmh0bWwNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYTJhYzAzMGZl
MWUNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS5odG1sDQpAQCAtMCwwICsxLDk1IEBADQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPHN0eWxl
Pg0KKyAgICAjZHJvcFRhcmdldCwgI2RyYWdNZSB7IHRleHQtYWxpZ246IGNlbnRlcjsgZGlzcGxh
eTogdGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246IG1pZGRsZSB9DQorICAgICNkcm9wVGFyZ2V0
IHt3aWR0aDogMjU2cHg7IGhlaWdodDogMjU2cHg7IGJvcmRlcjogMXB4IGRhc2hlZH0NCisgICAg
I2RyYWdNZSB7LXdlYmtpdC11c2VyLWRyYWc6IGVsZW1lbnQ7IC13ZWJraXQtdXNlci1zZWxlY3Q6
IG5vbmU7IGJhY2tncm91bmQ6ICNmZjAwMDA7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDY0cHg7IGNv
bG9yOiB3aGl0ZX0NCis8L3N0eWxlPg0KKzxzY3JpcHQ+DQorICAgIHZhciBkcmFnTWU7DQorICAg
IHZhciBkcm9wVGFyZ2V0Ow0KKyAgICB2YXIgZXZlbnQ7DQorDQorICAgIGZ1bmN0aW9uIGRyb3Ao
ZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJUYXJnZXQgaXMgZ3JhYmJlZCBhZnRlciBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKyAgICAgICAgZGVi
dWcoIlRFU1QgUEFTU0VEOiBzcXVhcmUgZHJvcHBlZCIpOw0KKyAgICAgICAgZXZlbnQucHJldmVu
dERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBkcmFnT3ZlcihldmVudCkNCisg
ICAgew0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBm
dW5jdGlvbiBkcmFnU3RhcnQoZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJURVNUIGRy
YWcgc3RhcnQiKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBydW5UZXN0KCkNCisgICAgew0K
KyAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpDQorICAgICAgICAgICAgcmV0dXJuOw0K
Kw0KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOw0KKw0KKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZHJh
Z01lLm9mZnNldExlZnQgKyAxMCwgZHJhZ01lLm9mZnNldFRvcCArIGRyYWdNZS5vZmZzZXRIZWln
aHQgLyAyKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgICAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3
YXJkKDIwMCk7DQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcm9wVGFyZ2V0Lm9m
ZnNldExlZnQgKyAxMCwgZHJvcFRhcmdldC5vZmZzZXRUb3AgKyBkcm9wVGFyZ2V0Lm9mZnNldEhl
aWdodCAvIDIpOw0KKw0KKyAgICAgICAgZGVidWcoIlRhcmdldCBpcyBncmFiYmVkIGR1cmluZyBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKw0KKyAgICAgICAg
ZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgIH0NCis8
L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+DQorICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
Pg0KKyAgICA8ZGl2IGlkPSJ0ZXN0LWNvbnRhaW5lciI+DQorICAgICAgICA8ZGl2IGlkPSJkcm9w
VGFyZ2V0IiBkcm9wem9uZT0iY29weSI+RHJvcCB0aGUgcmVkIHNxdWFyZSBvbnRvIG1lLjwvZGl2
Pg0KKyAgICAgICAgPGhyLz4NCisgICAgICAgIDxwPkl0ZW1zIHRoYXQgY2FuIGJlIGRyYWdnZWQg
dG8gdGhlIGRyb3AgdGFyZ2V0OjwvcD4NCisgICAgICAgIDxkaXYgaWQ9ImRyYWdNZSIgZHJhZ2dh
YmxlPSJ0cnVlIj5TcXVhcmU8L2Rpdj4NCisgICAgICAgIDxoci8+DQorICAgIDwvZGl2Pg0KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgPHNjcmlwdD4NCisgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsNCisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
Y2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3RpZmljYXRpb25z
IGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLiIpOw0KKw0KKyAgICAgICAgZHJh
Z01lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYWdNZSIpOw0KKyAgICAgICAgZHJvcFRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcm9wVGFyZ2V0Iik7DQorDQorICAgICAg
ICBkcm9wVGFyZ2V0Lm9uZHJhZ292ZXIgPSBkcmFnT3ZlcjsNCisgICAgICAgIGRyb3BUYXJnZXQu
b25kcm9wID0gZHJvcDsNCisgICAgICAgIGRyYWdNZS5vbnN0YXJ0ID0gZHJhZ1N0YXJ0Ow0KKw0K
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSIp
Ow0KKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCdkcm9wVGFyZ2V0JykuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYR3Jh
YmJlZCcpIik7DQorDQorICAgICAgICBkZWJ1ZygiVGFyZ2V0IGlzIGdyYWJiZWQ6ICIgKyBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLm51bWJl
ckF0dHJpYnV0ZVZhbHVlKCJBWEdyYWJiZWQiKSk7DQorICAgICAgICBkZWJ1ZygiRHJvcHpvbmUg
ZWZmZWN0czogIiArIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgnZHJvcFRhcmdldCcpLmFyaWFEcm9wRWZmZWN0cyk7DQorDQorICAgICAgICBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5jdGlvbihlbGVtZW50LCBu
b3RpZmljYXRpb24pIHsNCisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uLnN0YXJ0c1dpdGgo
IkFYRHJhZyIpKSB7DQorICAgICAgICAgICAgICAgIGRlYnVnKG5vdGlmaWNhdGlvbik7DQorICAg
ICAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYRHJhZ2dpbmdEZXN0aW5hdGlvbkRy
b3BBbGxvd2VkIikgew0KKyAgICAgICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsNCisgICAgICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAg
IH0pOw0KKw0KKyAgICAgICAgc2V0VGltZW91dChydW5UZXN0KCksIDApOw0KKw0KKyAgICA8L3Nj
cmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IGJjMzkzOGViNDRhLi4x
YjQzY2I2MDE4MiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDUwIEBADQorMjAyMC0wNS0wNCAg
Q2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IElt
cGxlbWVudCBhY2Nlc3NpYmlsaXR5IG9mIEhUTUwgNS4xIERyYWcgJiBEcm9wDQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNDE1DQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjI2OTU1MzE+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4NCisNCisgICAgICAgIFN1cHBvcnQgSFRNTDUgZHJhZyBhbmQgZHJvcC4gU3VwcG9y
dCBkcm9wem9uZSBhdHRyaWJ1dGUuDQorICAgICAgICBBZGQgbmV3IG5vdGlmaWNhdGlvbnMgZm9y
IFZvaWNlT3ZlciB0byBjb25zdW1lLg0KKw0KKyAgICAgICAgSXQgYXBwZWFycyB0aGF0IG1vc3Qg
b2YgdGhlIGRyYWdnaW5nIHRlc3RzIGFyZSBza2lwcGVkIGJlY2F1c2Ugb2YgZXZlbnRTZW5kZXIg
aXNzdWVzLg0KKyAgICAgICAgSSB0aGluayB0aGlzIHRlc3QgY291bGQgZG8gYSBsaXR0bGUgbW9y
ZSBpZiB0aG9zZSBpc3N1ZXMgd2VyZSByZXNvbHZlZC4gU3BlY2lmaWNhbGx5LCBub3QgYWxsDQor
ICAgICAgICB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VlbiB0aGF0IGFyZSBleHBlY3RlZC4NCisN
CisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS5odG1sDQorDQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMgY29uc3QpOg0KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQVhIaWRkZW4gY29uc3QpOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoNCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6DQorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcm9wcGluZyBjb25zdCk6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNE
cmFnZ2luZyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNHcmFiYmVkKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpkZXRlcm1pbmVEcm9wRWZmZWN0cyk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJvcHBpbmcgY29uc3QpOiBEZWxldGVk
Lg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRz
QVJJQURyYWdnaW5nIGNvbnN0KTogRGVsZXRlZC4NCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FSSUFHcmFiYmVkKTogRGVsZXRlZC4NCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBUklBRHJvcEVmZmVj
dHMpOiBEZWxldGVkLg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZUF0dHJpYnV0ZURhdGEpOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW06DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVz
XSk6DQorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6XSk6DQorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluOg0KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6DQorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudCk6DQorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpkcmFnZ2luZ0VsZW1lbnQgY29uc3QpOg0KKyAgICAgICAgKiBwYWdlL0V2
ZW50SGFuZGxlci5oOg0KKw0KIDIwMjAtMDQtMzAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2df
MjJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgRml4IGZvciBjcmFzaCBpbiBBWExvZ2dlci4NCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQppbmRleCBhMzBk
MmE5MTUxNi4uNzczOTc5OTZhYjAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgNCkBAIC0zMDMsNyArMzAzLDEyIEBAIHB1YmxpYzoNCiAgICAgICAg
IEFYUmVxdWlyZWRTdGF0dXNDaGFuZ2VkLA0KICAgICAgICAgQVhUZXh0Q2hhbmdlZCwNCiAgICAg
ICAgIEFYQXJpYUF0dHJpYnV0ZUNoYW5nZWQsDQotICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdl
ZA0KKyAgICAgICAgQVhFbGVtZW50QnVzeUNoYW5nZWQsDQorICAgICAgICBBWERyYWdnaW5nU3Rh
cnRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbmRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbnRl
cmVkRHJvcFpvbmUsDQorICAgICAgICBBWERyYWdnaW5nRHJvcHBlZCwNCisgICAgICAgIEFYRHJh
Z2dpbmdFeGl0ZWREcm9wWm9uZQ0KICAgICB9Ow0KIA0KICAgICB2b2lkIHBvc3ROb3RpZmljYXRp
b24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVt
ZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7DQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCmluZGV4IDQwZWE1
ZmVhZTEyLi42NjJhM2ExZjllZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCkBAIC0yNTM0LDggKzI1MzQsOCBAQCBi
b29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMoKSBjb25zdA0K
IHsNCiAgICAgLy8gVGhpcyByZXR1cm5zIHdoZXRoZXIgdGhlIGVsZW1lbnQgc3VwcG9ydHMgYW55
IGdsb2JhbCBBUklBIGF0dHJpYnV0ZXMuDQogICAgIHJldHVybiBzdXBwb3J0c0xpdmVSZWdpb24o
KQ0KLSAgICAgICAgfHwgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKQ0KLSAgICAgICAgfHwgc3VwcG9y
dHNBUklBRHJvcHBpbmcoKQ0KKyAgICAgICAgfHwgc3VwcG9ydHNEcmFnZ2luZygpDQorICAgICAg
ICB8fCBzdXBwb3J0c0Ryb3BwaW5nKCkNCiAgICAgICAgIHx8IHN1cHBvcnRzQVJJQU93bnMoKQ0K
ICAgICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYXRvbWljQXR0cikNCiAgICAgICAgIHx8IGhh
c0F0dHJpYnV0ZShhcmlhX2J1c3lBdHRyKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCmluZGV4IGY1M2Q2OWI3YzMzLi5jN2U0MjFh
MGU3NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaA0KQEAgLTMyNywxMSArMzI3LDExIEBAIHB1YmxpYzoNCiAgICAgaW50IHBv
c0luU2V0KCkgY29uc3Qgb3ZlcnJpZGU7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0K
LSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9DQotICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0NCiAgICAgdm9pZCBzZXRBUklBR3JhYmJlZChib29sKSBvdmVy
cmlkZSB7IH0NCi0gICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkg
b3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQorICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZURy
b3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQogDQogICAgIC8vIENhbGxlZCBv
biB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBlbGVt
ZW50Lg0KICAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBv
aW50JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgNCmluZGV4IDFjODg5NThlZGJlLi5mOGQ2YWVjOGQ0MCAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaA0KQEAgLTc1NiwxMSArNzU2LDExIEBAIHB1YmxpYzoNCiAgICAgdmlydHVhbCBpbnQg
cG9zSW5TZXQoKSBjb25zdCA9IDA7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0KLSAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCA9IDA7DQotICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0ID0gMDsNCi0gICAgdmlydHVh
bCBib29sIGlzQVJJQUdyYWJiZWQoKSA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Ry
b3BwaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygp
IGNvbnN0ID0gMDsNCisgICAgdmlydHVhbCBib29sIGlzR3JhYmJlZCgpID0gMDsNCiAgICAgdmly
dHVhbCB2b2lkIHNldEFSSUFHcmFiYmVkKGJvb2wpID0gMDsNCi0gICAgdmlydHVhbCBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSA9IDA7DQorICAgIHZpcnR1YWwgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSA9IDA7DQogDQogICAgIC8vIENhbGxl
ZCBvbiB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBl
bGVtZW50Lg0KICAgICB2aXJ0dWFsIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3Qo
Y29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCmluZGV4IDAy
Yzc1NzAwYTg1Li44ODU1YzM3MjliMSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCkBAIC0xMDQw
LDMzICsxMDQwLDQyIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aGFzUG9wdXAo
KSBjb25zdA0KICAgICB9KTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0DQorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzdXBwb3J0c0Ryb3BwaW5nKCkgY29uc3QNCiB7DQotICAgIGNvbnN0IEF0b21TdHJp
bmcmIGRyb3BFZmZlY3QgPSBnZXRBdHRyaWJ1dGUoYXJpYV9kcm9wZWZmZWN0QXR0cik7DQotICAg
IHJldHVybiAhZHJvcEVmZmVjdC5pc0VtcHR5KCk7DQorICAgIHJldHVybiAhZ2V0QXR0cmlidXRl
KGFyaWFfZHJvcGVmZmVjdEF0dHIpLmlzRW1wdHkoKSB8fCAhZ2V0QXR0cmlidXRlKGRyYWdnYWJs
ZUF0dHIpLmlzRW1wdHkoKTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0DQorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzdXBwb3J0c0RyYWdnaW5nKCkgY29uc3QNCiB7DQogICAgIGNvbnN0IEF0b21TdHJp
bmcmIGdyYWJiZWQgPSBnZXRBdHRyaWJ1dGUoYXJpYV9ncmFiYmVkQXR0cik7DQotICAgIHJldHVy
biBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAidHJ1ZSIpIHx8IGVxdWFs
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdyYWJiZWQsICJmYWxzZSIpOw0KKyAgICByZXR1cm4g
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgInRydWUiKSB8fCBlcXVhbExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAiZmFsc2UiKSB8fA0KKyAgICAoaXM8SFRN
TEVsZW1lbnQ+KGVsZW1lbnQoKSkgJiYgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KG5vZGUoKSktPmRy
YWdnYWJsZSgpKTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FS
SUFHcmFiYmVkKCkNCitib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzR3JhYmJlZCgp
DQogew0KKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQ0KKyAgICBpZiAobWFpbkZyYW1lKCkgJiYg
bWFpbkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLmRyYWdnaW5nRWxlbWVudCgpID09IGVsZW1lbnQo
KSkNCisgICAgICAgIHJldHVybiB0cnVlOw0KKyNlbmRpZg0KKw0KICAgICByZXR1cm4gZWxlbWVu
dEF0dHJpYnV0ZVZhbHVlKGFyaWFfZ3JhYmJlZEF0dHIpOw0KIH0NCiANCi1WZWN0b3I8U3RyaW5n
PiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKQ0K
K1ZlY3RvcjxTdHJpbmc+IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZURyb3BF
ZmZlY3RzKCkNCiB7DQogICAgIGNvbnN0IEF0b21TdHJpbmcmIGRyb3BFZmZlY3RzID0gZ2V0QXR0
cmlidXRlKGFyaWFfZHJvcGVmZmVjdEF0dHIpOw0KLSAgICBpZiAoZHJvcEVmZmVjdHMuaXNFbXB0
eSgpKSB7DQotICAgICAgICByZXR1cm4geyB9Ow0KKyAgICBpZiAoIWRyb3BFZmZlY3RzLmlzRW1w
dHkoKSkgew0KKyAgICAgICAgU3RyaW5nIGRyb3BFZmZlY3RzU3RyaW5nID0gZHJvcEVmZmVjdHMu
c3RyaW5nKCk7DQorICAgICAgICBkcm9wRWZmZWN0c1N0cmluZy5yZXBsYWNlKCdcbicsICcgJyk7
DQorICAgICAgICByZXR1cm4gZHJvcEVmZmVjdHNTdHJpbmcuc3BsaXQoJyAnKTsNCiAgICAgfQ0K
ICAgICANCi0gICAgU3RyaW5nIGRyb3BFZmZlY3RzU3RyaW5nID0gZHJvcEVmZmVjdHMuc3RyaW5n
KCk7DQotICAgIGRyb3BFZmZlY3RzU3RyaW5nLnJlcGxhY2UoJ1xuJywgJyAnKTsNCi0gICAgcmV0
dXJuIGRyb3BFZmZlY3RzU3RyaW5nLnNwbGl0KCcgJyk7DQorICAgIGF1dG8gZHJvcHpvbmUgPSBn
ZXRBdHRyaWJ1dGUoZHJvcHpvbmVBdHRyKTsNCisgICAgaWYgKCFkcm9wem9uZS5pc0VtcHR5KCkp
DQorICAgICAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4geyBnZXRBdHRyaWJ1dGUoZHJvcHpvbmVB
dHRyKSB9Ow0KKw0KKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4geyBnZXRBdHRyaWJ1dGUod2Vi
a2l0ZHJvcHpvbmVBdHRyKSB9Ow0KIH0NCiAgICAgDQogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpleHBvc2VzVGl0bGVVSUVsZW1lbnQoKSBjb25zdA0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcA0KaW5kZXggODliNmI2ZDdlMWYuLjRjYzNkMDllNzg4IDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHANCkBAIC0yMjc0LDcgKzIyNzQsMzAgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlw
ZSwgRWxlbWVudCYgZHJhZ1QNCiAgICAgICAgIGV2ZW50Lm1vZGlmaWVycygpLCAwLCAwLCBudWxs
cHRyLCBldmVudC5mb3JjZSgpLCBOb1RhcCwgJmRhdGFUcmFuc2Zlcik7DQogDQogICAgIGRyYWdU
YXJnZXQuZGlzcGF0Y2hFdmVudChkcmFnRXZlbnQpOw0KLSAgICByZXR1cm4gZHJhZ0V2ZW50LT5k
ZWZhdWx0UHJldmVudGVkKCk7DQorICAgIGJvb2wgcmVzdWx0ID0gZHJhZ0V2ZW50LT5kZWZhdWx0
UHJldmVudGVkKCk7DQorDQorICAgIGlmIChhdXRvKiBjYWNoZSA9IG1fZnJhbWUuZG9jdW1lbnQo
KS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsNCisgICAgICAgIGlmIChldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLmRyYWdzdGFydEV2ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90
aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVjdENhY2hlOjpBWERyYWdnaW5nU3RhcnRlZCk7
DQorICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRyYWdlbmRFdmVu
dCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbigmZHJhZ1RhcmdldCwgQVhP
YmplY3RDYWNoZTo6QVhEcmFnZ2luZ0VuZGVkKTsNCisgICAgICAgIGVsc2UgaWYgKGV2ZW50VHlw
ZSA9PSBldmVudE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQpDQorICAgICAgICAgICAgY2FjaGUtPnBv
c3ROb3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdFbnRl
cmVkRHJvcFpvbmUpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMo
KS5kcmFnbGVhdmVFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbigm
ZHJhZ1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0V4aXRlZERyb3Bab25lKTsNCisg
ICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJvcEV2ZW50KQ0KKyAg
ICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVjdENh
Y2hlOjpBWERyYWdnaW5nRHJvcHBlZCk7DQorICAgIH0NCisNCisgICAgaWYgKCFyZXN1bHQpDQor
ICAgICAgICByZXR1cm4gZmFsc2U7DQorDQorICAgIHJldHVybiB0cnVlOw0KK30NCisNCitFbGVt
ZW50KiBFdmVudEhhbmRsZXI6OmRyYWdnaW5nRWxlbWVudCgpIGNvbnN0DQorew0KKyAgICByZXR1
cm4gZHJhZ1N0YXRlKCkuc291cmNlLmdldCgpOw0KIH0NCiANCiBzdGF0aWMgYm9vbCB0YXJnZXRJ
c0ZyYW1lKE5vZGUqIHRhcmdldCwgRnJhbWUqJiBmcmFtZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuaA0KaW5kZXggYWRiMTVkYmI0YzUuLjM0Y2NiMWFkMjMwIDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaA0KQEAgLTMzOCw2ICszMzgsMTAgQEAgcHVibGljOg0KIA0KICAgICBX
RUJDT1JFX0VYUE9SVCBPcHRpb25hbDxDdXJzb3I+IHNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0
UmVzdWx0JiwgYm9vbCBzaGlmdEtleSk7DQogDQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpDQor
ICAgIEVsZW1lbnQqIGRyYWdnaW5nRWxlbWVudCgpIGNvbnN0Ow0KKyNlbmRpZg0KKw0KIHByaXZh
dGU6DQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpDQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRy
YWdTdGF0ZSgpOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgNCmluZGV4IDdlY2YwNGFhMDRlLi4xODk0Zjg2MjA5
NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuaA0KQEAgLTE3MSwxMCArMTcxLDEwIEBAIHB1YmxpYzoNCiAg
ICAgYm9vbCBpc1Zpc2libGVQb3NpdGlvblJhbmdlSW5EaWZmZXJlbnREb2N1bWVudChjb25zdCBW
aXNpYmxlUG9zaXRpb25SYW5nZSYpIGNvbnN0Ow0KICAgICBib29sIGhhc1BvcHVwKCkgY29uc3Qg
b3ZlcnJpZGU7DQogDQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVy
cmlkZTsNCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRlOw0K
LSAgICBib29sIGlzQVJJQUdyYWJiZWQoKSBvdmVycmlkZTsNCi0gICAgVmVjdG9yPFN0cmluZz4g
ZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkgb3ZlcnJpZGU7DQorICAgIGJvb2wgc3VwcG9ydHNE
cm9wcGluZygpIGNvbnN0IG92ZXJyaWRlOw0KKyAgICBib29sIHN1cHBvcnRzRHJhZ2dpbmcoKSBj
b25zdCBvdmVycmlkZTsNCisgICAgYm9vbCBpc0dyYWJiZWQoKSBvdmVycmlkZTsNCisgICAgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBvdmVycmlkZTsNCiAgICAgDQogICAg
IFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JQb2ludChjb25zdCBJbnRQb2ludCYp
IGNvbnN0IG92ZXJyaWRlOw0KICAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9y
SW5kZXgodW5zaWduZWQgaW5kZXhWYWx1ZSwgYm9vbCBsYXN0SW5kZXhPSykgY29uc3Qgb3ZlcnJp
ZGU7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KaW5kZXggNzg5MDkwOWE4MmQuLmY1MGNj
NmNhOTgzIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwDQpAQCAtMTcyLDEwICsxNzIs
MTAgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShBWENv
cmVPYmplY3QmIG9iamVjdCwgYm9vbCBpc1Jvb3QNCiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OlN1cHBvcnRzUG9zSW5TZXQsIG9iamVjdC5zdXBwb3J0c1Bvc0luU2V0KCkpOw0KICAg
ICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U2V0U2l6ZSwgb2JqZWN0LnNldFNpemUoKSk7
DQogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpQb3NJblNldCwgb2JqZWN0LnBvc0lu
U2V0KCkpOw0KLSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNBUklBRHJv
cHBpbmcsIG9iamVjdC5zdXBwb3J0c0FSSUFEcm9wcGluZygpKTsNCi0gICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJQURyYWdnaW5nLCBvYmplY3Quc3VwcG9ydHNBUklB
RHJhZ2dpbmcoKSk7DQotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc0FSSUFHcmFi
YmVkLCBvYmplY3QuaXNBUklBR3JhYmJlZCgpKTsNCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OkFSSUFEcm9wRWZmZWN0cywgb2JqZWN0LmRldGVybWluZUFSSUFEcm9wRWZmZWN0cygp
KTsNCisgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJvcHBpbmcsIG9i
amVjdC5zdXBwb3J0c0Ryb3BwaW5nKCkpOw0KKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6U3VwcG9ydHNEcmFnZ2luZywgb2JqZWN0LnN1cHBvcnRzRHJhZ2dpbmcoKSk7DQorICAgIHNl
dFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc0dyYWJiZWQsIG9iamVjdC5pc0dyYWJiZWQoKSk7
DQorICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpEcm9wRWZmZWN0cywgb2JqZWN0LmRl
dGVybWluZURyb3BFZmZlY3RzKCkpOw0KICAgICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3BlcnR5
TmFtZTo6VGl0bGVVSUVsZW1lbnQsIG9iamVjdC50aXRsZVVJRWxlbWVudCgpKTsNCiAgICAgc2V0
UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkV4cG9zZXNUaXRsZVVJRWxlbWVudCwgb2JqZWN0LmV4
cG9zZXNUaXRsZVVJRWxlbWVudCgpKTsNCiAgICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OlZlcnRpY2FsU2Nyb2xsQmFyLCBvYmplY3Quc2Nyb2xsQmFyKEFjY2Vzc2liaWxpdHlP
cmllbnRhdGlvbjo6VmVydGljYWwpKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCmluZGV4IDFj
OTM2ZmRhMjZhLi40YzkwMmVmZTBhMSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQpAQCAt
ODksNyArODksNyBAQCBwcml2YXRlOg0KICAgICAgICAgQXV0b0NvbXBsZXRlVmFsdWUsDQogICAg
ICAgICBBUklBQ29udHJvbHNFbGVtZW50cywNCiAgICAgICAgIEFSSUFEZXRhaWxzRWxlbWVudHMs
DQotICAgICAgICBBUklBRHJvcEVmZmVjdHMsDQorICAgICAgICBEcm9wRWZmZWN0cywNCiAgICAg
ICAgIEFSSUFFcnJvck1lc3NhZ2VFbGVtZW50cywNCiAgICAgICAgIEFSSUFJc011bHRpbGluZSwN
CiAgICAgICAgIEFSSUFGbG93VG9FbGVtZW50cywNCkBAIC0xNjEsNyArMTYxLDcgQEAgcHJpdmF0
ZToNCiAgICAgICAgIElzQWNjZXNzaWJpbGl0eUlnbm9yZWQsDQogICAgICAgICBJc0FjdGl2ZURl
c2NlbmRhbnRPZkZvY3VzZWRDb250YWluZXIsDQogICAgICAgICBJc0Fub255bW91c01hdGhPcGVy
YXRvciwNCi0gICAgICAgIElzQVJJQUdyYWJiZWQsDQorICAgICAgICBJc0dyYWJiZWQsDQogICAg
ICAgICBJc0FSSUFUcmVlR3JpZFJvdywNCiAgICAgICAgIElzQXR0YWNobWVudCwNCiAgICAgICAg
IElzQnV0dG9uLA0KQEAgLTI5OSw4ICsyOTksOCBAQCBwcml2YXRlOg0KICAgICAgICAgU3BlYWtB
cywNCiAgICAgICAgIFNwZWVjaEhpbnQsDQogICAgICAgICBTdHJpbmdWYWx1ZSwNCi0gICAgICAg
IFN1cHBvcnRzQVJJQURyYWdnaW5nLA0KLSAgICAgICAgU3VwcG9ydHNBUklBRHJvcHBpbmcsDQor
ICAgICAgICBTdXBwb3J0c0RyYWdnaW5nLA0KKyAgICAgICAgU3VwcG9ydHNEcm9wcGluZywNCiAg
ICAgICAgIFN1cHBvcnRzQVJJQU93bnMsDQogICAgICAgICBTdXBwb3J0c0N1cnJlbnQsDQogICAg
ICAgICBTdXBwb3J0c0RhdGV0aW1lQXR0cmlidXRlLA0KQEAgLTUwNCwxMCArNTA0LDEwIEBAIHBy
aXZhdGU6DQogICAgIGJvb2wgc3VwcG9ydHNQb3NJblNldCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNQb3NJblNldCk7
IH0NCiAgICAgaW50IHNldFNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBpbnRBdHRyaWJ1
dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U2V0U2l6ZSk7IH0NCiAgICAgaW50IHBvc0luU2V0KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gaW50QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6
OlBvc0luU2V0KTsgfQ0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0
c0FSSUFEcm9wcGluZyk7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3Vw
cG9ydHNBUklBRHJhZ2dpbmcpOyB9DQotICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRl
IHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNBUklBR3JhYmJl
ZCk7IH0NCi0gICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkgb3Zl
cnJpZGUgeyByZXR1cm4gdmVjdG9yQXR0cmlidXRlVmFsdWU8U3RyaW5nPihBWFByb3BlcnR5TmFt
ZTo6QVJJQURyb3BFZmZlY3RzKTsgfQ0KKyAgICBib29sIHN1cHBvcnRzRHJvcHBpbmcoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1
cHBvcnRzRHJvcHBpbmcpOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9y
dHNEcmFnZ2luZyk7IH0NCisgICAgYm9vbCBpc0dyYWJiZWQoKSBvdmVycmlkZSB7IHJldHVybiBi
b29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzR3JhYmJlZCk7IH0NCisgICAgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBvdmVycmlkZSB7IHJldHVybiB2ZWN0
b3JBdHRyaWJ1dGVWYWx1ZTxTdHJpbmc+KEFYUHJvcGVydHlOYW1lOjpEcm9wRWZmZWN0cyk7IH0N
CiAgICAgQVhDb3JlT2JqZWN0KiBhY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYp
IGNvbnN0IG92ZXJyaWRlOw0KICAgICBBWENvcmVPYmplY3QqIGZvY3VzZWRVSUVsZW1lbnQoKSBj
b25zdCBvdmVycmlkZTsNCiAgICAgQVhDb3JlT2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBwYXJlbnRPYmplY3RVbmlnbm9yZWQoKTsgfQ0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQppbmRl
eCA0ZmVkZmE1NmUzNi4uZTNmMDdhYmY0MzEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQpAQCAtOTYsNiArOTYsMzEg
QEANCiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmli
dXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSINCiAjZW5kaWYNCiANCisjaWZuZGVmIGtB
WERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2lu
Z1NvdXJjZURyYWdCZWdhbk5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ1NvdXJjZURyYWdC
ZWdhbiIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5v
dGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWROb3RpZmljYXRp
b24gQ0ZTVFIoIkFYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5k
ZWYga0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BBbGxvd2VkTm90aWZpY2F0aW9uDQorI2RlZmlu
ZSBrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFY
RHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BBbGxvd2VkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtB
WERyYWdnaW5nRGVzdGluYXRpb25Ecm9wTm90QWxsb3dlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUg
a0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BOb3RBbGxvd2VkTm90aWZpY2F0aW9uIENGU1RSKCJB
WERyYWdnaW5nRGVzdGluYXRpb25Ecm9wTm90QWxsb3dlZCIpDQorI2VuZGlmDQorDQorI2lmbmRl
ZiBrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uDQorI2RlZmlu
ZSBrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uIENGU1RSKCJB
WERyYWdnaW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYg
a0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZE5vdGlmaWNhdGlvbg0KKyNkZWZp
bmUga0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZE5vdGlmaWNhdGlvbiBDRlNU
UigiQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkIikNCisjZW5kaWYNCisNCisN
CiAvLyBWZXJ5IGxhcmdlIHN0cmluZ3MgY2FuIG5lZ2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3Jt
YW5jZSBvZiBub3RpZmljYXRpb25zLCBzbyB0aGlzIGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRv
IGZpdCBhbiBhdmVyYWdlIHBhcmFncmFwaCBvciBsaW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cg
c3RyaW5ncyB0byBiZSBsYXJnZSBlbm91Z2ggdG8gaHVydCBwZXJmb3JtYW5jZS4NCiBzdGF0aWMg
Y29uc3QgTlNVSW50ZWdlciBBWFZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7DQog
DQpAQCAtMzUzLDYgKzM3OCwyMSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24gbg0KICAgICAgICAg
Y2FzZSBBWE1lbnVPcGVuZWQ6DQogICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtB
WE1lbnVPcGVuZWROb3RpZmljYXRpb247DQogICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICBj
YXNlIEFYRHJhZ2dpbmdTdGFydGVkOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChp
ZClrQVhEcmFnZ2luZ1NvdXJjZURyYWdCZWdhbk5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBi
cmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0VuZGVkOg0KKyAgICAgICAgICAgIG1hY05v
dGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5vdGlmaWNhdGlvbjsN
CisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0VudGVyZWREcm9w
Wm9uZToNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdEZXN0
aW5hdGlvbkRyb3BBbGxvd2VkTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAg
ICAgICAgY2FzZSBBWERyYWdnaW5nRHJvcHBlZDoNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRp
b24gPSAoaWQpa0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdBY2NlcHRlZE5vdGlmaWNhdGlvbjsN
CisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0V4aXRlZERyb3Ba
b25lOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ0Rlc3Rp
bmF0aW9uRHJhZ05vdEFjY2VwdGVkTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFrOw0K
ICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICByZXR1cm47DQogICAgIH0NCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tDQppbmRleCBmMWI4YWRiNGFhYS4uOTIwZDJj
NGVkZDggMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCkBAIC0x
MzUwLDEwICsxMzUwLDEwIEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORA0K
ICAgICAgICAgfHwgYmFja2luZ09iamVjdC0+aXNUb29sYmFyKCkpDQogICAgICAgICBbYWRkaXRp
b25hbCBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb25BdHRyaWJ1dGVdOw0KIA0K
LSAgICBpZiAoYmFja2luZ09iamVjdC0+c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSkNCisgICAgaWYg
KGJhY2tpbmdPYmplY3QtPnN1cHBvcnRzRHJhZ2dpbmcoKSkNCiAgICAgICAgIFthZGRpdGlvbmFs
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlHcmFiYmVkQXR0cmlidXRlXTsNCiANCi0gICAgaWYg
KGJhY2tpbmdPYmplY3QtPnN1cHBvcnRzQVJJQURyb3BwaW5nKCkpDQorICAgIGlmIChiYWNraW5n
T2JqZWN0LT5zdXBwb3J0c0Ryb3BwaW5nKCkpDQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmpl
Y3Q6TlNBY2Nlc3NpYmlsaXR5RHJvcEVmZmVjdHNBdHRyaWJ1dGVdOw0KIA0KICAgICBpZiAoYmFj
a2luZ09iamVjdC0+aXNUYWJsZSgpICYmIGJhY2tpbmdPYmplY3QtPmlzRXhwb3NhYmxlKCkgJiYg
YmFja2luZ09iamVjdC0+c3VwcG9ydHNTZWxlY3RlZFJvd3MoKSkNCkBAIC0yOTE3LDEwICsyOTE3
LDEwIEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORA0KICAgICAgICAgcmV0
dXJuIEAoYmFja2luZ09iamVjdC0+c2V0U2l6ZSgpKTsNCiANCiAgICAgaWYgKFthdHRyaWJ1dGVO
YW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlHcmFiYmVkQXR0cmlidXRlXSkNCi0g
ICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6YmFja2luZ09iamVjdC0+aXNB
UklBR3JhYmJlZCgpXTsNCisgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6
YmFja2luZ09iamVjdC0+aXNHcmFiYmVkKCldOw0KIA0KICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUg
aXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eURyb3BFZmZlY3RzQXR0cmlidXRlXSkNCi0g
ICAgICAgIHJldHVybiBjcmVhdGVOU0FycmF5KGJhY2tpbmdPYmplY3QtPmRldGVybWluZUFSSUFE
cm9wRWZmZWN0cygpKS5hdXRvcmVsZWFzZSgpOw0KKyAgICAgICAgcmV0dXJuIGNyZWF0ZU5TQXJy
YXkoYmFja2luZ09iamVjdC0+ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSkuYXV0b3JlbGVhc2UoKTsN
CiANCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxp
dHlQbGFjZWhvbGRlclZhbHVlQXR0cmlidXRlXSkNCiAgICAgICAgIHJldHVybiBiYWNraW5nT2Jq
ZWN0LT5wbGFjZWhvbGRlclZhbHVlKCk7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1
dGVOYW1lcy5pbg0KaW5kZXggZGNkODM3OGQ5NTQuLmNiMzA0OTA0MDg5IDEwMDY0NA0KLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4NCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluDQpAQCAtMTIxLDYgKzEyMSw3IEBAIGRp
c2FibGVyZW1vdGVwbGF5YmFjaw0KIGRpc3Bvc2l0aW9uDQogZG93bmxvYWQNCiBkcmFnZ2FibGUN
Citkcm9wem9uZQ0KIHdlYmtpdGRyb3B6b25lDQogZW5jdHlwZQ0KIGVuZA0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZS5jcHANCmlu
ZGV4IDlmMzhlNzg2NWJkLi4wZDQxMWY0M2U5ZSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGUuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlLmNwcA0KQEAgLTU2Myw5ICs1
NjMsOSBAQCBzdGF0aWMgQXRrQXR0cmlidXRlU2V0KiB3ZWJraXRBY2Nlc3NpYmxlR2V0QXR0cmli
dXRlcyhBdGtPYmplY3QqIG9iamVjdCkNCiAgICAgaWYgKCFkcm9wRWZmZWN0LmlzRW1wdHkoKSkN
CiAgICAgICAgIGF0dHJpYnV0ZVNldCA9IGFkZFRvQXRrQXR0cmlidXRlU2V0KGF0dHJpYnV0ZVNl
dCwgImRyb3BlZmZlY3QiLCBkcm9wRWZmZWN0LnV0ZjgoKS5kYXRhKCkpOw0KIA0KLSAgICBpZiAo
Y29yZU9iamVjdC0+aXNBUklBR3JhYmJlZCgpKQ0KKyAgICBpZiAoY29yZU9iamVjdC0+aXNHcmFi
YmVkKCkpDQogICAgICAgICBhdHRyaWJ1dGVTZXQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChhdHRy
aWJ1dGVTZXQsICJncmFiYmVkIiwgInRydWUiKTsNCi0gICAgZWxzZSBpZiAoY29yZU9iamVjdC0+
c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSkNCisgICAgZWxzZSBpZiAoY29yZU9iamVjdC0+c3VwcG9y
dHNEcmFnZ2luZygpKQ0KICAgICAgICAgYXR0cmlidXRlU2V0ID0gYWRkVG9BdGtBdHRyaWJ1dGVT
ZXQoYXR0cmlidXRlU2V0LCAiZ3JhYmJlZCIsICJmYWxzZSIpOw0KIA0KICAgICAvLyBUaGUgQ29y
ZSBBQU0gc3RhdGVzIHRoZSBhdXRob3ItcHJvdmlkZWQgdmFsdWUgc2hvdWxkIGJlIGV4cG9zZWQg
YXMtaXMuDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398492</attachid>
            <date>2020-05-05 01:32:20 -0700</date>
            <delta_ts>2020-05-05 11:58:50 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>27083</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTg0NGZjZmE2NTkuLmYwNWI2MTQzMDE2IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDQtMzAgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+DQogDQogICAgICAgICBib3JkZXItcmFkaXVzIGZh
aWxzIHRvIGNsaXAgaWZyYW1lIGNvbnRlbnRzDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
DQppbmRleCAwMDAwMDAwMDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0w
LDAgKzEsMjEgQEANCitUaGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRy
aWJ1dGVzIGFuZCBub3RpZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRp
b25zLg0KKw0KK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQg
c3F1YXJlIG9udG8gbWUuDQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0
YXJnZXQ6DQorDQorU3F1YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQn
KSBpcyB0cnVlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoJ2Ryb3BUYXJnZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMg
ZmFsc2UNCitUYXJnZXQgaXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitU
YXJnZXQgaXMgZ3JhYmJlZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVy
IGRyYWc6IDENCitBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0
aW9uRHJvcEFsbG93ZWQNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVT
VCBDT01QTEVURQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2RyYWdnYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxl
Lmh0bWwNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYTJhYzAzMGZl
MWUNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS5odG1sDQpAQCAtMCwwICsxLDk1IEBADQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPHN0eWxl
Pg0KKyAgICAjZHJvcFRhcmdldCwgI2RyYWdNZSB7IHRleHQtYWxpZ246IGNlbnRlcjsgZGlzcGxh
eTogdGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246IG1pZGRsZSB9DQorICAgICNkcm9wVGFyZ2V0
IHt3aWR0aDogMjU2cHg7IGhlaWdodDogMjU2cHg7IGJvcmRlcjogMXB4IGRhc2hlZH0NCisgICAg
I2RyYWdNZSB7LXdlYmtpdC11c2VyLWRyYWc6IGVsZW1lbnQ7IC13ZWJraXQtdXNlci1zZWxlY3Q6
IG5vbmU7IGJhY2tncm91bmQ6ICNmZjAwMDA7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDY0cHg7IGNv
bG9yOiB3aGl0ZX0NCis8L3N0eWxlPg0KKzxzY3JpcHQ+DQorICAgIHZhciBkcmFnTWU7DQorICAg
IHZhciBkcm9wVGFyZ2V0Ow0KKyAgICB2YXIgZXZlbnQ7DQorDQorICAgIGZ1bmN0aW9uIGRyb3Ao
ZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJUYXJnZXQgaXMgZ3JhYmJlZCBhZnRlciBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKyAgICAgICAgZGVi
dWcoIlRFU1QgUEFTU0VEOiBzcXVhcmUgZHJvcHBlZCIpOw0KKyAgICAgICAgZXZlbnQucHJldmVu
dERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBkcmFnT3ZlcihldmVudCkNCisg
ICAgew0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBm
dW5jdGlvbiBkcmFnU3RhcnQoZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJURVNUIGRy
YWcgc3RhcnQiKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBydW5UZXN0KCkNCisgICAgew0K
KyAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpDQorICAgICAgICAgICAgcmV0dXJuOw0K
Kw0KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOw0KKw0KKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZHJh
Z01lLm9mZnNldExlZnQgKyAxMCwgZHJhZ01lLm9mZnNldFRvcCArIGRyYWdNZS5vZmZzZXRIZWln
aHQgLyAyKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgICAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3
YXJkKDIwMCk7DQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcm9wVGFyZ2V0Lm9m
ZnNldExlZnQgKyAxMCwgZHJvcFRhcmdldC5vZmZzZXRUb3AgKyBkcm9wVGFyZ2V0Lm9mZnNldEhl
aWdodCAvIDIpOw0KKw0KKyAgICAgICAgZGVidWcoIlRhcmdldCBpcyBncmFiYmVkIGR1cmluZyBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKw0KKyAgICAgICAg
ZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgIH0NCis8
L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+DQorICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
Pg0KKyAgICA8ZGl2IGlkPSJ0ZXN0LWNvbnRhaW5lciI+DQorICAgICAgICA8ZGl2IGlkPSJkcm9w
VGFyZ2V0IiBkcm9wem9uZT0iY29weSI+RHJvcCB0aGUgcmVkIHNxdWFyZSBvbnRvIG1lLjwvZGl2
Pg0KKyAgICAgICAgPGhyLz4NCisgICAgICAgIDxwPkl0ZW1zIHRoYXQgY2FuIGJlIGRyYWdnZWQg
dG8gdGhlIGRyb3AgdGFyZ2V0OjwvcD4NCisgICAgICAgIDxkaXYgaWQ9ImRyYWdNZSIgZHJhZ2dh
YmxlPSJ0cnVlIj5TcXVhcmU8L2Rpdj4NCisgICAgICAgIDxoci8+DQorICAgIDwvZGl2Pg0KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgPHNjcmlwdD4NCisgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsNCisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
Y2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3RpZmljYXRpb25z
IGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLiIpOw0KKw0KKyAgICAgICAgZHJh
Z01lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYWdNZSIpOw0KKyAgICAgICAgZHJvcFRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcm9wVGFyZ2V0Iik7DQorDQorICAgICAg
ICBkcm9wVGFyZ2V0Lm9uZHJhZ292ZXIgPSBkcmFnT3ZlcjsNCisgICAgICAgIGRyb3BUYXJnZXQu
b25kcm9wID0gZHJvcDsNCisgICAgICAgIGRyYWdNZS5vbnN0YXJ0ID0gZHJhZ1N0YXJ0Ow0KKw0K
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSIp
Ow0KKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCdkcm9wVGFyZ2V0JykuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYR3Jh
YmJlZCcpIik7DQorDQorICAgICAgICBkZWJ1ZygiVGFyZ2V0IGlzIGdyYWJiZWQ6ICIgKyBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLm51bWJl
ckF0dHJpYnV0ZVZhbHVlKCJBWEdyYWJiZWQiKSk7DQorICAgICAgICBkZWJ1ZygiRHJvcHpvbmUg
ZWZmZWN0czogIiArIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgnZHJvcFRhcmdldCcpLmFyaWFEcm9wRWZmZWN0cyk7DQorDQorICAgICAgICBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5jdGlvbihlbGVtZW50LCBu
b3RpZmljYXRpb24pIHsNCisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uLnN0YXJ0c1dpdGgo
IkFYRHJhZyIpKSB7DQorICAgICAgICAgICAgICAgIGRlYnVnKG5vdGlmaWNhdGlvbik7DQorICAg
ICAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYRHJhZ2dpbmdEZXN0aW5hdGlvbkRy
b3BBbGxvd2VkIikgew0KKyAgICAgICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsNCisgICAgICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAg
IH0pOw0KKw0KKyAgICAgICAgc2V0VGltZW91dChydW5UZXN0KCksIDApOw0KKw0KKyAgICA8L3Nj
cmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IGJjMzkzOGViNDRhLi4x
YjQzY2I2MDE4MiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDUwIEBADQorMjAyMC0wNS0wNCAg
Q2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IElt
cGxlbWVudCBhY2Nlc3NpYmlsaXR5IG9mIEhUTUwgNS4xIERyYWcgJiBEcm9wDQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNDE1DQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjI2OTU1MzE+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4NCisNCisgICAgICAgIFN1cHBvcnQgSFRNTDUgZHJhZyBhbmQgZHJvcC4gU3VwcG9y
dCBkcm9wem9uZSBhdHRyaWJ1dGUuDQorICAgICAgICBBZGQgbmV3IG5vdGlmaWNhdGlvbnMgZm9y
IFZvaWNlT3ZlciB0byBjb25zdW1lLg0KKw0KKyAgICAgICAgSXQgYXBwZWFycyB0aGF0IG1vc3Qg
b2YgdGhlIGRyYWdnaW5nIHRlc3RzIGFyZSBza2lwcGVkIGJlY2F1c2Ugb2YgZXZlbnRTZW5kZXIg
aXNzdWVzLg0KKyAgICAgICAgSSB0aGluayB0aGlzIHRlc3QgY291bGQgZG8gYSBsaXR0bGUgbW9y
ZSBpZiB0aG9zZSBpc3N1ZXMgd2VyZSByZXNvbHZlZC4gU3BlY2lmaWNhbGx5LCBub3QgYWxsDQor
ICAgICAgICB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VlbiB0aGF0IGFyZSBleHBlY3RlZC4NCisN
CisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS5odG1sDQorDQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMgY29uc3QpOg0KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQVhIaWRkZW4gY29uc3QpOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoNCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6DQorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcm9wcGluZyBjb25zdCk6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNE
cmFnZ2luZyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNHcmFiYmVkKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpkZXRlcm1pbmVEcm9wRWZmZWN0cyk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJvcHBpbmcgY29uc3QpOiBEZWxldGVk
Lg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRz
QVJJQURyYWdnaW5nIGNvbnN0KTogRGVsZXRlZC4NCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FSSUFHcmFiYmVkKTogRGVsZXRlZC4NCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBUklBRHJvcEVmZmVj
dHMpOiBEZWxldGVkLg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZUF0dHJpYnV0ZURhdGEpOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW06DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVz
XSk6DQorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6XSk6DQorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluOg0KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6DQorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudCk6DQorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpkcmFnZ2luZ0VsZW1lbnQgY29uc3QpOg0KKyAgICAgICAgKiBwYWdlL0V2
ZW50SGFuZGxlci5oOg0KKw0KIDIwMjAtMDQtMzAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2df
MjJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgRml4IGZvciBjcmFzaCBpbiBBWExvZ2dlci4NCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQppbmRleCBhMzBk
MmE5MTUxNi4uNzczOTc5OTZhYjAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgNCkBAIC0zMDMsNyArMzAzLDEyIEBAIHB1YmxpYzoNCiAgICAgICAg
IEFYUmVxdWlyZWRTdGF0dXNDaGFuZ2VkLA0KICAgICAgICAgQVhUZXh0Q2hhbmdlZCwNCiAgICAg
ICAgIEFYQXJpYUF0dHJpYnV0ZUNoYW5nZWQsDQotICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdl
ZA0KKyAgICAgICAgQVhFbGVtZW50QnVzeUNoYW5nZWQsDQorICAgICAgICBBWERyYWdnaW5nU3Rh
cnRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbmRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbnRl
cmVkRHJvcFpvbmUsDQorICAgICAgICBBWERyYWdnaW5nRHJvcHBlZCwNCisgICAgICAgIEFYRHJh
Z2dpbmdFeGl0ZWREcm9wWm9uZQ0KICAgICB9Ow0KIA0KICAgICB2b2lkIHBvc3ROb3RpZmljYXRp
b24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVt
ZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7DQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCmluZGV4IDQwZWE1
ZmVhZTEyLi42NjJhM2ExZjllZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCkBAIC0yNTM0LDggKzI1MzQsOCBAQCBi
b29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMoKSBjb25zdA0K
IHsNCiAgICAgLy8gVGhpcyByZXR1cm5zIHdoZXRoZXIgdGhlIGVsZW1lbnQgc3VwcG9ydHMgYW55
IGdsb2JhbCBBUklBIGF0dHJpYnV0ZXMuDQogICAgIHJldHVybiBzdXBwb3J0c0xpdmVSZWdpb24o
KQ0KLSAgICAgICAgfHwgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKQ0KLSAgICAgICAgfHwgc3VwcG9y
dHNBUklBRHJvcHBpbmcoKQ0KKyAgICAgICAgfHwgc3VwcG9ydHNEcmFnZ2luZygpDQorICAgICAg
ICB8fCBzdXBwb3J0c0Ryb3BwaW5nKCkNCiAgICAgICAgIHx8IHN1cHBvcnRzQVJJQU93bnMoKQ0K
ICAgICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYXRvbWljQXR0cikNCiAgICAgICAgIHx8IGhh
c0F0dHJpYnV0ZShhcmlhX2J1c3lBdHRyKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCmluZGV4IGY1M2Q2OWI3YzMzLi5jN2U0MjFh
MGU3NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaA0KQEAgLTMyNywxMSArMzI3LDExIEBAIHB1YmxpYzoNCiAgICAgaW50IHBv
c0luU2V0KCkgY29uc3Qgb3ZlcnJpZGU7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0K
LSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9DQotICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0NCiAgICAgdm9pZCBzZXRBUklBR3JhYmJlZChib29sKSBvdmVy
cmlkZSB7IH0NCi0gICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkg
b3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQorICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZURy
b3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQogDQogICAgIC8vIENhbGxlZCBv
biB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBlbGVt
ZW50Lg0KICAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBv
aW50JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgNCmluZGV4IDFjODg5NThlZGJlLi5mOGQ2YWVjOGQ0MCAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaA0KQEAgLTc1NiwxMSArNzU2LDExIEBAIHB1YmxpYzoNCiAgICAgdmlydHVhbCBpbnQg
cG9zSW5TZXQoKSBjb25zdCA9IDA7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0KLSAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCA9IDA7DQotICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0ID0gMDsNCi0gICAgdmlydHVh
bCBib29sIGlzQVJJQUdyYWJiZWQoKSA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Ry
b3BwaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygp
IGNvbnN0ID0gMDsNCisgICAgdmlydHVhbCBib29sIGlzR3JhYmJlZCgpID0gMDsNCiAgICAgdmly
dHVhbCB2b2lkIHNldEFSSUFHcmFiYmVkKGJvb2wpID0gMDsNCi0gICAgdmlydHVhbCBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSA9IDA7DQorICAgIHZpcnR1YWwgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSA9IDA7DQogDQogICAgIC8vIENhbGxl
ZCBvbiB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBl
bGVtZW50Lg0KICAgICB2aXJ0dWFsIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3Qo
Y29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCmluZGV4IDAy
Yzc1NzAwYTg1Li44ODU1YzM3MjliMSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCkBAIC0xMDQw
LDMzICsxMDQwLDQyIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aGFzUG9wdXAo
KSBjb25zdA0KICAgICB9KTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0DQorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzdXBwb3J0c0Ryb3BwaW5nKCkgY29uc3QNCiB7DQotICAgIGNvbnN0IEF0b21TdHJp
bmcmIGRyb3BFZmZlY3QgPSBnZXRBdHRyaWJ1dGUoYXJpYV9kcm9wZWZmZWN0QXR0cik7DQotICAg
IHJldHVybiAhZHJvcEVmZmVjdC5pc0VtcHR5KCk7DQorICAgIHJldHVybiAhZ2V0QXR0cmlidXRl
KGFyaWFfZHJvcGVmZmVjdEF0dHIpLmlzRW1wdHkoKSB8fCAhZ2V0QXR0cmlidXRlKGRyYWdnYWJs
ZUF0dHIpLmlzRW1wdHkoKTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0DQorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzdXBwb3J0c0RyYWdnaW5nKCkgY29uc3QNCiB7DQogICAgIGNvbnN0IEF0b21TdHJp
bmcmIGdyYWJiZWQgPSBnZXRBdHRyaWJ1dGUoYXJpYV9ncmFiYmVkQXR0cik7DQotICAgIHJldHVy
biBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAidHJ1ZSIpIHx8IGVxdWFs
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdyYWJiZWQsICJmYWxzZSIpOw0KKyAgICByZXR1cm4g
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgInRydWUiKSB8fCBlcXVhbExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAiZmFsc2UiKSB8fA0KKyAgICAoaXM8SFRN
TEVsZW1lbnQ+KGVsZW1lbnQoKSkgJiYgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KG5vZGUoKSktPmRy
YWdnYWJsZSgpKTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FS
SUFHcmFiYmVkKCkNCitib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzR3JhYmJlZCgp
DQogew0KKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQ0KKyAgICBpZiAobWFpbkZyYW1lKCkgJiYg
bWFpbkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLmRyYWdnaW5nRWxlbWVudCgpID09IGVsZW1lbnQo
KSkNCisgICAgICAgIHJldHVybiB0cnVlOw0KKyNlbmRpZg0KKw0KICAgICByZXR1cm4gZWxlbWVu
dEF0dHJpYnV0ZVZhbHVlKGFyaWFfZ3JhYmJlZEF0dHIpOw0KIH0NCiANCi1WZWN0b3I8U3RyaW5n
PiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKQ0K
K1ZlY3RvcjxTdHJpbmc+IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZURyb3BF
ZmZlY3RzKCkNCiB7DQogICAgIGNvbnN0IEF0b21TdHJpbmcmIGRyb3BFZmZlY3RzID0gZ2V0QXR0
cmlidXRlKGFyaWFfZHJvcGVmZmVjdEF0dHIpOw0KLSAgICBpZiAoZHJvcEVmZmVjdHMuaXNFbXB0
eSgpKSB7DQotICAgICAgICByZXR1cm4geyB9Ow0KKyAgICBpZiAoIWRyb3BFZmZlY3RzLmlzRW1w
dHkoKSkgew0KKyAgICAgICAgU3RyaW5nIGRyb3BFZmZlY3RzU3RyaW5nID0gZHJvcEVmZmVjdHMu
c3RyaW5nKCk7DQorICAgICAgICBkcm9wRWZmZWN0c1N0cmluZy5yZXBsYWNlKCdcbicsICcgJyk7
DQorICAgICAgICByZXR1cm4gZHJvcEVmZmVjdHNTdHJpbmcuc3BsaXQoJyAnKTsNCiAgICAgfQ0K
ICAgICANCi0gICAgU3RyaW5nIGRyb3BFZmZlY3RzU3RyaW5nID0gZHJvcEVmZmVjdHMuc3RyaW5n
KCk7DQotICAgIGRyb3BFZmZlY3RzU3RyaW5nLnJlcGxhY2UoJ1xuJywgJyAnKTsNCi0gICAgcmV0
dXJuIGRyb3BFZmZlY3RzU3RyaW5nLnNwbGl0KCcgJyk7DQorICAgIGF1dG8gZHJvcHpvbmUgPSBn
ZXRBdHRyaWJ1dGUoZHJvcHpvbmVBdHRyKTsNCisgICAgaWYgKCFkcm9wem9uZS5pc0VtcHR5KCkp
DQorICAgICAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4geyBnZXRBdHRyaWJ1dGUoZHJvcHpvbmVB
dHRyKSB9Ow0KKw0KKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4geyBnZXRBdHRyaWJ1dGUod2Vi
a2l0ZHJvcHpvbmVBdHRyKSB9Ow0KIH0NCiAgICAgDQogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpleHBvc2VzVGl0bGVVSUVsZW1lbnQoKSBjb25zdA0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcA0KaW5kZXggODliNmI2ZDdlMWYuLjRjYzNkMDllNzg4IDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHANCkBAIC0yMjc0LDcgKzIyNzQsMzAgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlw
ZSwgRWxlbWVudCYgZHJhZ1QNCiAgICAgICAgIGV2ZW50Lm1vZGlmaWVycygpLCAwLCAwLCBudWxs
cHRyLCBldmVudC5mb3JjZSgpLCBOb1RhcCwgJmRhdGFUcmFuc2Zlcik7DQogDQogICAgIGRyYWdU
YXJnZXQuZGlzcGF0Y2hFdmVudChkcmFnRXZlbnQpOw0KLSAgICByZXR1cm4gZHJhZ0V2ZW50LT5k
ZWZhdWx0UHJldmVudGVkKCk7DQorICAgIGJvb2wgcmVzdWx0ID0gZHJhZ0V2ZW50LT5kZWZhdWx0
UHJldmVudGVkKCk7DQorDQorICAgIGlmIChhdXRvKiBjYWNoZSA9IG1fZnJhbWUuZG9jdW1lbnQo
KS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsNCisgICAgICAgIGlmIChldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLmRyYWdzdGFydEV2ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90
aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVjdENhY2hlOjpBWERyYWdnaW5nU3RhcnRlZCk7
DQorICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRyYWdlbmRFdmVu
dCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbigmZHJhZ1RhcmdldCwgQVhP
YmplY3RDYWNoZTo6QVhEcmFnZ2luZ0VuZGVkKTsNCisgICAgICAgIGVsc2UgaWYgKGV2ZW50VHlw
ZSA9PSBldmVudE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQpDQorICAgICAgICAgICAgY2FjaGUtPnBv
c3ROb3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdFbnRl
cmVkRHJvcFpvbmUpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMo
KS5kcmFnbGVhdmVFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbigm
ZHJhZ1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0V4aXRlZERyb3Bab25lKTsNCisg
ICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJvcEV2ZW50KQ0KKyAg
ICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVjdENh
Y2hlOjpBWERyYWdnaW5nRHJvcHBlZCk7DQorICAgIH0NCisNCisgICAgaWYgKCFyZXN1bHQpDQor
ICAgICAgICByZXR1cm4gZmFsc2U7DQorDQorICAgIHJldHVybiB0cnVlOw0KK30NCisNCitFbGVt
ZW50KiBFdmVudEhhbmRsZXI6OmRyYWdnaW5nRWxlbWVudCgpIGNvbnN0DQorew0KKyAgICByZXR1
cm4gZHJhZ1N0YXRlKCkuc291cmNlLmdldCgpOw0KIH0NCiANCiBzdGF0aWMgYm9vbCB0YXJnZXRJ
c0ZyYW1lKE5vZGUqIHRhcmdldCwgRnJhbWUqJiBmcmFtZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuaA0KaW5kZXggYWRiMTVkYmI0YzUuLjM0Y2NiMWFkMjMwIDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaA0KQEAgLTMzOCw2ICszMzgsMTAgQEAgcHVibGljOg0KIA0KICAgICBX
RUJDT1JFX0VYUE9SVCBPcHRpb25hbDxDdXJzb3I+IHNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0
UmVzdWx0JiwgYm9vbCBzaGlmdEtleSk7DQogDQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpDQor
ICAgIEVsZW1lbnQqIGRyYWdnaW5nRWxlbWVudCgpIGNvbnN0Ow0KKyNlbmRpZg0KKw0KIHByaXZh
dGU6DQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpDQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRy
YWdTdGF0ZSgpOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgNCmluZGV4IDdlY2YwNGFhMDRlLi4xODk0Zjg2MjA5
NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuaA0KQEAgLTE3MSwxMCArMTcxLDEwIEBAIHB1YmxpYzoNCiAg
ICAgYm9vbCBpc1Zpc2libGVQb3NpdGlvblJhbmdlSW5EaWZmZXJlbnREb2N1bWVudChjb25zdCBW
aXNpYmxlUG9zaXRpb25SYW5nZSYpIGNvbnN0Ow0KICAgICBib29sIGhhc1BvcHVwKCkgY29uc3Qg
b3ZlcnJpZGU7DQogDQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVy
cmlkZTsNCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRlOw0K
LSAgICBib29sIGlzQVJJQUdyYWJiZWQoKSBvdmVycmlkZTsNCi0gICAgVmVjdG9yPFN0cmluZz4g
ZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkgb3ZlcnJpZGU7DQorICAgIGJvb2wgc3VwcG9ydHNE
cm9wcGluZygpIGNvbnN0IG92ZXJyaWRlOw0KKyAgICBib29sIHN1cHBvcnRzRHJhZ2dpbmcoKSBj
b25zdCBvdmVycmlkZTsNCisgICAgYm9vbCBpc0dyYWJiZWQoKSBvdmVycmlkZTsNCisgICAgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBvdmVycmlkZTsNCiAgICAgDQogICAg
IFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JQb2ludChjb25zdCBJbnRQb2ludCYp
IGNvbnN0IG92ZXJyaWRlOw0KICAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9y
SW5kZXgodW5zaWduZWQgaW5kZXhWYWx1ZSwgYm9vbCBsYXN0SW5kZXhPSykgY29uc3Qgb3ZlcnJp
ZGU7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KaW5kZXggNzg5MDkwOWE4MmQuLmY1MGNj
NmNhOTgzIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwDQpAQCAtMTcyLDEwICsxNzIs
MTAgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShBWENv
cmVPYmplY3QmIG9iamVjdCwgYm9vbCBpc1Jvb3QNCiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OlN1cHBvcnRzUG9zSW5TZXQsIG9iamVjdC5zdXBwb3J0c1Bvc0luU2V0KCkpOw0KICAg
ICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U2V0U2l6ZSwgb2JqZWN0LnNldFNpemUoKSk7
DQogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpQb3NJblNldCwgb2JqZWN0LnBvc0lu
U2V0KCkpOw0KLSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNBUklBRHJv
cHBpbmcsIG9iamVjdC5zdXBwb3J0c0FSSUFEcm9wcGluZygpKTsNCi0gICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJQURyYWdnaW5nLCBvYmplY3Quc3VwcG9ydHNBUklB
RHJhZ2dpbmcoKSk7DQotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc0FSSUFHcmFi
YmVkLCBvYmplY3QuaXNBUklBR3JhYmJlZCgpKTsNCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OkFSSUFEcm9wRWZmZWN0cywgb2JqZWN0LmRldGVybWluZUFSSUFEcm9wRWZmZWN0cygp
KTsNCisgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJvcHBpbmcsIG9i
amVjdC5zdXBwb3J0c0Ryb3BwaW5nKCkpOw0KKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6U3VwcG9ydHNEcmFnZ2luZywgb2JqZWN0LnN1cHBvcnRzRHJhZ2dpbmcoKSk7DQorICAgIHNl
dFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc0dyYWJiZWQsIG9iamVjdC5pc0dyYWJiZWQoKSk7
DQorICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpEcm9wRWZmZWN0cywgb2JqZWN0LmRl
dGVybWluZURyb3BFZmZlY3RzKCkpOw0KICAgICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3BlcnR5
TmFtZTo6VGl0bGVVSUVsZW1lbnQsIG9iamVjdC50aXRsZVVJRWxlbWVudCgpKTsNCiAgICAgc2V0
UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkV4cG9zZXNUaXRsZVVJRWxlbWVudCwgb2JqZWN0LmV4
cG9zZXNUaXRsZVVJRWxlbWVudCgpKTsNCiAgICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OlZlcnRpY2FsU2Nyb2xsQmFyLCBvYmplY3Quc2Nyb2xsQmFyKEFjY2Vzc2liaWxpdHlP
cmllbnRhdGlvbjo6VmVydGljYWwpKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCmluZGV4IDFj
OTM2ZmRhMjZhLi40YzkwMmVmZTBhMSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQpAQCAt
ODksNyArODksNyBAQCBwcml2YXRlOg0KICAgICAgICAgQXV0b0NvbXBsZXRlVmFsdWUsDQogICAg
ICAgICBBUklBQ29udHJvbHNFbGVtZW50cywNCiAgICAgICAgIEFSSUFEZXRhaWxzRWxlbWVudHMs
DQotICAgICAgICBBUklBRHJvcEVmZmVjdHMsDQorICAgICAgICBEcm9wRWZmZWN0cywNCiAgICAg
ICAgIEFSSUFFcnJvck1lc3NhZ2VFbGVtZW50cywNCiAgICAgICAgIEFSSUFJc011bHRpbGluZSwN
CiAgICAgICAgIEFSSUFGbG93VG9FbGVtZW50cywNCkBAIC0xNjEsNyArMTYxLDcgQEAgcHJpdmF0
ZToNCiAgICAgICAgIElzQWNjZXNzaWJpbGl0eUlnbm9yZWQsDQogICAgICAgICBJc0FjdGl2ZURl
c2NlbmRhbnRPZkZvY3VzZWRDb250YWluZXIsDQogICAgICAgICBJc0Fub255bW91c01hdGhPcGVy
YXRvciwNCi0gICAgICAgIElzQVJJQUdyYWJiZWQsDQorICAgICAgICBJc0dyYWJiZWQsDQogICAg
ICAgICBJc0FSSUFUcmVlR3JpZFJvdywNCiAgICAgICAgIElzQXR0YWNobWVudCwNCiAgICAgICAg
IElzQnV0dG9uLA0KQEAgLTI5OSw4ICsyOTksOCBAQCBwcml2YXRlOg0KICAgICAgICAgU3BlYWtB
cywNCiAgICAgICAgIFNwZWVjaEhpbnQsDQogICAgICAgICBTdHJpbmdWYWx1ZSwNCi0gICAgICAg
IFN1cHBvcnRzQVJJQURyYWdnaW5nLA0KLSAgICAgICAgU3VwcG9ydHNBUklBRHJvcHBpbmcsDQor
ICAgICAgICBTdXBwb3J0c0RyYWdnaW5nLA0KKyAgICAgICAgU3VwcG9ydHNEcm9wcGluZywNCiAg
ICAgICAgIFN1cHBvcnRzQVJJQU93bnMsDQogICAgICAgICBTdXBwb3J0c0N1cnJlbnQsDQogICAg
ICAgICBTdXBwb3J0c0RhdGV0aW1lQXR0cmlidXRlLA0KQEAgLTUwNCwxMCArNTA0LDEwIEBAIHBy
aXZhdGU6DQogICAgIGJvb2wgc3VwcG9ydHNQb3NJblNldCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNQb3NJblNldCk7
IH0NCiAgICAgaW50IHNldFNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBpbnRBdHRyaWJ1
dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U2V0U2l6ZSk7IH0NCiAgICAgaW50IHBvc0luU2V0KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gaW50QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6
OlBvc0luU2V0KTsgfQ0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0
c0FSSUFEcm9wcGluZyk7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3Vw
cG9ydHNBUklBRHJhZ2dpbmcpOyB9DQotICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRl
IHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNBUklBR3JhYmJl
ZCk7IH0NCi0gICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkgb3Zl
cnJpZGUgeyByZXR1cm4gdmVjdG9yQXR0cmlidXRlVmFsdWU8U3RyaW5nPihBWFByb3BlcnR5TmFt
ZTo6QVJJQURyb3BFZmZlY3RzKTsgfQ0KKyAgICBib29sIHN1cHBvcnRzRHJvcHBpbmcoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1
cHBvcnRzRHJvcHBpbmcpOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9y
dHNEcmFnZ2luZyk7IH0NCisgICAgYm9vbCBpc0dyYWJiZWQoKSBvdmVycmlkZSB7IHJldHVybiBi
b29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzR3JhYmJlZCk7IH0NCisgICAgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBvdmVycmlkZSB7IHJldHVybiB2ZWN0
b3JBdHRyaWJ1dGVWYWx1ZTxTdHJpbmc+KEFYUHJvcGVydHlOYW1lOjpEcm9wRWZmZWN0cyk7IH0N
CiAgICAgQVhDb3JlT2JqZWN0KiBhY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYp
IGNvbnN0IG92ZXJyaWRlOw0KICAgICBBWENvcmVPYmplY3QqIGZvY3VzZWRVSUVsZW1lbnQoKSBj
b25zdCBvdmVycmlkZTsNCiAgICAgQVhDb3JlT2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBwYXJlbnRPYmplY3RVbmlnbm9yZWQoKTsgfQ0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQppbmRl
eCA0ZmVkZmE1NmUzNi4uZTNmMDdhYmY0MzEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQpAQCAtOTYsNiArOTYsMzEg
QEANCiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmli
dXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSINCiAjZW5kaWYNCiANCisjaWZuZGVmIGtB
WERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2lu
Z1NvdXJjZURyYWdCZWdhbk5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ1NvdXJjZURyYWdC
ZWdhbiIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5v
dGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWROb3RpZmljYXRp
b24gQ0ZTVFIoIkFYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5k
ZWYga0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BBbGxvd2VkTm90aWZpY2F0aW9uDQorI2RlZmlu
ZSBrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFY
RHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BBbGxvd2VkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtB
WERyYWdnaW5nRGVzdGluYXRpb25Ecm9wTm90QWxsb3dlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUg
a0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BOb3RBbGxvd2VkTm90aWZpY2F0aW9uIENGU1RSKCJB
WERyYWdnaW5nRGVzdGluYXRpb25Ecm9wTm90QWxsb3dlZCIpDQorI2VuZGlmDQorDQorI2lmbmRl
ZiBrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uDQorI2RlZmlu
ZSBrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uIENGU1RSKCJB
WERyYWdnaW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYg
a0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZE5vdGlmaWNhdGlvbg0KKyNkZWZp
bmUga0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZE5vdGlmaWNhdGlvbiBDRlNU
UigiQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkIikNCisjZW5kaWYNCisNCisN
CiAvLyBWZXJ5IGxhcmdlIHN0cmluZ3MgY2FuIG5lZ2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3Jt
YW5jZSBvZiBub3RpZmljYXRpb25zLCBzbyB0aGlzIGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRv
IGZpdCBhbiBhdmVyYWdlIHBhcmFncmFwaCBvciBsaW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cg
c3RyaW5ncyB0byBiZSBsYXJnZSBlbm91Z2ggdG8gaHVydCBwZXJmb3JtYW5jZS4NCiBzdGF0aWMg
Y29uc3QgTlNVSW50ZWdlciBBWFZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7DQog
DQpAQCAtMzUzLDYgKzM3OCwyMSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24gbg0KICAgICAgICAg
Y2FzZSBBWE1lbnVPcGVuZWQ6DQogICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtB
WE1lbnVPcGVuZWROb3RpZmljYXRpb247DQogICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICBj
YXNlIEFYRHJhZ2dpbmdTdGFydGVkOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChp
ZClrQVhEcmFnZ2luZ1NvdXJjZURyYWdCZWdhbk5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBi
cmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0VuZGVkOg0KKyAgICAgICAgICAgIG1hY05v
dGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5vdGlmaWNhdGlvbjsN
CisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0VudGVyZWREcm9w
Wm9uZToNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdEZXN0
aW5hdGlvbkRyb3BBbGxvd2VkTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAg
ICAgICAgY2FzZSBBWERyYWdnaW5nRHJvcHBlZDoNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRp
b24gPSAoaWQpa0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdBY2NlcHRlZE5vdGlmaWNhdGlvbjsN
CisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0V4aXRlZERyb3Ba
b25lOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ0Rlc3Rp
bmF0aW9uRHJhZ05vdEFjY2VwdGVkTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFrOw0K
ICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICByZXR1cm47DQogICAgIH0NCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tDQppbmRleCBmMWI4YWRiNGFhYS4uOTIwZDJj
NGVkZDggMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCkBAIC0x
MzUwLDEwICsxMzUwLDEwIEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORA0K
ICAgICAgICAgfHwgYmFja2luZ09iamVjdC0+aXNUb29sYmFyKCkpDQogICAgICAgICBbYWRkaXRp
b25hbCBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb25BdHRyaWJ1dGVdOw0KIA0K
LSAgICBpZiAoYmFja2luZ09iamVjdC0+c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSkNCisgICAgaWYg
KGJhY2tpbmdPYmplY3QtPnN1cHBvcnRzRHJhZ2dpbmcoKSkNCiAgICAgICAgIFthZGRpdGlvbmFs
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlHcmFiYmVkQXR0cmlidXRlXTsNCiANCi0gICAgaWYg
KGJhY2tpbmdPYmplY3QtPnN1cHBvcnRzQVJJQURyb3BwaW5nKCkpDQorICAgIGlmIChiYWNraW5n
T2JqZWN0LT5zdXBwb3J0c0Ryb3BwaW5nKCkpDQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmpl
Y3Q6TlNBY2Nlc3NpYmlsaXR5RHJvcEVmZmVjdHNBdHRyaWJ1dGVdOw0KIA0KICAgICBpZiAoYmFj
a2luZ09iamVjdC0+aXNUYWJsZSgpICYmIGJhY2tpbmdPYmplY3QtPmlzRXhwb3NhYmxlKCkgJiYg
YmFja2luZ09iamVjdC0+c3VwcG9ydHNTZWxlY3RlZFJvd3MoKSkNCkBAIC0yOTE3LDEwICsyOTE3
LDEwIEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORA0KICAgICAgICAgcmV0
dXJuIEAoYmFja2luZ09iamVjdC0+c2V0U2l6ZSgpKTsNCiANCiAgICAgaWYgKFthdHRyaWJ1dGVO
YW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlHcmFiYmVkQXR0cmlidXRlXSkNCi0g
ICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6YmFja2luZ09iamVjdC0+aXNB
UklBR3JhYmJlZCgpXTsNCisgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6
YmFja2luZ09iamVjdC0+aXNHcmFiYmVkKCldOw0KIA0KICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUg
aXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eURyb3BFZmZlY3RzQXR0cmlidXRlXSkNCi0g
ICAgICAgIHJldHVybiBjcmVhdGVOU0FycmF5KGJhY2tpbmdPYmplY3QtPmRldGVybWluZUFSSUFE
cm9wRWZmZWN0cygpKS5hdXRvcmVsZWFzZSgpOw0KKyAgICAgICAgcmV0dXJuIGNyZWF0ZU5TQXJy
YXkoYmFja2luZ09iamVjdC0+ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSkuYXV0b3JlbGVhc2UoKTsN
CiANCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxp
dHlQbGFjZWhvbGRlclZhbHVlQXR0cmlidXRlXSkNCiAgICAgICAgIHJldHVybiBiYWNraW5nT2Jq
ZWN0LT5wbGFjZWhvbGRlclZhbHVlKCk7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1
dGVOYW1lcy5pbg0KaW5kZXggZGNkODM3OGQ5NTQuLmNiMzA0OTA0MDg5IDEwMDY0NA0KLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4NCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluDQpAQCAtMTIxLDYgKzEyMSw3IEBAIGRp
c2FibGVyZW1vdGVwbGF5YmFjaw0KIGRpc3Bvc2l0aW9uDQogZG93bmxvYWQNCiBkcmFnZ2FibGUN
Citkcm9wem9uZQ0KIHdlYmtpdGRyb3B6b25lDQogZW5jdHlwZQ0KIGVuZA0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZS5jcHANCmlu
ZGV4IDlmMzhlNzg2NWJkLi4wZDQxMWY0M2U5ZSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGUuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlLmNwcA0KQEAgLTU2Myw5ICs1
NjMsOSBAQCBzdGF0aWMgQXRrQXR0cmlidXRlU2V0KiB3ZWJraXRBY2Nlc3NpYmxlR2V0QXR0cmli
dXRlcyhBdGtPYmplY3QqIG9iamVjdCkNCiAgICAgaWYgKCFkcm9wRWZmZWN0LmlzRW1wdHkoKSkN
CiAgICAgICAgIGF0dHJpYnV0ZVNldCA9IGFkZFRvQXRrQXR0cmlidXRlU2V0KGF0dHJpYnV0ZVNl
dCwgImRyb3BlZmZlY3QiLCBkcm9wRWZmZWN0LnV0ZjgoKS5kYXRhKCkpOw0KIA0KLSAgICBpZiAo
Y29yZU9iamVjdC0+aXNBUklBR3JhYmJlZCgpKQ0KKyAgICBpZiAoY29yZU9iamVjdC0+aXNHcmFi
YmVkKCkpDQogICAgICAgICBhdHRyaWJ1dGVTZXQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChhdHRy
aWJ1dGVTZXQsICJncmFiYmVkIiwgInRydWUiKTsNCi0gICAgZWxzZSBpZiAoY29yZU9iamVjdC0+
c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSkNCisgICAgZWxzZSBpZiAoY29yZU9iamVjdC0+c3VwcG9y
dHNEcmFnZ2luZygpKQ0KICAgICAgICAgYXR0cmlidXRlU2V0ID0gYWRkVG9BdGtBdHRyaWJ1dGVT
ZXQoYXR0cmlidXRlU2V0LCAiZ3JhYmJlZCIsICJmYWxzZSIpOw0KIA0KICAgICAvLyBUaGUgQ29y
ZSBBQU0gc3RhdGVzIHRoZSBhdXRob3ItcHJvdmlkZWQgdmFsdWUgc2hvdWxkIGJlIGV4cG9zZWQg
YXMtaXMuDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398534</attachid>
            <date>2020-05-05 11:58:50 -0700</date>
            <delta_ts>2020-05-05 12:00:34 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>27083</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTg0NGZjZmE2NTkuLmYwNWI2MTQzMDE2IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDQtMzAgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+DQogDQogICAgICAgICBib3JkZXItcmFkaXVzIGZh
aWxzIHRvIGNsaXAgaWZyYW1lIGNvbnRlbnRzDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
DQppbmRleCAwMDAwMDAwMDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0w
LDAgKzEsMjEgQEANCitUaGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRy
aWJ1dGVzIGFuZCBub3RpZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRp
b25zLg0KKw0KK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQg
c3F1YXJlIG9udG8gbWUuDQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0
YXJnZXQ6DQorDQorU3F1YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQn
KSBpcyB0cnVlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoJ2Ryb3BUYXJnZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMg
ZmFsc2UNCitUYXJnZXQgaXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitU
YXJnZXQgaXMgZ3JhYmJlZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVy
IGRyYWc6IDENCitBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0
aW9uRHJvcEFsbG93ZWQNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVT
VCBDT01QTEVURQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2RyYWdnYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxl
Lmh0bWwNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYTJhYzAzMGZl
MWUNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS5odG1sDQpAQCAtMCwwICsxLDk1IEBADQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPHN0eWxl
Pg0KKyAgICAjZHJvcFRhcmdldCwgI2RyYWdNZSB7IHRleHQtYWxpZ246IGNlbnRlcjsgZGlzcGxh
eTogdGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246IG1pZGRsZSB9DQorICAgICNkcm9wVGFyZ2V0
IHt3aWR0aDogMjU2cHg7IGhlaWdodDogMjU2cHg7IGJvcmRlcjogMXB4IGRhc2hlZH0NCisgICAg
I2RyYWdNZSB7LXdlYmtpdC11c2VyLWRyYWc6IGVsZW1lbnQ7IC13ZWJraXQtdXNlci1zZWxlY3Q6
IG5vbmU7IGJhY2tncm91bmQ6ICNmZjAwMDA7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDY0cHg7IGNv
bG9yOiB3aGl0ZX0NCis8L3N0eWxlPg0KKzxzY3JpcHQ+DQorICAgIHZhciBkcmFnTWU7DQorICAg
IHZhciBkcm9wVGFyZ2V0Ow0KKyAgICB2YXIgZXZlbnQ7DQorDQorICAgIGZ1bmN0aW9uIGRyb3Ao
ZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJUYXJnZXQgaXMgZ3JhYmJlZCBhZnRlciBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKyAgICAgICAgZGVi
dWcoIlRFU1QgUEFTU0VEOiBzcXVhcmUgZHJvcHBlZCIpOw0KKyAgICAgICAgZXZlbnQucHJldmVu
dERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBkcmFnT3ZlcihldmVudCkNCisg
ICAgew0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBm
dW5jdGlvbiBkcmFnU3RhcnQoZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJURVNUIGRy
YWcgc3RhcnQiKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBydW5UZXN0KCkNCisgICAgew0K
KyAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpDQorICAgICAgICAgICAgcmV0dXJuOw0K
Kw0KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOw0KKw0KKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZHJh
Z01lLm9mZnNldExlZnQgKyAxMCwgZHJhZ01lLm9mZnNldFRvcCArIGRyYWdNZS5vZmZzZXRIZWln
aHQgLyAyKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgICAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3
YXJkKDIwMCk7DQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcm9wVGFyZ2V0Lm9m
ZnNldExlZnQgKyAxMCwgZHJvcFRhcmdldC5vZmZzZXRUb3AgKyBkcm9wVGFyZ2V0Lm9mZnNldEhl
aWdodCAvIDIpOw0KKw0KKyAgICAgICAgZGVidWcoIlRhcmdldCBpcyBncmFiYmVkIGR1cmluZyBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKw0KKyAgICAgICAg
ZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgIH0NCis8
L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+DQorICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
Pg0KKyAgICA8ZGl2IGlkPSJ0ZXN0LWNvbnRhaW5lciI+DQorICAgICAgICA8ZGl2IGlkPSJkcm9w
VGFyZ2V0IiBkcm9wem9uZT0iY29weSI+RHJvcCB0aGUgcmVkIHNxdWFyZSBvbnRvIG1lLjwvZGl2
Pg0KKyAgICAgICAgPGhyLz4NCisgICAgICAgIDxwPkl0ZW1zIHRoYXQgY2FuIGJlIGRyYWdnZWQg
dG8gdGhlIGRyb3AgdGFyZ2V0OjwvcD4NCisgICAgICAgIDxkaXYgaWQ9ImRyYWdNZSIgZHJhZ2dh
YmxlPSJ0cnVlIj5TcXVhcmU8L2Rpdj4NCisgICAgICAgIDxoci8+DQorICAgIDwvZGl2Pg0KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgPHNjcmlwdD4NCisgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsNCisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
Y2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3RpZmljYXRpb25z
IGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLiIpOw0KKw0KKyAgICAgICAgZHJh
Z01lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYWdNZSIpOw0KKyAgICAgICAgZHJvcFRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcm9wVGFyZ2V0Iik7DQorDQorICAgICAg
ICBkcm9wVGFyZ2V0Lm9uZHJhZ292ZXIgPSBkcmFnT3ZlcjsNCisgICAgICAgIGRyb3BUYXJnZXQu
b25kcm9wID0gZHJvcDsNCisgICAgICAgIGRyYWdNZS5vbnN0YXJ0ID0gZHJhZ1N0YXJ0Ow0KKw0K
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSIp
Ow0KKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCdkcm9wVGFyZ2V0JykuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYR3Jh
YmJlZCcpIik7DQorDQorICAgICAgICBkZWJ1ZygiVGFyZ2V0IGlzIGdyYWJiZWQ6ICIgKyBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLm51bWJl
ckF0dHJpYnV0ZVZhbHVlKCJBWEdyYWJiZWQiKSk7DQorICAgICAgICBkZWJ1ZygiRHJvcHpvbmUg
ZWZmZWN0czogIiArIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgnZHJvcFRhcmdldCcpLmFyaWFEcm9wRWZmZWN0cyk7DQorDQorICAgICAgICBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5jdGlvbihlbGVtZW50LCBu
b3RpZmljYXRpb24pIHsNCisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uLnN0YXJ0c1dpdGgo
IkFYRHJhZyIpKSB7DQorICAgICAgICAgICAgICAgIGRlYnVnKG5vdGlmaWNhdGlvbik7DQorICAg
ICAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYRHJhZ2dpbmdEZXN0aW5hdGlvbkRy
b3BBbGxvd2VkIikgew0KKyAgICAgICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsNCisgICAgICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAg
IH0pOw0KKw0KKyAgICAgICAgc2V0VGltZW91dChydW5UZXN0KCksIDApOw0KKw0KKyAgICA8L3Nj
cmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IGJjMzkzOGViNDRhLi4x
YjQzY2I2MDE4MiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDUwIEBADQorMjAyMC0wNS0wNCAg
Q2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IElt
cGxlbWVudCBhY2Nlc3NpYmlsaXR5IG9mIEhUTUwgNS4xIERyYWcgJiBEcm9wDQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNDE1DQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjI2OTU1MzE+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4NCisNCisgICAgICAgIFN1cHBvcnQgSFRNTDUgZHJhZyBhbmQgZHJvcC4gU3VwcG9y
dCBkcm9wem9uZSBhdHRyaWJ1dGUuDQorICAgICAgICBBZGQgbmV3IG5vdGlmaWNhdGlvbnMgZm9y
IFZvaWNlT3ZlciB0byBjb25zdW1lLg0KKw0KKyAgICAgICAgSXQgYXBwZWFycyB0aGF0IG1vc3Qg
b2YgdGhlIGRyYWdnaW5nIHRlc3RzIGFyZSBza2lwcGVkIGJlY2F1c2Ugb2YgZXZlbnRTZW5kZXIg
aXNzdWVzLg0KKyAgICAgICAgSSB0aGluayB0aGlzIHRlc3QgY291bGQgZG8gYSBsaXR0bGUgbW9y
ZSBpZiB0aG9zZSBpc3N1ZXMgd2VyZSByZXNvbHZlZC4gU3BlY2lmaWNhbGx5LCBub3QgYWxsDQor
ICAgICAgICB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VlbiB0aGF0IGFyZSBleHBlY3RlZC4NCisN
CisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS5odG1sDQorDQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMgY29uc3QpOg0KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQVhIaWRkZW4gY29uc3QpOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoNCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6DQorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcm9wcGluZyBjb25zdCk6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNE
cmFnZ2luZyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNHcmFiYmVkKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpkZXRlcm1pbmVEcm9wRWZmZWN0cyk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJvcHBpbmcgY29uc3QpOiBEZWxldGVk
Lg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRz
QVJJQURyYWdnaW5nIGNvbnN0KTogRGVsZXRlZC4NCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FSSUFHcmFiYmVkKTogRGVsZXRlZC4NCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBUklBRHJvcEVmZmVj
dHMpOiBEZWxldGVkLg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZUF0dHJpYnV0ZURhdGEpOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW06DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVz
XSk6DQorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6XSk6DQorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluOg0KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6DQorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudCk6DQorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpkcmFnZ2luZ0VsZW1lbnQgY29uc3QpOg0KKyAgICAgICAgKiBwYWdlL0V2
ZW50SGFuZGxlci5oOg0KKw0KIDIwMjAtMDQtMzAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2df
MjJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgRml4IGZvciBjcmFzaCBpbiBBWExvZ2dlci4NCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQppbmRleCBhMzBk
MmE5MTUxNi4uNzczOTc5OTZhYjAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgNCkBAIC0zMDMsNyArMzAzLDEyIEBAIHB1YmxpYzoNCiAgICAgICAg
IEFYUmVxdWlyZWRTdGF0dXNDaGFuZ2VkLA0KICAgICAgICAgQVhUZXh0Q2hhbmdlZCwNCiAgICAg
ICAgIEFYQXJpYUF0dHJpYnV0ZUNoYW5nZWQsDQotICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdl
ZA0KKyAgICAgICAgQVhFbGVtZW50QnVzeUNoYW5nZWQsDQorICAgICAgICBBWERyYWdnaW5nU3Rh
cnRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbmRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbnRl
cmVkRHJvcFpvbmUsDQorICAgICAgICBBWERyYWdnaW5nRHJvcHBlZCwNCisgICAgICAgIEFYRHJh
Z2dpbmdFeGl0ZWREcm9wWm9uZQ0KICAgICB9Ow0KIA0KICAgICB2b2lkIHBvc3ROb3RpZmljYXRp
b24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVt
ZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7DQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCmluZGV4IDQwZWE1
ZmVhZTEyLi42NjJhM2ExZjllZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCkBAIC0yNTM0LDggKzI1MzQsOCBAQCBi
b29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMoKSBjb25zdA0K
IHsNCiAgICAgLy8gVGhpcyByZXR1cm5zIHdoZXRoZXIgdGhlIGVsZW1lbnQgc3VwcG9ydHMgYW55
IGdsb2JhbCBBUklBIGF0dHJpYnV0ZXMuDQogICAgIHJldHVybiBzdXBwb3J0c0xpdmVSZWdpb24o
KQ0KLSAgICAgICAgfHwgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKQ0KLSAgICAgICAgfHwgc3VwcG9y
dHNBUklBRHJvcHBpbmcoKQ0KKyAgICAgICAgfHwgc3VwcG9ydHNEcmFnZ2luZygpDQorICAgICAg
ICB8fCBzdXBwb3J0c0Ryb3BwaW5nKCkNCiAgICAgICAgIHx8IHN1cHBvcnRzQVJJQU93bnMoKQ0K
ICAgICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYXRvbWljQXR0cikNCiAgICAgICAgIHx8IGhh
c0F0dHJpYnV0ZShhcmlhX2J1c3lBdHRyKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCmluZGV4IGY1M2Q2OWI3YzMzLi5jN2U0MjFh
MGU3NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaA0KQEAgLTMyNywxMSArMzI3LDExIEBAIHB1YmxpYzoNCiAgICAgaW50IHBv
c0luU2V0KCkgY29uc3Qgb3ZlcnJpZGU7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0K
LSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9DQotICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0NCiAgICAgdm9pZCBzZXRBUklBR3JhYmJlZChib29sKSBvdmVy
cmlkZSB7IH0NCi0gICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkg
b3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQorICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZURy
b3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQogDQogICAgIC8vIENhbGxlZCBv
biB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBlbGVt
ZW50Lg0KICAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBv
aW50JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgNCmluZGV4IDFjODg5NThlZGJlLi5mOGQ2YWVjOGQ0MCAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaA0KQEAgLTc1NiwxMSArNzU2LDExIEBAIHB1YmxpYzoNCiAgICAgdmlydHVhbCBpbnQg
cG9zSW5TZXQoKSBjb25zdCA9IDA7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0KLSAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCA9IDA7DQotICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0ID0gMDsNCi0gICAgdmlydHVh
bCBib29sIGlzQVJJQUdyYWJiZWQoKSA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Ry
b3BwaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygp
IGNvbnN0ID0gMDsNCisgICAgdmlydHVhbCBib29sIGlzR3JhYmJlZCgpID0gMDsNCiAgICAgdmly
dHVhbCB2b2lkIHNldEFSSUFHcmFiYmVkKGJvb2wpID0gMDsNCi0gICAgdmlydHVhbCBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSA9IDA7DQorICAgIHZpcnR1YWwgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSA9IDA7DQogDQogICAgIC8vIENhbGxl
ZCBvbiB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBl
bGVtZW50Lg0KICAgICB2aXJ0dWFsIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3Qo
Y29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCmluZGV4IDAy
Yzc1NzAwYTg1Li44ODU1YzM3MjliMSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCkBAIC0xMDQw
LDMzICsxMDQwLDQyIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aGFzUG9wdXAo
KSBjb25zdA0KICAgICB9KTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0DQorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzdXBwb3J0c0Ryb3BwaW5nKCkgY29uc3QNCiB7DQotICAgIGNvbnN0IEF0b21TdHJp
bmcmIGRyb3BFZmZlY3QgPSBnZXRBdHRyaWJ1dGUoYXJpYV9kcm9wZWZmZWN0QXR0cik7DQotICAg
IHJldHVybiAhZHJvcEVmZmVjdC5pc0VtcHR5KCk7DQorICAgIHJldHVybiAhZ2V0QXR0cmlidXRl
KGFyaWFfZHJvcGVmZmVjdEF0dHIpLmlzRW1wdHkoKSB8fCAhZ2V0QXR0cmlidXRlKGRyYWdnYWJs
ZUF0dHIpLmlzRW1wdHkoKTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0DQorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzdXBwb3J0c0RyYWdnaW5nKCkgY29uc3QNCiB7DQogICAgIGNvbnN0IEF0b21TdHJp
bmcmIGdyYWJiZWQgPSBnZXRBdHRyaWJ1dGUoYXJpYV9ncmFiYmVkQXR0cik7DQotICAgIHJldHVy
biBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAidHJ1ZSIpIHx8IGVxdWFs
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdyYWJiZWQsICJmYWxzZSIpOw0KKyAgICByZXR1cm4g
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgInRydWUiKSB8fCBlcXVhbExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAiZmFsc2UiKSB8fA0KKyAgICAoaXM8SFRN
TEVsZW1lbnQ+KGVsZW1lbnQoKSkgJiYgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KG5vZGUoKSktPmRy
YWdnYWJsZSgpKTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FS
SUFHcmFiYmVkKCkNCitib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzR3JhYmJlZCgp
DQogew0KKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQ0KKyAgICBpZiAobWFpbkZyYW1lKCkgJiYg
bWFpbkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLmRyYWdnaW5nRWxlbWVudCgpID09IGVsZW1lbnQo
KSkNCisgICAgICAgIHJldHVybiB0cnVlOw0KKyNlbmRpZg0KKw0KICAgICByZXR1cm4gZWxlbWVu
dEF0dHJpYnV0ZVZhbHVlKGFyaWFfZ3JhYmJlZEF0dHIpOw0KIH0NCiANCi1WZWN0b3I8U3RyaW5n
PiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKQ0K
K1ZlY3RvcjxTdHJpbmc+IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZURyb3BF
ZmZlY3RzKCkNCiB7DQogICAgIGNvbnN0IEF0b21TdHJpbmcmIGRyb3BFZmZlY3RzID0gZ2V0QXR0
cmlidXRlKGFyaWFfZHJvcGVmZmVjdEF0dHIpOw0KLSAgICBpZiAoZHJvcEVmZmVjdHMuaXNFbXB0
eSgpKSB7DQotICAgICAgICByZXR1cm4geyB9Ow0KKyAgICBpZiAoIWRyb3BFZmZlY3RzLmlzRW1w
dHkoKSkgew0KKyAgICAgICAgU3RyaW5nIGRyb3BFZmZlY3RzU3RyaW5nID0gZHJvcEVmZmVjdHMu
c3RyaW5nKCk7DQorICAgICAgICBkcm9wRWZmZWN0c1N0cmluZy5yZXBsYWNlKCdcbicsICcgJyk7
DQorICAgICAgICByZXR1cm4gZHJvcEVmZmVjdHNTdHJpbmcuc3BsaXQoJyAnKTsNCiAgICAgfQ0K
ICAgICANCi0gICAgU3RyaW5nIGRyb3BFZmZlY3RzU3RyaW5nID0gZHJvcEVmZmVjdHMuc3RyaW5n
KCk7DQotICAgIGRyb3BFZmZlY3RzU3RyaW5nLnJlcGxhY2UoJ1xuJywgJyAnKTsNCi0gICAgcmV0
dXJuIGRyb3BFZmZlY3RzU3RyaW5nLnNwbGl0KCcgJyk7DQorICAgIGF1dG8gZHJvcHpvbmUgPSBn
ZXRBdHRyaWJ1dGUoZHJvcHpvbmVBdHRyKTsNCisgICAgaWYgKCFkcm9wem9uZS5pc0VtcHR5KCkp
DQorICAgICAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4geyBnZXRBdHRyaWJ1dGUoZHJvcHpvbmVB
dHRyKSB9Ow0KKw0KKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4geyBnZXRBdHRyaWJ1dGUod2Vi
a2l0ZHJvcHpvbmVBdHRyKSB9Ow0KIH0NCiAgICAgDQogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpleHBvc2VzVGl0bGVVSUVsZW1lbnQoKSBjb25zdA0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcA0KaW5kZXggODliNmI2ZDdlMWYuLjRjYzNkMDllNzg4IDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHANCkBAIC0yMjc0LDcgKzIyNzQsMzAgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlw
ZSwgRWxlbWVudCYgZHJhZ1QNCiAgICAgICAgIGV2ZW50Lm1vZGlmaWVycygpLCAwLCAwLCBudWxs
cHRyLCBldmVudC5mb3JjZSgpLCBOb1RhcCwgJmRhdGFUcmFuc2Zlcik7DQogDQogICAgIGRyYWdU
YXJnZXQuZGlzcGF0Y2hFdmVudChkcmFnRXZlbnQpOw0KLSAgICByZXR1cm4gZHJhZ0V2ZW50LT5k
ZWZhdWx0UHJldmVudGVkKCk7DQorICAgIGJvb2wgcmVzdWx0ID0gZHJhZ0V2ZW50LT5kZWZhdWx0
UHJldmVudGVkKCk7DQorDQorICAgIGlmIChhdXRvKiBjYWNoZSA9IG1fZnJhbWUuZG9jdW1lbnQo
KS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsNCisgICAgICAgIGlmIChldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLmRyYWdzdGFydEV2ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90
aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVjdENhY2hlOjpBWERyYWdnaW5nU3RhcnRlZCk7
DQorICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRyYWdlbmRFdmVu
dCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbigmZHJhZ1RhcmdldCwgQVhP
YmplY3RDYWNoZTo6QVhEcmFnZ2luZ0VuZGVkKTsNCisgICAgICAgIGVsc2UgaWYgKGV2ZW50VHlw
ZSA9PSBldmVudE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQpDQorICAgICAgICAgICAgY2FjaGUtPnBv
c3ROb3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdFbnRl
cmVkRHJvcFpvbmUpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMo
KS5kcmFnbGVhdmVFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbigm
ZHJhZ1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0V4aXRlZERyb3Bab25lKTsNCisg
ICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJvcEV2ZW50KQ0KKyAg
ICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVjdENh
Y2hlOjpBWERyYWdnaW5nRHJvcHBlZCk7DQorICAgIH0NCisNCisgICAgaWYgKCFyZXN1bHQpDQor
ICAgICAgICByZXR1cm4gZmFsc2U7DQorDQorICAgIHJldHVybiB0cnVlOw0KK30NCisNCitFbGVt
ZW50KiBFdmVudEhhbmRsZXI6OmRyYWdnaW5nRWxlbWVudCgpIGNvbnN0DQorew0KKyAgICByZXR1
cm4gZHJhZ1N0YXRlKCkuc291cmNlLmdldCgpOw0KIH0NCiANCiBzdGF0aWMgYm9vbCB0YXJnZXRJ
c0ZyYW1lKE5vZGUqIHRhcmdldCwgRnJhbWUqJiBmcmFtZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuaA0KaW5kZXggYWRiMTVkYmI0YzUuLjM0Y2NiMWFkMjMwIDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaA0KQEAgLTMzOCw2ICszMzgsMTAgQEAgcHVibGljOg0KIA0KICAgICBX
RUJDT1JFX0VYUE9SVCBPcHRpb25hbDxDdXJzb3I+IHNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0
UmVzdWx0JiwgYm9vbCBzaGlmdEtleSk7DQogDQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpDQor
ICAgIEVsZW1lbnQqIGRyYWdnaW5nRWxlbWVudCgpIGNvbnN0Ow0KKyNlbmRpZg0KKw0KIHByaXZh
dGU6DQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpDQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRy
YWdTdGF0ZSgpOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgNCmluZGV4IDdlY2YwNGFhMDRlLi4xODk0Zjg2MjA5
NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuaA0KQEAgLTE3MSwxMCArMTcxLDEwIEBAIHB1YmxpYzoNCiAg
ICAgYm9vbCBpc1Zpc2libGVQb3NpdGlvblJhbmdlSW5EaWZmZXJlbnREb2N1bWVudChjb25zdCBW
aXNpYmxlUG9zaXRpb25SYW5nZSYpIGNvbnN0Ow0KICAgICBib29sIGhhc1BvcHVwKCkgY29uc3Qg
b3ZlcnJpZGU7DQogDQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVy
cmlkZTsNCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRlOw0K
LSAgICBib29sIGlzQVJJQUdyYWJiZWQoKSBvdmVycmlkZTsNCi0gICAgVmVjdG9yPFN0cmluZz4g
ZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkgb3ZlcnJpZGU7DQorICAgIGJvb2wgc3VwcG9ydHNE
cm9wcGluZygpIGNvbnN0IG92ZXJyaWRlOw0KKyAgICBib29sIHN1cHBvcnRzRHJhZ2dpbmcoKSBj
b25zdCBvdmVycmlkZTsNCisgICAgYm9vbCBpc0dyYWJiZWQoKSBvdmVycmlkZTsNCisgICAgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBvdmVycmlkZTsNCiAgICAgDQogICAg
IFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JQb2ludChjb25zdCBJbnRQb2ludCYp
IGNvbnN0IG92ZXJyaWRlOw0KICAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9y
SW5kZXgodW5zaWduZWQgaW5kZXhWYWx1ZSwgYm9vbCBsYXN0SW5kZXhPSykgY29uc3Qgb3ZlcnJp
ZGU7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KaW5kZXggNzg5MDkwOWE4MmQuLmY1MGNj
NmNhOTgzIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwDQpAQCAtMTcyLDEwICsxNzIs
MTAgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShBWENv
cmVPYmplY3QmIG9iamVjdCwgYm9vbCBpc1Jvb3QNCiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OlN1cHBvcnRzUG9zSW5TZXQsIG9iamVjdC5zdXBwb3J0c1Bvc0luU2V0KCkpOw0KICAg
ICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U2V0U2l6ZSwgb2JqZWN0LnNldFNpemUoKSk7
DQogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpQb3NJblNldCwgb2JqZWN0LnBvc0lu
U2V0KCkpOw0KLSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNBUklBRHJv
cHBpbmcsIG9iamVjdC5zdXBwb3J0c0FSSUFEcm9wcGluZygpKTsNCi0gICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJQURyYWdnaW5nLCBvYmplY3Quc3VwcG9ydHNBUklB
RHJhZ2dpbmcoKSk7DQotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc0FSSUFHcmFi
YmVkLCBvYmplY3QuaXNBUklBR3JhYmJlZCgpKTsNCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OkFSSUFEcm9wRWZmZWN0cywgb2JqZWN0LmRldGVybWluZUFSSUFEcm9wRWZmZWN0cygp
KTsNCisgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJvcHBpbmcsIG9i
amVjdC5zdXBwb3J0c0Ryb3BwaW5nKCkpOw0KKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6U3VwcG9ydHNEcmFnZ2luZywgb2JqZWN0LnN1cHBvcnRzRHJhZ2dpbmcoKSk7DQorICAgIHNl
dFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc0dyYWJiZWQsIG9iamVjdC5pc0dyYWJiZWQoKSk7
DQorICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpEcm9wRWZmZWN0cywgb2JqZWN0LmRl
dGVybWluZURyb3BFZmZlY3RzKCkpOw0KICAgICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3BlcnR5
TmFtZTo6VGl0bGVVSUVsZW1lbnQsIG9iamVjdC50aXRsZVVJRWxlbWVudCgpKTsNCiAgICAgc2V0
UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkV4cG9zZXNUaXRsZVVJRWxlbWVudCwgb2JqZWN0LmV4
cG9zZXNUaXRsZVVJRWxlbWVudCgpKTsNCiAgICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OlZlcnRpY2FsU2Nyb2xsQmFyLCBvYmplY3Quc2Nyb2xsQmFyKEFjY2Vzc2liaWxpdHlP
cmllbnRhdGlvbjo6VmVydGljYWwpKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCmluZGV4IDFj
OTM2ZmRhMjZhLi40YzkwMmVmZTBhMSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQpAQCAt
ODksNyArODksNyBAQCBwcml2YXRlOg0KICAgICAgICAgQXV0b0NvbXBsZXRlVmFsdWUsDQogICAg
ICAgICBBUklBQ29udHJvbHNFbGVtZW50cywNCiAgICAgICAgIEFSSUFEZXRhaWxzRWxlbWVudHMs
DQotICAgICAgICBBUklBRHJvcEVmZmVjdHMsDQorICAgICAgICBEcm9wRWZmZWN0cywNCiAgICAg
ICAgIEFSSUFFcnJvck1lc3NhZ2VFbGVtZW50cywNCiAgICAgICAgIEFSSUFJc011bHRpbGluZSwN
CiAgICAgICAgIEFSSUFGbG93VG9FbGVtZW50cywNCkBAIC0xNjEsNyArMTYxLDcgQEAgcHJpdmF0
ZToNCiAgICAgICAgIElzQWNjZXNzaWJpbGl0eUlnbm9yZWQsDQogICAgICAgICBJc0FjdGl2ZURl
c2NlbmRhbnRPZkZvY3VzZWRDb250YWluZXIsDQogICAgICAgICBJc0Fub255bW91c01hdGhPcGVy
YXRvciwNCi0gICAgICAgIElzQVJJQUdyYWJiZWQsDQorICAgICAgICBJc0dyYWJiZWQsDQogICAg
ICAgICBJc0FSSUFUcmVlR3JpZFJvdywNCiAgICAgICAgIElzQXR0YWNobWVudCwNCiAgICAgICAg
IElzQnV0dG9uLA0KQEAgLTI5OSw4ICsyOTksOCBAQCBwcml2YXRlOg0KICAgICAgICAgU3BlYWtB
cywNCiAgICAgICAgIFNwZWVjaEhpbnQsDQogICAgICAgICBTdHJpbmdWYWx1ZSwNCi0gICAgICAg
IFN1cHBvcnRzQVJJQURyYWdnaW5nLA0KLSAgICAgICAgU3VwcG9ydHNBUklBRHJvcHBpbmcsDQor
ICAgICAgICBTdXBwb3J0c0RyYWdnaW5nLA0KKyAgICAgICAgU3VwcG9ydHNEcm9wcGluZywNCiAg
ICAgICAgIFN1cHBvcnRzQVJJQU93bnMsDQogICAgICAgICBTdXBwb3J0c0N1cnJlbnQsDQogICAg
ICAgICBTdXBwb3J0c0RhdGV0aW1lQXR0cmlidXRlLA0KQEAgLTUwNCwxMCArNTA0LDEwIEBAIHBy
aXZhdGU6DQogICAgIGJvb2wgc3VwcG9ydHNQb3NJblNldCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNQb3NJblNldCk7
IH0NCiAgICAgaW50IHNldFNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBpbnRBdHRyaWJ1
dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U2V0U2l6ZSk7IH0NCiAgICAgaW50IHBvc0luU2V0KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gaW50QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6
OlBvc0luU2V0KTsgfQ0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0
c0FSSUFEcm9wcGluZyk7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3Vw
cG9ydHNBUklBRHJhZ2dpbmcpOyB9DQotICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRl
IHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNBUklBR3JhYmJl
ZCk7IH0NCi0gICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkgb3Zl
cnJpZGUgeyByZXR1cm4gdmVjdG9yQXR0cmlidXRlVmFsdWU8U3RyaW5nPihBWFByb3BlcnR5TmFt
ZTo6QVJJQURyb3BFZmZlY3RzKTsgfQ0KKyAgICBib29sIHN1cHBvcnRzRHJvcHBpbmcoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1
cHBvcnRzRHJvcHBpbmcpOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9y
dHNEcmFnZ2luZyk7IH0NCisgICAgYm9vbCBpc0dyYWJiZWQoKSBvdmVycmlkZSB7IHJldHVybiBi
b29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzR3JhYmJlZCk7IH0NCisgICAgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBvdmVycmlkZSB7IHJldHVybiB2ZWN0
b3JBdHRyaWJ1dGVWYWx1ZTxTdHJpbmc+KEFYUHJvcGVydHlOYW1lOjpEcm9wRWZmZWN0cyk7IH0N
CiAgICAgQVhDb3JlT2JqZWN0KiBhY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYp
IGNvbnN0IG92ZXJyaWRlOw0KICAgICBBWENvcmVPYmplY3QqIGZvY3VzZWRVSUVsZW1lbnQoKSBj
b25zdCBvdmVycmlkZTsNCiAgICAgQVhDb3JlT2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBwYXJlbnRPYmplY3RVbmlnbm9yZWQoKTsgfQ0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQppbmRl
eCA0ZmVkZmE1NmUzNi4uZTNmMDdhYmY0MzEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQpAQCAtOTYsNiArOTYsMzEg
QEANCiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmli
dXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSINCiAjZW5kaWYNCiANCisjaWZuZGVmIGtB
WERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2lu
Z1NvdXJjZURyYWdCZWdhbk5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ1NvdXJjZURyYWdC
ZWdhbiIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5v
dGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWROb3RpZmljYXRp
b24gQ0ZTVFIoIkFYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5k
ZWYga0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BBbGxvd2VkTm90aWZpY2F0aW9uDQorI2RlZmlu
ZSBrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFY
RHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BBbGxvd2VkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtB
WERyYWdnaW5nRGVzdGluYXRpb25Ecm9wTm90QWxsb3dlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUg
a0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BOb3RBbGxvd2VkTm90aWZpY2F0aW9uIENGU1RSKCJB
WERyYWdnaW5nRGVzdGluYXRpb25Ecm9wTm90QWxsb3dlZCIpDQorI2VuZGlmDQorDQorI2lmbmRl
ZiBrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uDQorI2RlZmlu
ZSBrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uIENGU1RSKCJB
WERyYWdnaW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYg
a0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZE5vdGlmaWNhdGlvbg0KKyNkZWZp
bmUga0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZE5vdGlmaWNhdGlvbiBDRlNU
UigiQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkIikNCisjZW5kaWYNCisNCisN
CiAvLyBWZXJ5IGxhcmdlIHN0cmluZ3MgY2FuIG5lZ2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3Jt
YW5jZSBvZiBub3RpZmljYXRpb25zLCBzbyB0aGlzIGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRv
IGZpdCBhbiBhdmVyYWdlIHBhcmFncmFwaCBvciBsaW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cg
c3RyaW5ncyB0byBiZSBsYXJnZSBlbm91Z2ggdG8gaHVydCBwZXJmb3JtYW5jZS4NCiBzdGF0aWMg
Y29uc3QgTlNVSW50ZWdlciBBWFZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7DQog
DQpAQCAtMzUzLDYgKzM3OCwyMSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24gbg0KICAgICAgICAg
Y2FzZSBBWE1lbnVPcGVuZWQ6DQogICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtB
WE1lbnVPcGVuZWROb3RpZmljYXRpb247DQogICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICBj
YXNlIEFYRHJhZ2dpbmdTdGFydGVkOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChp
ZClrQVhEcmFnZ2luZ1NvdXJjZURyYWdCZWdhbk5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBi
cmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0VuZGVkOg0KKyAgICAgICAgICAgIG1hY05v
dGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5vdGlmaWNhdGlvbjsN
CisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0VudGVyZWREcm9w
Wm9uZToNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdEZXN0
aW5hdGlvbkRyb3BBbGxvd2VkTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAg
ICAgICAgY2FzZSBBWERyYWdnaW5nRHJvcHBlZDoNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRp
b24gPSAoaWQpa0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdBY2NlcHRlZE5vdGlmaWNhdGlvbjsN
CisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0V4aXRlZERyb3Ba
b25lOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ0Rlc3Rp
bmF0aW9uRHJhZ05vdEFjY2VwdGVkTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFrOw0K
ICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICByZXR1cm47DQogICAgIH0NCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tDQppbmRleCBmMWI4YWRiNGFhYS4uOTIwZDJj
NGVkZDggMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCkBAIC0x
MzUwLDEwICsxMzUwLDEwIEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORA0K
ICAgICAgICAgfHwgYmFja2luZ09iamVjdC0+aXNUb29sYmFyKCkpDQogICAgICAgICBbYWRkaXRp
b25hbCBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb25BdHRyaWJ1dGVdOw0KIA0K
LSAgICBpZiAoYmFja2luZ09iamVjdC0+c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSkNCisgICAgaWYg
KGJhY2tpbmdPYmplY3QtPnN1cHBvcnRzRHJhZ2dpbmcoKSkNCiAgICAgICAgIFthZGRpdGlvbmFs
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlHcmFiYmVkQXR0cmlidXRlXTsNCiANCi0gICAgaWYg
KGJhY2tpbmdPYmplY3QtPnN1cHBvcnRzQVJJQURyb3BwaW5nKCkpDQorICAgIGlmIChiYWNraW5n
T2JqZWN0LT5zdXBwb3J0c0Ryb3BwaW5nKCkpDQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmpl
Y3Q6TlNBY2Nlc3NpYmlsaXR5RHJvcEVmZmVjdHNBdHRyaWJ1dGVdOw0KIA0KICAgICBpZiAoYmFj
a2luZ09iamVjdC0+aXNUYWJsZSgpICYmIGJhY2tpbmdPYmplY3QtPmlzRXhwb3NhYmxlKCkgJiYg
YmFja2luZ09iamVjdC0+c3VwcG9ydHNTZWxlY3RlZFJvd3MoKSkNCkBAIC0yOTE3LDEwICsyOTE3
LDEwIEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORA0KICAgICAgICAgcmV0
dXJuIEAoYmFja2luZ09iamVjdC0+c2V0U2l6ZSgpKTsNCiANCiAgICAgaWYgKFthdHRyaWJ1dGVO
YW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlHcmFiYmVkQXR0cmlidXRlXSkNCi0g
ICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6YmFja2luZ09iamVjdC0+aXNB
UklBR3JhYmJlZCgpXTsNCisgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6
YmFja2luZ09iamVjdC0+aXNHcmFiYmVkKCldOw0KIA0KICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUg
aXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eURyb3BFZmZlY3RzQXR0cmlidXRlXSkNCi0g
ICAgICAgIHJldHVybiBjcmVhdGVOU0FycmF5KGJhY2tpbmdPYmplY3QtPmRldGVybWluZUFSSUFE
cm9wRWZmZWN0cygpKS5hdXRvcmVsZWFzZSgpOw0KKyAgICAgICAgcmV0dXJuIGNyZWF0ZU5TQXJy
YXkoYmFja2luZ09iamVjdC0+ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSkuYXV0b3JlbGVhc2UoKTsN
CiANCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxp
dHlQbGFjZWhvbGRlclZhbHVlQXR0cmlidXRlXSkNCiAgICAgICAgIHJldHVybiBiYWNraW5nT2Jq
ZWN0LT5wbGFjZWhvbGRlclZhbHVlKCk7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1
dGVOYW1lcy5pbg0KaW5kZXggZGNkODM3OGQ5NTQuLmNiMzA0OTA0MDg5IDEwMDY0NA0KLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4NCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluDQpAQCAtMTIxLDYgKzEyMSw3IEBAIGRp
c2FibGVyZW1vdGVwbGF5YmFjaw0KIGRpc3Bvc2l0aW9uDQogZG93bmxvYWQNCiBkcmFnZ2FibGUN
Citkcm9wem9uZQ0KIHdlYmtpdGRyb3B6b25lDQogZW5jdHlwZQ0KIGVuZA0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZS5jcHANCmlu
ZGV4IDlmMzhlNzg2NWJkLi4wZDQxMWY0M2U5ZSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGUuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlLmNwcA0KQEAgLTU2Myw5ICs1
NjMsOSBAQCBzdGF0aWMgQXRrQXR0cmlidXRlU2V0KiB3ZWJraXRBY2Nlc3NpYmxlR2V0QXR0cmli
dXRlcyhBdGtPYmplY3QqIG9iamVjdCkNCiAgICAgaWYgKCFkcm9wRWZmZWN0LmlzRW1wdHkoKSkN
CiAgICAgICAgIGF0dHJpYnV0ZVNldCA9IGFkZFRvQXRrQXR0cmlidXRlU2V0KGF0dHJpYnV0ZVNl
dCwgImRyb3BlZmZlY3QiLCBkcm9wRWZmZWN0LnV0ZjgoKS5kYXRhKCkpOw0KIA0KLSAgICBpZiAo
Y29yZU9iamVjdC0+aXNBUklBR3JhYmJlZCgpKQ0KKyAgICBpZiAoY29yZU9iamVjdC0+aXNHcmFi
YmVkKCkpDQogICAgICAgICBhdHRyaWJ1dGVTZXQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChhdHRy
aWJ1dGVTZXQsICJncmFiYmVkIiwgInRydWUiKTsNCi0gICAgZWxzZSBpZiAoY29yZU9iamVjdC0+
c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSkNCisgICAgZWxzZSBpZiAoY29yZU9iamVjdC0+c3VwcG9y
dHNEcmFnZ2luZygpKQ0KICAgICAgICAgYXR0cmlidXRlU2V0ID0gYWRkVG9BdGtBdHRyaWJ1dGVT
ZXQoYXR0cmlidXRlU2V0LCAiZ3JhYmJlZCIsICJmYWxzZSIpOw0KIA0KICAgICAvLyBUaGUgQ29y
ZSBBQU0gc3RhdGVzIHRoZSBhdXRob3ItcHJvdmlkZWQgdmFsdWUgc2hvdWxkIGJlIGV4cG9zZWQg
YXMtaXMuDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398535</attachid>
            <date>2020-05-05 12:00:34 -0700</date>
            <delta_ts>2020-05-05 12:27:23 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>27012</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTg0NGZjZmE2NTkuLmYwNWI2MTQzMDE2IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDQtMzAgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+DQogDQogICAgICAgICBib3JkZXItcmFkaXVzIGZh
aWxzIHRvIGNsaXAgaWZyYW1lIGNvbnRlbnRzDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
DQppbmRleCAwMDAwMDAwMDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0w
LDAgKzEsMjEgQEANCitUaGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRy
aWJ1dGVzIGFuZCBub3RpZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRp
b25zLg0KKw0KK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQg
c3F1YXJlIG9udG8gbWUuDQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0
YXJnZXQ6DQorDQorU3F1YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQn
KSBpcyB0cnVlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoJ2Ryb3BUYXJnZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMg
ZmFsc2UNCitUYXJnZXQgaXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitU
YXJnZXQgaXMgZ3JhYmJlZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVy
IGRyYWc6IDENCitBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0
aW9uRHJvcEFsbG93ZWQNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVT
VCBDT01QTEVURQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2RyYWdnYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxl
Lmh0bWwNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYTJhYzAzMGZl
MWUNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS5odG1sDQpAQCAtMCwwICsxLDk1IEBADQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPHN0eWxl
Pg0KKyAgICAjZHJvcFRhcmdldCwgI2RyYWdNZSB7IHRleHQtYWxpZ246IGNlbnRlcjsgZGlzcGxh
eTogdGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246IG1pZGRsZSB9DQorICAgICNkcm9wVGFyZ2V0
IHt3aWR0aDogMjU2cHg7IGhlaWdodDogMjU2cHg7IGJvcmRlcjogMXB4IGRhc2hlZH0NCisgICAg
I2RyYWdNZSB7LXdlYmtpdC11c2VyLWRyYWc6IGVsZW1lbnQ7IC13ZWJraXQtdXNlci1zZWxlY3Q6
IG5vbmU7IGJhY2tncm91bmQ6ICNmZjAwMDA7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDY0cHg7IGNv
bG9yOiB3aGl0ZX0NCis8L3N0eWxlPg0KKzxzY3JpcHQ+DQorICAgIHZhciBkcmFnTWU7DQorICAg
IHZhciBkcm9wVGFyZ2V0Ow0KKyAgICB2YXIgZXZlbnQ7DQorDQorICAgIGZ1bmN0aW9uIGRyb3Ao
ZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJUYXJnZXQgaXMgZ3JhYmJlZCBhZnRlciBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKyAgICAgICAgZGVi
dWcoIlRFU1QgUEFTU0VEOiBzcXVhcmUgZHJvcHBlZCIpOw0KKyAgICAgICAgZXZlbnQucHJldmVu
dERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBkcmFnT3ZlcihldmVudCkNCisg
ICAgew0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBm
dW5jdGlvbiBkcmFnU3RhcnQoZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJURVNUIGRy
YWcgc3RhcnQiKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBydW5UZXN0KCkNCisgICAgew0K
KyAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpDQorICAgICAgICAgICAgcmV0dXJuOw0K
Kw0KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOw0KKw0KKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZHJh
Z01lLm9mZnNldExlZnQgKyAxMCwgZHJhZ01lLm9mZnNldFRvcCArIGRyYWdNZS5vZmZzZXRIZWln
aHQgLyAyKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgICAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3
YXJkKDIwMCk7DQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcm9wVGFyZ2V0Lm9m
ZnNldExlZnQgKyAxMCwgZHJvcFRhcmdldC5vZmZzZXRUb3AgKyBkcm9wVGFyZ2V0Lm9mZnNldEhl
aWdodCAvIDIpOw0KKw0KKyAgICAgICAgZGVidWcoIlRhcmdldCBpcyBncmFiYmVkIGR1cmluZyBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKw0KKyAgICAgICAg
ZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgIH0NCis8
L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+DQorICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
Pg0KKyAgICA8ZGl2IGlkPSJ0ZXN0LWNvbnRhaW5lciI+DQorICAgICAgICA8ZGl2IGlkPSJkcm9w
VGFyZ2V0IiBkcm9wem9uZT0iY29weSI+RHJvcCB0aGUgcmVkIHNxdWFyZSBvbnRvIG1lLjwvZGl2
Pg0KKyAgICAgICAgPGhyLz4NCisgICAgICAgIDxwPkl0ZW1zIHRoYXQgY2FuIGJlIGRyYWdnZWQg
dG8gdGhlIGRyb3AgdGFyZ2V0OjwvcD4NCisgICAgICAgIDxkaXYgaWQ9ImRyYWdNZSIgZHJhZ2dh
YmxlPSJ0cnVlIj5TcXVhcmU8L2Rpdj4NCisgICAgICAgIDxoci8+DQorICAgIDwvZGl2Pg0KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgPHNjcmlwdD4NCisgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsNCisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
Y2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3RpZmljYXRpb25z
IGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLiIpOw0KKw0KKyAgICAgICAgZHJh
Z01lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYWdNZSIpOw0KKyAgICAgICAgZHJvcFRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcm9wVGFyZ2V0Iik7DQorDQorICAgICAg
ICBkcm9wVGFyZ2V0Lm9uZHJhZ292ZXIgPSBkcmFnT3ZlcjsNCisgICAgICAgIGRyb3BUYXJnZXQu
b25kcm9wID0gZHJvcDsNCisgICAgICAgIGRyYWdNZS5vbnN0YXJ0ID0gZHJhZ1N0YXJ0Ow0KKw0K
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSIp
Ow0KKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCdkcm9wVGFyZ2V0JykuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYR3Jh
YmJlZCcpIik7DQorDQorICAgICAgICBkZWJ1ZygiVGFyZ2V0IGlzIGdyYWJiZWQ6ICIgKyBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLm51bWJl
ckF0dHJpYnV0ZVZhbHVlKCJBWEdyYWJiZWQiKSk7DQorICAgICAgICBkZWJ1ZygiRHJvcHpvbmUg
ZWZmZWN0czogIiArIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgnZHJvcFRhcmdldCcpLmFyaWFEcm9wRWZmZWN0cyk7DQorDQorICAgICAgICBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5jdGlvbihlbGVtZW50LCBu
b3RpZmljYXRpb24pIHsNCisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uLnN0YXJ0c1dpdGgo
IkFYRHJhZyIpKSB7DQorICAgICAgICAgICAgICAgIGRlYnVnKG5vdGlmaWNhdGlvbik7DQorICAg
ICAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYRHJhZ2dpbmdEZXN0aW5hdGlvbkRy
b3BBbGxvd2VkIikgew0KKyAgICAgICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsNCisgICAgICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAg
IH0pOw0KKw0KKyAgICAgICAgc2V0VGltZW91dChydW5UZXN0KCksIDApOw0KKw0KKyAgICA8L3Nj
cmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IGJjMzkzOGViNDRhLi4x
YjQzY2I2MDE4MiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDUwIEBADQorMjAyMC0wNS0wNCAg
Q2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IElt
cGxlbWVudCBhY2Nlc3NpYmlsaXR5IG9mIEhUTUwgNS4xIERyYWcgJiBEcm9wDQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNDE1DQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjI2OTU1MzE+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4NCisNCisgICAgICAgIFN1cHBvcnQgSFRNTDUgZHJhZyBhbmQgZHJvcC4gU3VwcG9y
dCBkcm9wem9uZSBhdHRyaWJ1dGUuDQorICAgICAgICBBZGQgbmV3IG5vdGlmaWNhdGlvbnMgZm9y
IFZvaWNlT3ZlciB0byBjb25zdW1lLg0KKw0KKyAgICAgICAgSXQgYXBwZWFycyB0aGF0IG1vc3Qg
b2YgdGhlIGRyYWdnaW5nIHRlc3RzIGFyZSBza2lwcGVkIGJlY2F1c2Ugb2YgZXZlbnRTZW5kZXIg
aXNzdWVzLg0KKyAgICAgICAgSSB0aGluayB0aGlzIHRlc3QgY291bGQgZG8gYSBsaXR0bGUgbW9y
ZSBpZiB0aG9zZSBpc3N1ZXMgd2VyZSByZXNvbHZlZC4gU3BlY2lmaWNhbGx5LCBub3QgYWxsDQor
ICAgICAgICB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VlbiB0aGF0IGFyZSBleHBlY3RlZC4NCisN
CisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS5odG1sDQorDQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMgY29uc3QpOg0KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQVhIaWRkZW4gY29uc3QpOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoNCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6DQorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcm9wcGluZyBjb25zdCk6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNE
cmFnZ2luZyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNHcmFiYmVkKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpkZXRlcm1pbmVEcm9wRWZmZWN0cyk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJvcHBpbmcgY29uc3QpOiBEZWxldGVk
Lg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRz
QVJJQURyYWdnaW5nIGNvbnN0KTogRGVsZXRlZC4NCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FSSUFHcmFiYmVkKTogRGVsZXRlZC4NCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBUklBRHJvcEVmZmVj
dHMpOiBEZWxldGVkLg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZUF0dHJpYnV0ZURhdGEpOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW06DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVz
XSk6DQorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6XSk6DQorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluOg0KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6DQorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudCk6DQorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpkcmFnZ2luZ0VsZW1lbnQgY29uc3QpOg0KKyAgICAgICAgKiBwYWdlL0V2
ZW50SGFuZGxlci5oOg0KKw0KIDIwMjAtMDQtMzAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2df
MjJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgRml4IGZvciBjcmFzaCBpbiBBWExvZ2dlci4NCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQppbmRleCBhMzBk
MmE5MTUxNi4uNzczOTc5OTZhYjAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgNCkBAIC0zMDMsNyArMzAzLDEyIEBAIHB1YmxpYzoNCiAgICAgICAg
IEFYUmVxdWlyZWRTdGF0dXNDaGFuZ2VkLA0KICAgICAgICAgQVhUZXh0Q2hhbmdlZCwNCiAgICAg
ICAgIEFYQXJpYUF0dHJpYnV0ZUNoYW5nZWQsDQotICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdl
ZA0KKyAgICAgICAgQVhFbGVtZW50QnVzeUNoYW5nZWQsDQorICAgICAgICBBWERyYWdnaW5nU3Rh
cnRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbmRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbnRl
cmVkRHJvcFpvbmUsDQorICAgICAgICBBWERyYWdnaW5nRHJvcHBlZCwNCisgICAgICAgIEFYRHJh
Z2dpbmdFeGl0ZWREcm9wWm9uZQ0KICAgICB9Ow0KIA0KICAgICB2b2lkIHBvc3ROb3RpZmljYXRp
b24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVt
ZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7DQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCmluZGV4IDQwZWE1
ZmVhZTEyLi42NjJhM2ExZjllZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCkBAIC0yNTM0LDggKzI1MzQsOCBAQCBi
b29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMoKSBjb25zdA0K
IHsNCiAgICAgLy8gVGhpcyByZXR1cm5zIHdoZXRoZXIgdGhlIGVsZW1lbnQgc3VwcG9ydHMgYW55
IGdsb2JhbCBBUklBIGF0dHJpYnV0ZXMuDQogICAgIHJldHVybiBzdXBwb3J0c0xpdmVSZWdpb24o
KQ0KLSAgICAgICAgfHwgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKQ0KLSAgICAgICAgfHwgc3VwcG9y
dHNBUklBRHJvcHBpbmcoKQ0KKyAgICAgICAgfHwgc3VwcG9ydHNEcmFnZ2luZygpDQorICAgICAg
ICB8fCBzdXBwb3J0c0Ryb3BwaW5nKCkNCiAgICAgICAgIHx8IHN1cHBvcnRzQVJJQU93bnMoKQ0K
ICAgICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYXRvbWljQXR0cikNCiAgICAgICAgIHx8IGhh
c0F0dHJpYnV0ZShhcmlhX2J1c3lBdHRyKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCmluZGV4IGY1M2Q2OWI3YzMzLi5jN2U0MjFh
MGU3NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaA0KQEAgLTMyNywxMSArMzI3LDExIEBAIHB1YmxpYzoNCiAgICAgaW50IHBv
c0luU2V0KCkgY29uc3Qgb3ZlcnJpZGU7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0K
LSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9DQotICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0NCiAgICAgdm9pZCBzZXRBUklBR3JhYmJlZChib29sKSBvdmVy
cmlkZSB7IH0NCi0gICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkg
b3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQorICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZURy
b3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQogDQogICAgIC8vIENhbGxlZCBv
biB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBlbGVt
ZW50Lg0KICAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBv
aW50JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgNCmluZGV4IDFjODg5NThlZGJlLi5mOGQ2YWVjOGQ0MCAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaA0KQEAgLTc1NiwxMSArNzU2LDExIEBAIHB1YmxpYzoNCiAgICAgdmlydHVhbCBpbnQg
cG9zSW5TZXQoKSBjb25zdCA9IDA7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0KLSAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCA9IDA7DQotICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0ID0gMDsNCi0gICAgdmlydHVh
bCBib29sIGlzQVJJQUdyYWJiZWQoKSA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Ry
b3BwaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygp
IGNvbnN0ID0gMDsNCisgICAgdmlydHVhbCBib29sIGlzR3JhYmJlZCgpID0gMDsNCiAgICAgdmly
dHVhbCB2b2lkIHNldEFSSUFHcmFiYmVkKGJvb2wpID0gMDsNCi0gICAgdmlydHVhbCBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSA9IDA7DQorICAgIHZpcnR1YWwgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSA9IDA7DQogDQogICAgIC8vIENhbGxl
ZCBvbiB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBl
bGVtZW50Lg0KICAgICB2aXJ0dWFsIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3Qo
Y29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCmluZGV4IDAy
Yzc1NzAwYTg1Li44ODU1YzM3MjliMSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCkBAIC0xMDQw
LDMzICsxMDQwLDQyIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aGFzUG9wdXAo
KSBjb25zdA0KICAgICB9KTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0DQorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzdXBwb3J0c0Ryb3BwaW5nKCkgY29uc3QNCiB7DQotICAgIGNvbnN0IEF0b21TdHJp
bmcmIGRyb3BFZmZlY3QgPSBnZXRBdHRyaWJ1dGUoYXJpYV9kcm9wZWZmZWN0QXR0cik7DQotICAg
IHJldHVybiAhZHJvcEVmZmVjdC5pc0VtcHR5KCk7DQorICAgIHJldHVybiAhZ2V0QXR0cmlidXRl
KGFyaWFfZHJvcGVmZmVjdEF0dHIpLmlzRW1wdHkoKSB8fCAhZ2V0QXR0cmlidXRlKGRyYWdnYWJs
ZUF0dHIpLmlzRW1wdHkoKTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0DQorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzdXBwb3J0c0RyYWdnaW5nKCkgY29uc3QNCiB7DQogICAgIGNvbnN0IEF0b21TdHJp
bmcmIGdyYWJiZWQgPSBnZXRBdHRyaWJ1dGUoYXJpYV9ncmFiYmVkQXR0cik7DQotICAgIHJldHVy
biBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAidHJ1ZSIpIHx8IGVxdWFs
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdyYWJiZWQsICJmYWxzZSIpOw0KKyAgICByZXR1cm4g
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgInRydWUiKSB8fCBlcXVhbExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAiZmFsc2UiKSB8fA0KKyAgICAoaXM8SFRN
TEVsZW1lbnQ+KGVsZW1lbnQoKSkgJiYgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KG5vZGUoKSktPmRy
YWdnYWJsZSgpKTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FS
SUFHcmFiYmVkKCkNCitib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzR3JhYmJlZCgp
DQogew0KKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQ0KKyAgICBpZiAobWFpbkZyYW1lKCkgJiYg
bWFpbkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLmRyYWdnaW5nRWxlbWVudCgpID09IGVsZW1lbnQo
KSkNCisgICAgICAgIHJldHVybiB0cnVlOw0KKyNlbmRpZg0KKw0KICAgICByZXR1cm4gZWxlbWVu
dEF0dHJpYnV0ZVZhbHVlKGFyaWFfZ3JhYmJlZEF0dHIpOw0KIH0NCiANCi1WZWN0b3I8U3RyaW5n
PiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKQ0K
K1ZlY3RvcjxTdHJpbmc+IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZURyb3BF
ZmZlY3RzKCkNCiB7DQogICAgIGNvbnN0IEF0b21TdHJpbmcmIGRyb3BFZmZlY3RzID0gZ2V0QXR0
cmlidXRlKGFyaWFfZHJvcGVmZmVjdEF0dHIpOw0KLSAgICBpZiAoZHJvcEVmZmVjdHMuaXNFbXB0
eSgpKSB7DQotICAgICAgICByZXR1cm4geyB9Ow0KKyAgICBpZiAoIWRyb3BFZmZlY3RzLmlzRW1w
dHkoKSkgew0KKyAgICAgICAgU3RyaW5nIGRyb3BFZmZlY3RzU3RyaW5nID0gZHJvcEVmZmVjdHMu
c3RyaW5nKCk7DQorICAgICAgICBkcm9wRWZmZWN0c1N0cmluZy5yZXBsYWNlKCdcbicsICcgJyk7
DQorICAgICAgICByZXR1cm4gZHJvcEVmZmVjdHNTdHJpbmcuc3BsaXQoJyAnKTsNCiAgICAgfQ0K
ICAgICANCi0gICAgU3RyaW5nIGRyb3BFZmZlY3RzU3RyaW5nID0gZHJvcEVmZmVjdHMuc3RyaW5n
KCk7DQotICAgIGRyb3BFZmZlY3RzU3RyaW5nLnJlcGxhY2UoJ1xuJywgJyAnKTsNCi0gICAgcmV0
dXJuIGRyb3BFZmZlY3RzU3RyaW5nLnNwbGl0KCcgJyk7DQorICAgIGF1dG8gZHJvcHpvbmUgPSBn
ZXRBdHRyaWJ1dGUoZHJvcHpvbmVBdHRyKTsNCisgICAgaWYgKCFkcm9wem9uZS5pc0VtcHR5KCkp
DQorICAgICAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4geyBnZXRBdHRyaWJ1dGUoZHJvcHpvbmVB
dHRyKSB9Ow0KKw0KKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4geyBnZXRBdHRyaWJ1dGUod2Vi
a2l0ZHJvcHpvbmVBdHRyKSB9Ow0KIH0NCiAgICAgDQogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpleHBvc2VzVGl0bGVVSUVsZW1lbnQoKSBjb25zdA0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcA0KaW5kZXggN2JhOTZhY2M1MjAuLjkzNDlhNjUzMTE4IDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHANCkBAIC0yMjgyLDcgKzIyODIsMjYgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlw
ZSwgRWxlbWVudCYgZHJhZ1QNCiAgICAgICAgIGV2ZW50Lm1vZGlmaWVycygpLCAwLCAwLCBudWxs
cHRyLCBldmVudC5mb3JjZSgpLCBOb1RhcCwgJmRhdGFUcmFuc2Zlcik7DQogDQogICAgIGRyYWdU
YXJnZXQuZGlzcGF0Y2hFdmVudChkcmFnRXZlbnQpOw0KLSAgICByZXR1cm4gZHJhZ0V2ZW50LT5k
ZWZhdWx0UHJldmVudGVkKCk7DQorDQorICAgIGlmIChhdXRvKiBjYWNoZSA9IG1fZnJhbWUuZG9j
dW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsNCisgICAgICAgIGlmIChldmVudFR5
cGUgPT0gZXZlbnROYW1lcygpLmRyYWdzdGFydEV2ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5w
b3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVjdENhY2hlOjpBWERyYWdnaW5nU3Rh
cnRlZCk7DQorICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRyYWdl
bmRFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbigmZHJhZ1Rhcmdl
dCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0VuZGVkKTsNCisgICAgICAgIGVsc2UgaWYgKGV2
ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQpDQorICAgICAgICAgICAgY2Fj
aGUtPnBvc3ROb3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dp
bmdFbnRlcmVkRHJvcFpvbmUpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50
TmFtZXMoKS5kcmFnbGVhdmVFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNh
dGlvbigmZHJhZ1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0V4aXRlZERyb3Bab25l
KTsNCisgICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJvcEV2ZW50
KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9i
amVjdENhY2hlOjpBWERyYWdnaW5nRHJvcHBlZCk7DQorICAgIH0NCisNCisgICAgcmV0dXJuIGRy
YWdFdmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOzsNCit9DQorDQorRWxlbWVudCogRXZlbnRIYW5k
bGVyOjpkcmFnZ2luZ0VsZW1lbnQoKSBjb25zdA0KK3sNCisgICAgcmV0dXJuIGRyYWdTdGF0ZSgp
LnNvdXJjZS5nZXQoKTsNCiB9DQogDQogc3RhdGljIGJvb2wgdGFyZ2V0SXNGcmFtZShOb2RlKiB0
YXJnZXQsIEZyYW1lKiYgZnJhbWUpDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgNCmluZGV4
IGFkYjE1ZGJiNGM1Li4zNGNjYjFhZDIzMCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmgNCkBAIC0zMzgsNiArMzM4LDEwIEBAIHB1YmxpYzoNCiANCiAgICAgV0VCQ09SRV9FWFBPUlQg
T3B0aW9uYWw8Q3Vyc29yPiBzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGJvb2wg
c2hpZnRLZXkpOw0KIA0KKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQ0KKyAgICBFbGVtZW50KiBk
cmFnZ2luZ0VsZW1lbnQoKSBjb25zdDsNCisjZW5kaWYNCisNCiBwcml2YXRlOg0KICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQ0KICAgICBzdGF0aWMgRHJhZ1N0YXRlJiBkcmFnU3RhdGUoKTsNCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5oDQppbmRleCA3ZWNmMDRhYTA0ZS4uMTg5NGY4NjIwOTUgMTAwNjQ0DQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
aA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmgNCkBAIC0xNzEsMTAgKzE3MSwxMCBAQCBwdWJsaWM6DQogICAgIGJvb2wgaXNWaXNp
YmxlUG9zaXRpb25SYW5nZUluRGlmZmVyZW50RG9jdW1lbnQoY29uc3QgVmlzaWJsZVBvc2l0aW9u
UmFuZ2UmKSBjb25zdDsNCiAgICAgYm9vbCBoYXNQb3B1cCgpIGNvbnN0IG92ZXJyaWRlOw0KIA0K
LSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGU7DQotICAgIGJv
b2wgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdCBvdmVycmlkZTsNCi0gICAgYm9vbCBpc0FS
SUFHcmFiYmVkKCkgb3ZlcnJpZGU7DQotICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFE
cm9wRWZmZWN0cygpIG92ZXJyaWRlOw0KKyAgICBib29sIHN1cHBvcnRzRHJvcHBpbmcoKSBjb25z
dCBvdmVycmlkZTsNCisgICAgYm9vbCBzdXBwb3J0c0RyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGU7
DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJpZGU7DQorICAgIFZlY3RvcjxTdHJpbmc+IGRl
dGVybWluZURyb3BFZmZlY3RzKCkgb3ZlcnJpZGU7DQogICAgIA0KICAgICBWaXNpYmxlUG9zaXRp
b24gdmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlk
ZTsNCiAgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHVuc2lnbmVk
IGluZGV4VmFsdWUsIGJvb2wgbGFzdEluZGV4T0spIGNvbnN0IG92ZXJyaWRlOw0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZE9iamVjdC5jcHANCmluZGV4IDc4OTA5MDlhODJkLi5mNTBjYzZjYTk4MyAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KQEAgLTE3MiwxMCArMTcyLDEwIEBAIHZvaWQgQVhJ
c29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBvYmpl
Y3QsIGJvb2wgaXNSb290DQogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0
c1Bvc0luU2V0LCBvYmplY3Quc3VwcG9ydHNQb3NJblNldCgpKTsNCiAgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlNldFNpemUsIG9iamVjdC5zZXRTaXplKCkpOw0KICAgICBzZXRQcm9w
ZXJ0eShBWFByb3BlcnR5TmFtZTo6UG9zSW5TZXQsIG9iamVjdC5wb3NJblNldCgpKTsNCi0gICAg
c2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJQURyb3BwaW5nLCBvYmplY3Qu
c3VwcG9ydHNBUklBRHJvcHBpbmcoKSk7DQotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpTdXBwb3J0c0FSSUFEcmFnZ2luZywgb2JqZWN0LnN1cHBvcnRzQVJJQURyYWdnaW5nKCkpOw0K
LSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNBUklBR3JhYmJlZCwgb2JqZWN0Lmlz
QVJJQUdyYWJiZWQoKSk7DQotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpBUklBRHJv
cEVmZmVjdHMsIG9iamVjdC5kZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSk7DQorICAgIHNldFBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0Ryb3BwaW5nLCBvYmplY3Quc3VwcG9ydHNE
cm9wcGluZygpKTsNCisgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJh
Z2dpbmcsIG9iamVjdC5zdXBwb3J0c0RyYWdnaW5nKCkpOw0KKyAgICBzZXRQcm9wZXJ0eShBWFBy
b3BlcnR5TmFtZTo6SXNHcmFiYmVkLCBvYmplY3QuaXNHcmFiYmVkKCkpOw0KKyAgICBzZXRQcm9w
ZXJ0eShBWFByb3BlcnR5TmFtZTo6RHJvcEVmZmVjdHMsIG9iamVjdC5kZXRlcm1pbmVEcm9wRWZm
ZWN0cygpKTsNCiAgICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlRpdGxlVUlF
bGVtZW50LCBvYmplY3QudGl0bGVVSUVsZW1lbnQoKSk7DQogICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpFeHBvc2VzVGl0bGVVSUVsZW1lbnQsIG9iamVjdC5leHBvc2VzVGl0bGVVSUVs
ZW1lbnQoKSk7DQogICAgIHNldE9iamVjdFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpWZXJ0aWNh
bFNjcm9sbEJhciwgb2JqZWN0LnNjcm9sbEJhcihBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb246OlZl
cnRpY2FsKSk7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQppbmRleCAxYzkzNmZkYTI2YS4uNGM5
MDJlZmUwYTEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KQEAgLTg5LDcgKzg5LDcgQEAg
cHJpdmF0ZToNCiAgICAgICAgIEF1dG9Db21wbGV0ZVZhbHVlLA0KICAgICAgICAgQVJJQUNvbnRy
b2xzRWxlbWVudHMsDQogICAgICAgICBBUklBRGV0YWlsc0VsZW1lbnRzLA0KLSAgICAgICAgQVJJ
QURyb3BFZmZlY3RzLA0KKyAgICAgICAgRHJvcEVmZmVjdHMsDQogICAgICAgICBBUklBRXJyb3JN
ZXNzYWdlRWxlbWVudHMsDQogICAgICAgICBBUklBSXNNdWx0aWxpbmUsDQogICAgICAgICBBUklB
Rmxvd1RvRWxlbWVudHMsDQpAQCAtMTYxLDcgKzE2MSw3IEBAIHByaXZhdGU6DQogICAgICAgICBJ
c0FjY2Vzc2liaWxpdHlJZ25vcmVkLA0KICAgICAgICAgSXNBY3RpdmVEZXNjZW5kYW50T2ZGb2N1
c2VkQ29udGFpbmVyLA0KICAgICAgICAgSXNBbm9ueW1vdXNNYXRoT3BlcmF0b3IsDQotICAgICAg
ICBJc0FSSUFHcmFiYmVkLA0KKyAgICAgICAgSXNHcmFiYmVkLA0KICAgICAgICAgSXNBUklBVHJl
ZUdyaWRSb3csDQogICAgICAgICBJc0F0dGFjaG1lbnQsDQogICAgICAgICBJc0J1dHRvbiwNCkBA
IC0yOTksOCArMjk5LDggQEAgcHJpdmF0ZToNCiAgICAgICAgIFNwZWFrQXMsDQogICAgICAgICBT
cGVlY2hIaW50LA0KICAgICAgICAgU3RyaW5nVmFsdWUsDQotICAgICAgICBTdXBwb3J0c0FSSUFE
cmFnZ2luZywNCi0gICAgICAgIFN1cHBvcnRzQVJJQURyb3BwaW5nLA0KKyAgICAgICAgU3VwcG9y
dHNEcmFnZ2luZywNCisgICAgICAgIFN1cHBvcnRzRHJvcHBpbmcsDQogICAgICAgICBTdXBwb3J0
c0FSSUFPd25zLA0KICAgICAgICAgU3VwcG9ydHNDdXJyZW50LA0KICAgICAgICAgU3VwcG9ydHNE
YXRldGltZUF0dHJpYnV0ZSwNCkBAIC01MDQsMTAgKzUwNCwxMCBAQCBwcml2YXRlOg0KICAgICBi
b29sIHN1cHBvcnRzUG9zSW5TZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmli
dXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzUG9zSW5TZXQpOyB9DQogICAgIGludCBz
ZXRTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gaW50QXR0cmlidXRlVmFsdWUoQVhQcm9w
ZXJ0eU5hbWU6OlNldFNpemUpOyB9DQogICAgIGludCBwb3NJblNldCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGludEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpQb3NJblNldCk7IH0N
Ci0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNBUklBRHJvcHBpbmcp
OyB9DQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJQURyYWdn
aW5nKTsgfQ0KLSAgICBib29sIGlzQVJJQUdyYWJiZWQoKSBvdmVycmlkZSB7IHJldHVybiBib29s
QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzQVJJQUdyYWJiZWQpOyB9DQotICAgIFZl
Y3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpIG92ZXJyaWRlIHsgcmV0dXJu
IHZlY3RvckF0dHJpYnV0ZVZhbHVlPFN0cmluZz4oQVhQcm9wZXJ0eU5hbWU6OkFSSUFEcm9wRWZm
ZWN0cyk7IH0NCisgICAgYm9vbCBzdXBwb3J0c0Ryb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0Ryb3BwaW5n
KTsgfQ0KKyAgICBib29sIHN1cHBvcnRzRHJhZ2dpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJhZ2dpbmcpOyB9
DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZh
bHVlKEFYUHJvcGVydHlOYW1lOjpJc0dyYWJiZWQpOyB9DQorICAgIFZlY3RvcjxTdHJpbmc+IGRl
dGVybWluZURyb3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyByZXR1cm4gdmVjdG9yQXR0cmlidXRlVmFs
dWU8U3RyaW5nPihBWFByb3BlcnR5TmFtZTo6RHJvcEVmZmVjdHMpOyB9DQogICAgIEFYQ29yZU9i
amVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3QoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlk
ZTsNCiAgICAgQVhDb3JlT2JqZWN0KiBmb2N1c2VkVUlFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7
DQogICAgIEFYQ29yZU9iamVjdCogcGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gcGFyZW50T2JqZWN0VW5pZ25vcmVkKCk7IH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQ0KaW5kZXggNGZlZGZhNTZlMzYu
LmUzZjA3YWJmNDMxIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvQVhPYmplY3RDYWNoZU1hYy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQ0KQEAgLTk2LDYgKzk2LDMxIEBADQogI2RlZmluZSBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0
ZWRUZXh0TWFya2VyUmFuZ2UiDQogI2VuZGlmDQogDQorI2lmbmRlZiBrQVhEcmFnZ2luZ1NvdXJj
ZURyYWdCZWdhbk5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdTb3VyY2VEcmFnQmVn
YW5Ob3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdTb3VyY2VEcmFnQmVnYW4iKQ0KKyNlbmRp
Zg0KKw0KKyNpZm5kZWYga0FYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWROb3RpZmljYXRpb24NCisj
ZGVmaW5lIGtBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVkTm90aWZpY2F0aW9uIENGU1RSKCJBWERy
YWdnaW5nU291cmNlRHJhZ0VuZGVkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5n
RGVzdGluYXRpb25Ecm9wQWxsb3dlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyb3BBbGxvd2VkTm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5nRGVzdGlu
YXRpb25Ecm9wQWxsb3dlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhEcmFnZ2luZ0Rlc3Rp
bmF0aW9uRHJvcE5vdEFsbG93ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5nRGVz
dGluYXRpb25Ecm9wTm90QWxsb3dlZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ0Rlc3Rp
bmF0aW9uRHJvcE5vdEFsbG93ZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyYWdBY2NlcHRlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyYWdBY2NlcHRlZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ0Rlc3Rp
bmF0aW9uRHJhZ0FjY2VwdGVkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5nRGVz
dGluYXRpb25EcmFnTm90QWNjZXB0ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5n
RGVzdGluYXRpb25EcmFnTm90QWNjZXB0ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZCIpDQorI2VuZGlmDQorDQorDQogLy8gVmVyeSBsYXJn
ZSBzdHJpbmdzIGNhbiBuZWdhdGl2ZWx5IGltcGFjdCB0aGUgcGVyZm9ybWFuY2Ugb2Ygbm90aWZp
Y2F0aW9ucywgc28gdGhpcyBsZW5ndGggaXMgY2hvc2VuIHRvIHRyeSB0byBmaXQgYW4gYXZlcmFn
ZSBwYXJhZ3JhcGggb3IgbGluZSBvZiB0ZXh0LCBidXQgbm90IGFsbG93IHN0cmluZ3MgdG8gYmUg
bGFyZ2UgZW5vdWdoIHRvIGh1cnQgcGVyZm9ybWFuY2UuDQogc3RhdGljIGNvbnN0IE5TVUludGVn
ZXIgQVhWYWx1ZUNoYW5nZVRydW5jYXRpb25MZW5ndGggPSAxMDAwOw0KIA0KQEAgLTM1Myw2ICsz
NzgsMjEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQVhD
b3JlT2JqZWN0KiBvYmosIEFYTm90aWZpY2F0aW9uIG4NCiAgICAgICAgIGNhc2UgQVhNZW51T3Bl
bmVkOg0KICAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhNZW51T3BlbmVkTm90
aWZpY2F0aW9uOw0KICAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5n
U3RhcnRlZDoNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdT
b3VyY2VEcmFnQmVnYW5Ob3RpZmljYXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAg
ICBjYXNlIEFYRHJhZ2dpbmdFbmRlZDoNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAo
aWQpa0FYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAg
YnJlYWs7DQorICAgICAgICBjYXNlIEFYRHJhZ2dpbmdFbnRlcmVkRHJvcFpvbmU6DQorICAgICAg
ICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWERyYWdnaW5nRGVzdGluYXRpb25Ecm9wQWxs
b3dlZE5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgQVhE
cmFnZ2luZ0Ryb3BwZWQ6DQorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWERy
YWdnaW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAg
YnJlYWs7DQorICAgICAgICBjYXNlIEFYRHJhZ2dpbmdFeGl0ZWREcm9wWm9uZToNCisgICAgICAg
ICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdOb3RB
Y2NlcHRlZE5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBicmVhazsNCiAgICAgICAgIGRlZmF1
bHQ6DQogICAgICAgICAgICAgcmV0dXJuOw0KICAgICB9DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbQ0KaW5kZXggZjFiOGFkYjRhYWEuLjkyMGQyYzRlZGQ4IDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMubW0NCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tDQpAQCAtMTM1MCwxMCArMTM1MCwx
MCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQNCiAgICAgICAgIHx8IGJh
Y2tpbmdPYmplY3QtPmlzVG9vbGJhcigpKQ0KICAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0
Ok5TQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uQXR0cmlidXRlXTsNCiANCi0gICAgaWYgKGJhY2tp
bmdPYmplY3QtPnN1cHBvcnRzQVJJQURyYWdnaW5nKCkpDQorICAgIGlmIChiYWNraW5nT2JqZWN0
LT5zdXBwb3J0c0RyYWdnaW5nKCkpDQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6TlNB
Y2Nlc3NpYmlsaXR5R3JhYmJlZEF0dHJpYnV0ZV07DQogDQotICAgIGlmIChiYWNraW5nT2JqZWN0
LT5zdXBwb3J0c0FSSUFEcm9wcGluZygpKQ0KKyAgICBpZiAoYmFja2luZ09iamVjdC0+c3VwcG9y
dHNEcm9wcGluZygpKQ0KICAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJp
bGl0eURyb3BFZmZlY3RzQXR0cmlidXRlXTsNCiANCiAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlz
VGFibGUoKSAmJiBiYWNraW5nT2JqZWN0LT5pc0V4cG9zYWJsZSgpICYmIGJhY2tpbmdPYmplY3Qt
PnN1cHBvcnRzU2VsZWN0ZWRSb3dzKCkpDQpAQCAtMjkxNywxMCArMjkxNywxMCBAQCBBTExPV19E
RVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQNCiAgICAgICAgIHJldHVybiBAKGJhY2tpbmdP
YmplY3QtPnNldFNpemUoKSk7DQogDQogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9T
dHJpbmc6TlNBY2Nlc3NpYmlsaXR5R3JhYmJlZEF0dHJpYnV0ZV0pDQotICAgICAgICByZXR1cm4g
W05TTnVtYmVyIG51bWJlcldpdGhCb29sOmJhY2tpbmdPYmplY3QtPmlzQVJJQUdyYWJiZWQoKV07
DQorICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhCb29sOmJhY2tpbmdPYmplY3Qt
PmlzR3JhYmJlZCgpXTsNCiANCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmlu
ZzpOU0FjY2Vzc2liaWxpdHlEcm9wRWZmZWN0c0F0dHJpYnV0ZV0pDQotICAgICAgICByZXR1cm4g
Y3JlYXRlTlNBcnJheShiYWNraW5nT2JqZWN0LT5kZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSku
YXV0b3JlbGVhc2UoKTsNCisgICAgICAgIHJldHVybiBjcmVhdGVOU0FycmF5KGJhY2tpbmdPYmpl
Y3QtPmRldGVybWluZURyb3BFZmZlY3RzKCkpLmF1dG9yZWxlYXNlKCk7DQogDQogICAgIGlmIChb
YXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5UGxhY2Vob2xkZXJW
YWx1ZUF0dHJpYnV0ZV0pDQogICAgICAgICByZXR1cm4gYmFja2luZ09iamVjdC0+cGxhY2Vob2xk
ZXJWYWx1ZSgpOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0
ZU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4NCmlu
ZGV4IGRjZDgzNzhkOTU0Li5jYjMwNDkwNDA4OSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbg0KQEAgLTEyMSw2ICsxMjEsNyBAQCBkaXNhYmxlcmVtb3RlcGxh
eWJhY2sNCiBkaXNwb3NpdGlvbg0KIGRvd25sb2FkDQogZHJhZ2dhYmxlDQorZHJvcHpvbmUNCiB3
ZWJraXRkcm9wem9uZQ0KIGVuY3R5cGUNCiBlbmQNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGUuY3BwDQppbmRleCA5ZjM4ZTc4NjVi
ZC4uMGQ0MTFmNDNlOWUgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2F0ay9XZWJLaXRBY2Nlc3NpYmxlLmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZS5jcHANCkBAIC01NjMsOSArNTYzLDkgQEAgc3RhdGlj
IEF0a0F0dHJpYnV0ZVNldCogd2Via2l0QWNjZXNzaWJsZUdldEF0dHJpYnV0ZXMoQXRrT2JqZWN0
KiBvYmplY3QpDQogICAgIGlmICghZHJvcEVmZmVjdC5pc0VtcHR5KCkpDQogICAgICAgICBhdHRy
aWJ1dGVTZXQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChhdHRyaWJ1dGVTZXQsICJkcm9wZWZmZWN0
IiwgZHJvcEVmZmVjdC51dGY4KCkuZGF0YSgpKTsNCiANCi0gICAgaWYgKGNvcmVPYmplY3QtPmlz
QVJJQUdyYWJiZWQoKSkNCisgICAgaWYgKGNvcmVPYmplY3QtPmlzR3JhYmJlZCgpKQ0KICAgICAg
ICAgYXR0cmlidXRlU2V0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQoYXR0cmlidXRlU2V0LCAiZ3Jh
YmJlZCIsICJ0cnVlIik7DQotICAgIGVsc2UgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJQURy
YWdnaW5nKCkpDQorICAgIGVsc2UgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzRHJhZ2dpbmcoKSkN
CiAgICAgICAgIGF0dHJpYnV0ZVNldCA9IGFkZFRvQXRrQXR0cmlidXRlU2V0KGF0dHJpYnV0ZVNl
dCwgImdyYWJiZWQiLCAiZmFsc2UiKTsNCiANCiAgICAgLy8gVGhlIENvcmUgQUFNIHN0YXRlcyB0
aGUgYXV0aG9yLXByb3ZpZGVkIHZhbHVlIHNob3VsZCBiZSBleHBvc2VkIGFzLWlzLg0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398540</attachid>
            <date>2020-05-05 12:27:23 -0700</date>
            <delta_ts>2020-05-05 12:41:05 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>27012</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTg0NGZjZmE2NTkuLmYwNWI2MTQzMDE2IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDQtMzAgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+DQogDQogICAgICAgICBib3JkZXItcmFkaXVzIGZh
aWxzIHRvIGNsaXAgaWZyYW1lIGNvbnRlbnRzDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
DQppbmRleCAwMDAwMDAwMDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0w
LDAgKzEsMjEgQEANCitUaGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRy
aWJ1dGVzIGFuZCBub3RpZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRp
b25zLg0KKw0KK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQg
c3F1YXJlIG9udG8gbWUuDQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0
YXJnZXQ6DQorDQorU3F1YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQn
KSBpcyB0cnVlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoJ2Ryb3BUYXJnZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMg
ZmFsc2UNCitUYXJnZXQgaXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitU
YXJnZXQgaXMgZ3JhYmJlZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVy
IGRyYWc6IDENCitBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0
aW9uRHJvcEFsbG93ZWQNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVT
VCBDT01QTEVURQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2RyYWdnYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxl
Lmh0bWwNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYTJhYzAzMGZl
MWUNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS5odG1sDQpAQCAtMCwwICsxLDk1IEBADQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPHN0eWxl
Pg0KKyAgICAjZHJvcFRhcmdldCwgI2RyYWdNZSB7IHRleHQtYWxpZ246IGNlbnRlcjsgZGlzcGxh
eTogdGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246IG1pZGRsZSB9DQorICAgICNkcm9wVGFyZ2V0
IHt3aWR0aDogMjU2cHg7IGhlaWdodDogMjU2cHg7IGJvcmRlcjogMXB4IGRhc2hlZH0NCisgICAg
I2RyYWdNZSB7LXdlYmtpdC11c2VyLWRyYWc6IGVsZW1lbnQ7IC13ZWJraXQtdXNlci1zZWxlY3Q6
IG5vbmU7IGJhY2tncm91bmQ6ICNmZjAwMDA7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDY0cHg7IGNv
bG9yOiB3aGl0ZX0NCis8L3N0eWxlPg0KKzxzY3JpcHQ+DQorICAgIHZhciBkcmFnTWU7DQorICAg
IHZhciBkcm9wVGFyZ2V0Ow0KKyAgICB2YXIgZXZlbnQ7DQorDQorICAgIGZ1bmN0aW9uIGRyb3Ao
ZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJUYXJnZXQgaXMgZ3JhYmJlZCBhZnRlciBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKyAgICAgICAgZGVi
dWcoIlRFU1QgUEFTU0VEOiBzcXVhcmUgZHJvcHBlZCIpOw0KKyAgICAgICAgZXZlbnQucHJldmVu
dERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBkcmFnT3ZlcihldmVudCkNCisg
ICAgew0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBm
dW5jdGlvbiBkcmFnU3RhcnQoZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJURVNUIGRy
YWcgc3RhcnQiKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBydW5UZXN0KCkNCisgICAgew0K
KyAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpDQorICAgICAgICAgICAgcmV0dXJuOw0K
Kw0KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOw0KKw0KKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZHJh
Z01lLm9mZnNldExlZnQgKyAxMCwgZHJhZ01lLm9mZnNldFRvcCArIGRyYWdNZS5vZmZzZXRIZWln
aHQgLyAyKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgICAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3
YXJkKDIwMCk7DQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcm9wVGFyZ2V0Lm9m
ZnNldExlZnQgKyAxMCwgZHJvcFRhcmdldC5vZmZzZXRUb3AgKyBkcm9wVGFyZ2V0Lm9mZnNldEhl
aWdodCAvIDIpOw0KKw0KKyAgICAgICAgZGVidWcoIlRhcmdldCBpcyBncmFiYmVkIGR1cmluZyBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKw0KKyAgICAgICAg
ZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgIH0NCis8
L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+DQorICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
Pg0KKyAgICA8ZGl2IGlkPSJ0ZXN0LWNvbnRhaW5lciI+DQorICAgICAgICA8ZGl2IGlkPSJkcm9w
VGFyZ2V0IiBkcm9wem9uZT0iY29weSI+RHJvcCB0aGUgcmVkIHNxdWFyZSBvbnRvIG1lLjwvZGl2
Pg0KKyAgICAgICAgPGhyLz4NCisgICAgICAgIDxwPkl0ZW1zIHRoYXQgY2FuIGJlIGRyYWdnZWQg
dG8gdGhlIGRyb3AgdGFyZ2V0OjwvcD4NCisgICAgICAgIDxkaXYgaWQ9ImRyYWdNZSIgZHJhZ2dh
YmxlPSJ0cnVlIj5TcXVhcmU8L2Rpdj4NCisgICAgICAgIDxoci8+DQorICAgIDwvZGl2Pg0KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgPHNjcmlwdD4NCisgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsNCisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
Y2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3RpZmljYXRpb25z
IGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLiIpOw0KKw0KKyAgICAgICAgZHJh
Z01lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYWdNZSIpOw0KKyAgICAgICAgZHJvcFRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcm9wVGFyZ2V0Iik7DQorDQorICAgICAg
ICBkcm9wVGFyZ2V0Lm9uZHJhZ292ZXIgPSBkcmFnT3ZlcjsNCisgICAgICAgIGRyb3BUYXJnZXQu
b25kcm9wID0gZHJvcDsNCisgICAgICAgIGRyYWdNZS5vbnN0YXJ0ID0gZHJhZ1N0YXJ0Ow0KKw0K
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSIp
Ow0KKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCdkcm9wVGFyZ2V0JykuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYR3Jh
YmJlZCcpIik7DQorDQorICAgICAgICBkZWJ1ZygiVGFyZ2V0IGlzIGdyYWJiZWQ6ICIgKyBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLm51bWJl
ckF0dHJpYnV0ZVZhbHVlKCJBWEdyYWJiZWQiKSk7DQorICAgICAgICBkZWJ1ZygiRHJvcHpvbmUg
ZWZmZWN0czogIiArIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgnZHJvcFRhcmdldCcpLmFyaWFEcm9wRWZmZWN0cyk7DQorDQorICAgICAgICBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5jdGlvbihlbGVtZW50LCBu
b3RpZmljYXRpb24pIHsNCisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uLnN0YXJ0c1dpdGgo
IkFYRHJhZyIpKSB7DQorICAgICAgICAgICAgICAgIGRlYnVnKG5vdGlmaWNhdGlvbik7DQorICAg
ICAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYRHJhZ2dpbmdEZXN0aW5hdGlvbkRy
b3BBbGxvd2VkIikgew0KKyAgICAgICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsNCisgICAgICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAg
IH0pOw0KKw0KKyAgICAgICAgc2V0VGltZW91dChydW5UZXN0KCksIDApOw0KKw0KKyAgICA8L3Nj
cmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IGJjMzkzOGViNDRhLi4x
YjQzY2I2MDE4MiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDUwIEBADQorMjAyMC0wNS0wNCAg
Q2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IElt
cGxlbWVudCBhY2Nlc3NpYmlsaXR5IG9mIEhUTUwgNS4xIERyYWcgJiBEcm9wDQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNDE1DQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjI2OTU1MzE+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4NCisNCisgICAgICAgIFN1cHBvcnQgSFRNTDUgZHJhZyBhbmQgZHJvcC4gU3VwcG9y
dCBkcm9wem9uZSBhdHRyaWJ1dGUuDQorICAgICAgICBBZGQgbmV3IG5vdGlmaWNhdGlvbnMgZm9y
IFZvaWNlT3ZlciB0byBjb25zdW1lLg0KKw0KKyAgICAgICAgSXQgYXBwZWFycyB0aGF0IG1vc3Qg
b2YgdGhlIGRyYWdnaW5nIHRlc3RzIGFyZSBza2lwcGVkIGJlY2F1c2Ugb2YgZXZlbnRTZW5kZXIg
aXNzdWVzLg0KKyAgICAgICAgSSB0aGluayB0aGlzIHRlc3QgY291bGQgZG8gYSBsaXR0bGUgbW9y
ZSBpZiB0aG9zZSBpc3N1ZXMgd2VyZSByZXNvbHZlZC4gU3BlY2lmaWNhbGx5LCBub3QgYWxsDQor
ICAgICAgICB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VlbiB0aGF0IGFyZSBleHBlY3RlZC4NCisN
CisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS5odG1sDQorDQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMgY29uc3QpOg0KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQVhIaWRkZW4gY29uc3QpOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoNCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6DQorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcm9wcGluZyBjb25zdCk6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNE
cmFnZ2luZyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNHcmFiYmVkKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpkZXRlcm1pbmVEcm9wRWZmZWN0cyk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJvcHBpbmcgY29uc3QpOiBEZWxldGVk
Lg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRz
QVJJQURyYWdnaW5nIGNvbnN0KTogRGVsZXRlZC4NCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FSSUFHcmFiYmVkKTogRGVsZXRlZC4NCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBUklBRHJvcEVmZmVj
dHMpOiBEZWxldGVkLg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZUF0dHJpYnV0ZURhdGEpOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW06DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVz
XSk6DQorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6XSk6DQorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluOg0KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6DQorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudCk6DQorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpkcmFnZ2luZ0VsZW1lbnQgY29uc3QpOg0KKyAgICAgICAgKiBwYWdlL0V2
ZW50SGFuZGxlci5oOg0KKw0KIDIwMjAtMDQtMzAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2df
MjJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgRml4IGZvciBjcmFzaCBpbiBBWExvZ2dlci4NCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQppbmRleCBhMzBk
MmE5MTUxNi4uNzczOTc5OTZhYjAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgNCkBAIC0zMDMsNyArMzAzLDEyIEBAIHB1YmxpYzoNCiAgICAgICAg
IEFYUmVxdWlyZWRTdGF0dXNDaGFuZ2VkLA0KICAgICAgICAgQVhUZXh0Q2hhbmdlZCwNCiAgICAg
ICAgIEFYQXJpYUF0dHJpYnV0ZUNoYW5nZWQsDQotICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdl
ZA0KKyAgICAgICAgQVhFbGVtZW50QnVzeUNoYW5nZWQsDQorICAgICAgICBBWERyYWdnaW5nU3Rh
cnRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbmRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbnRl
cmVkRHJvcFpvbmUsDQorICAgICAgICBBWERyYWdnaW5nRHJvcHBlZCwNCisgICAgICAgIEFYRHJh
Z2dpbmdFeGl0ZWREcm9wWm9uZQ0KICAgICB9Ow0KIA0KICAgICB2b2lkIHBvc3ROb3RpZmljYXRp
b24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVt
ZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7DQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCmluZGV4IDQwZWE1
ZmVhZTEyLi42NjJhM2ExZjllZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCkBAIC0yNTM0LDggKzI1MzQsOCBAQCBi
b29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMoKSBjb25zdA0K
IHsNCiAgICAgLy8gVGhpcyByZXR1cm5zIHdoZXRoZXIgdGhlIGVsZW1lbnQgc3VwcG9ydHMgYW55
IGdsb2JhbCBBUklBIGF0dHJpYnV0ZXMuDQogICAgIHJldHVybiBzdXBwb3J0c0xpdmVSZWdpb24o
KQ0KLSAgICAgICAgfHwgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKQ0KLSAgICAgICAgfHwgc3VwcG9y
dHNBUklBRHJvcHBpbmcoKQ0KKyAgICAgICAgfHwgc3VwcG9ydHNEcmFnZ2luZygpDQorICAgICAg
ICB8fCBzdXBwb3J0c0Ryb3BwaW5nKCkNCiAgICAgICAgIHx8IHN1cHBvcnRzQVJJQU93bnMoKQ0K
ICAgICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYXRvbWljQXR0cikNCiAgICAgICAgIHx8IGhh
c0F0dHJpYnV0ZShhcmlhX2J1c3lBdHRyKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCmluZGV4IGY1M2Q2OWI3YzMzLi5jN2U0MjFh
MGU3NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaA0KQEAgLTMyNywxMSArMzI3LDExIEBAIHB1YmxpYzoNCiAgICAgaW50IHBv
c0luU2V0KCkgY29uc3Qgb3ZlcnJpZGU7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0K
LSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9DQotICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0NCiAgICAgdm9pZCBzZXRBUklBR3JhYmJlZChib29sKSBvdmVy
cmlkZSB7IH0NCi0gICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkg
b3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQorICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZURy
b3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQogDQogICAgIC8vIENhbGxlZCBv
biB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBlbGVt
ZW50Lg0KICAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBv
aW50JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgNCmluZGV4IDFjODg5NThlZGJlLi5mOGQ2YWVjOGQ0MCAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaA0KQEAgLTc1NiwxMSArNzU2LDExIEBAIHB1YmxpYzoNCiAgICAgdmlydHVhbCBpbnQg
cG9zSW5TZXQoKSBjb25zdCA9IDA7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0KLSAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCA9IDA7DQotICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0ID0gMDsNCi0gICAgdmlydHVh
bCBib29sIGlzQVJJQUdyYWJiZWQoKSA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Ry
b3BwaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygp
IGNvbnN0ID0gMDsNCisgICAgdmlydHVhbCBib29sIGlzR3JhYmJlZCgpID0gMDsNCiAgICAgdmly
dHVhbCB2b2lkIHNldEFSSUFHcmFiYmVkKGJvb2wpID0gMDsNCi0gICAgdmlydHVhbCBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSA9IDA7DQorICAgIHZpcnR1YWwgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSA9IDA7DQogDQogICAgIC8vIENhbGxl
ZCBvbiB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBl
bGVtZW50Lg0KICAgICB2aXJ0dWFsIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3Qo
Y29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwDQppbmRleCA3YmE5NmFjYzUyMC4uOTM0OWE2NTMxMTggMTAwNjQ0DQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcA0KQEAgLTIyODIsNyArMjI4MiwyNiBAQCBib29sIEV2ZW50SGFuZGxl
cjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFbGVtZW50
JiBkcmFnVA0KICAgICAgICAgZXZlbnQubW9kaWZpZXJzKCksIDAsIDAsIG51bGxwdHIsIGV2ZW50
LmZvcmNlKCksIE5vVGFwLCAmZGF0YVRyYW5zZmVyKTsNCiANCiAgICAgZHJhZ1RhcmdldC5kaXNw
YXRjaEV2ZW50KGRyYWdFdmVudCk7DQotICAgIHJldHVybiBkcmFnRXZlbnQtPmRlZmF1bHRQcmV2
ZW50ZWQoKTsNCisNCisgICAgaWYgKGF1dG8qIGNhY2hlID0gbV9mcmFtZS5kb2N1bWVudCgpLT5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgew0KKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkuZHJhZ3N0YXJ0RXZlbnQpDQorICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmlj
YXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdTdGFydGVkKTsNCisg
ICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJhZ2VuZEV2ZW50KQ0K
KyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVj
dENhY2hlOjpBWERyYWdnaW5nRW5kZWQpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09
IGV2ZW50TmFtZXMoKS5kcmFnZW50ZXJFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5v
dGlmaWNhdGlvbigmZHJhZ1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0VudGVyZWRE
cm9wWm9uZSk7DQorICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRy
YWdsZWF2ZUV2ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFn
VGFyZ2V0LCBBWE9iamVjdENhY2hlOjpBWERyYWdnaW5nRXhpdGVkRHJvcFpvbmUpOw0KKyAgICAg
ICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kcm9wRXZlbnQpDQorICAgICAg
ICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6
OkFYRHJhZ2dpbmdEcm9wcGVkKTsNCisgICAgfQ0KKw0KKyAgICByZXR1cm4gZHJhZ0V2ZW50LT5k
ZWZhdWx0UHJldmVudGVkKCk7Ow0KK30NCisNCitFbGVtZW50KiBFdmVudEhhbmRsZXI6OmRyYWdn
aW5nRWxlbWVudCgpIGNvbnN0DQorew0KKyAgICByZXR1cm4gZHJhZ1N0YXRlKCkuc291cmNlLmdl
dCgpOw0KIH0NCiANCiBzdGF0aWMgYm9vbCB0YXJnZXRJc0ZyYW1lKE5vZGUqIHRhcmdldCwgRnJh
bWUqJiBmcmFtZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KaW5kZXggYWRiMTVkYmI0
YzUuLjM0Y2NiMWFkMjMwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KQEAgLTMz
OCw2ICszMzgsMTAgQEAgcHVibGljOg0KIA0KICAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxD
dXJzb3I+IHNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiwgYm9vbCBzaGlmdEtleSk7
DQogDQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpDQorICAgIEVsZW1lbnQqIGRyYWdnaW5nRWxl
bWVudCgpIGNvbnN0Ow0KKyNlbmRpZg0KKw0KIHByaXZhdGU6DQogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpDQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOw0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwDQppbmRleCAyNjJiMjljOWM1Yi4uZjE2MmExMTc1MjggMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwDQpAQCAtMTA0MCwzMyArMTA0MCw0MiBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6Omhhc1BvcHVwKCkgY29uc3QNCiAgICAgfSk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdA0KK2Jvb2wgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcm9wcGluZygpIGNvbnN0DQogew0KLSAg
ICBjb25zdCBBdG9tU3RyaW5nJiBkcm9wRWZmZWN0ID0gZ2V0QXR0cmlidXRlKGFyaWFfZHJvcGVm
ZmVjdEF0dHIpOw0KLSAgICByZXR1cm4gIWRyb3BFZmZlY3QuaXNFbXB0eSgpOw0KKyAgICByZXR1
cm4gIWdldEF0dHJpYnV0ZShhcmlhX2Ryb3BlZmZlY3RBdHRyKS5pc0VtcHR5KCkgfHwgIWdldEF0
dHJpYnV0ZShkcmFnZ2FibGVBdHRyKS5pc0VtcHR5KCk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdA0KK2Jvb2wgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0DQogew0KICAg
ICBjb25zdCBBdG9tU3RyaW5nJiBncmFiYmVkID0gZ2V0QXR0cmlidXRlKGFyaWFfZ3JhYmJlZEF0
dHIpOw0KLSAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwg
InRydWUiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAiZmFsc2Ui
KTsNCisgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdyYWJiZWQsICJ0
cnVlIikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgImZhbHNlIikg
fHwNCisgICAgKGlzPEhUTUxFbGVtZW50PihlbGVtZW50KCkpICYmIGRvd25jYXN0PEhUTUxFbGVt
ZW50Pihub2RlKCkpLT5kcmFnZ2FibGUoKSk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6aXNBUklBR3JhYmJlZCgpDQorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojppc0dyYWJiZWQoKQ0KIHsNCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkNCisgICAgaWYg
KG1haW5GcmFtZSgpICYmIG1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS5kcmFnZ2luZ0VsZW1l
bnQoKSA9PSBlbGVtZW50KCkpDQorICAgICAgICByZXR1cm4gdHJ1ZTsNCisjZW5kaWYNCisNCiAg
ICAgcmV0dXJuIGVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShhcmlhX2dyYWJiZWRBdHRyKTsNCiB9DQog
DQotVmVjdG9yPFN0cmluZz4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQVJJ
QURyb3BFZmZlY3RzKCkNCitWZWN0b3I8U3RyaW5nPiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpkZXRlcm1pbmVEcm9wRWZmZWN0cygpDQogew0KICAgICBjb25zdCBBdG9tU3RyaW5nJiBkcm9w
RWZmZWN0cyA9IGdldEF0dHJpYnV0ZShhcmlhX2Ryb3BlZmZlY3RBdHRyKTsNCi0gICAgaWYgKGRy
b3BFZmZlY3RzLmlzRW1wdHkoKSkgew0KLSAgICAgICAgcmV0dXJuIHsgfTsNCisgICAgaWYgKCFk
cm9wRWZmZWN0cy5pc0VtcHR5KCkpIHsNCisgICAgICAgIFN0cmluZyBkcm9wRWZmZWN0c1N0cmlu
ZyA9IGRyb3BFZmZlY3RzLnN0cmluZygpOw0KKyAgICAgICAgZHJvcEVmZmVjdHNTdHJpbmcucmVw
bGFjZSgnXG4nLCAnICcpOw0KKyAgICAgICAgcmV0dXJuIGRyb3BFZmZlY3RzU3RyaW5nLnNwbGl0
KCcgJyk7DQogICAgIH0NCiAgICAgDQotICAgIFN0cmluZyBkcm9wRWZmZWN0c1N0cmluZyA9IGRy
b3BFZmZlY3RzLnN0cmluZygpOw0KLSAgICBkcm9wRWZmZWN0c1N0cmluZy5yZXBsYWNlKCdcbics
ICcgJyk7DQotICAgIHJldHVybiBkcm9wRWZmZWN0c1N0cmluZy5zcGxpdCgnICcpOw0KKyAgICBh
dXRvIGRyb3B6b25lID0gZ2V0QXR0cmlidXRlKGRyb3B6b25lQXR0cik7DQorICAgIGlmICghZHJv
cHpvbmUuaXNFbXB0eSgpKQ0KKyAgICAgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+IHsgZ2V0QXR0
cmlidXRlKGRyb3B6b25lQXR0cikgfTsNCisNCisgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+IHsg
Z2V0QXR0cmlidXRlKHdlYmtpdGRyb3B6b25lQXR0cikgfTsNCiB9DQogICAgIA0KIGJvb2wgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZXhwb3Nlc1RpdGxlVUlFbGVtZW50KCkgY29uc3QNCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5oDQppbmRleCA3ZWNmMDRhYTA0ZS4uMTg5NGY4NjIwOTUgMTAwNjQ0DQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
aA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmgNCkBAIC0xNzEsMTAgKzE3MSwxMCBAQCBwdWJsaWM6DQogICAgIGJvb2wgaXNWaXNp
YmxlUG9zaXRpb25SYW5nZUluRGlmZmVyZW50RG9jdW1lbnQoY29uc3QgVmlzaWJsZVBvc2l0aW9u
UmFuZ2UmKSBjb25zdDsNCiAgICAgYm9vbCBoYXNQb3B1cCgpIGNvbnN0IG92ZXJyaWRlOw0KIA0K
LSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGU7DQotICAgIGJv
b2wgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdCBvdmVycmlkZTsNCi0gICAgYm9vbCBpc0FS
SUFHcmFiYmVkKCkgb3ZlcnJpZGU7DQotICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFE
cm9wRWZmZWN0cygpIG92ZXJyaWRlOw0KKyAgICBib29sIHN1cHBvcnRzRHJvcHBpbmcoKSBjb25z
dCBvdmVycmlkZTsNCisgICAgYm9vbCBzdXBwb3J0c0RyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGU7
DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJpZGU7DQorICAgIFZlY3RvcjxTdHJpbmc+IGRl
dGVybWluZURyb3BFZmZlY3RzKCkgb3ZlcnJpZGU7DQogICAgIA0KICAgICBWaXNpYmxlUG9zaXRp
b24gdmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlk
ZTsNCiAgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHVuc2lnbmVk
IGluZGV4VmFsdWUsIGJvb2wgbGFzdEluZGV4T0spIGNvbnN0IG92ZXJyaWRlOw0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZE9iamVjdC5jcHANCmluZGV4IDc4OTA5MDlhODJkLi5mNTBjYzZjYTk4MyAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KQEAgLTE3MiwxMCArMTcyLDEwIEBAIHZvaWQgQVhJ
c29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBvYmpl
Y3QsIGJvb2wgaXNSb290DQogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0
c1Bvc0luU2V0LCBvYmplY3Quc3VwcG9ydHNQb3NJblNldCgpKTsNCiAgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlNldFNpemUsIG9iamVjdC5zZXRTaXplKCkpOw0KICAgICBzZXRQcm9w
ZXJ0eShBWFByb3BlcnR5TmFtZTo6UG9zSW5TZXQsIG9iamVjdC5wb3NJblNldCgpKTsNCi0gICAg
c2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJQURyb3BwaW5nLCBvYmplY3Qu
c3VwcG9ydHNBUklBRHJvcHBpbmcoKSk7DQotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpTdXBwb3J0c0FSSUFEcmFnZ2luZywgb2JqZWN0LnN1cHBvcnRzQVJJQURyYWdnaW5nKCkpOw0K
LSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNBUklBR3JhYmJlZCwgb2JqZWN0Lmlz
QVJJQUdyYWJiZWQoKSk7DQotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpBUklBRHJv
cEVmZmVjdHMsIG9iamVjdC5kZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSk7DQorICAgIHNldFBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0Ryb3BwaW5nLCBvYmplY3Quc3VwcG9ydHNE
cm9wcGluZygpKTsNCisgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJh
Z2dpbmcsIG9iamVjdC5zdXBwb3J0c0RyYWdnaW5nKCkpOw0KKyAgICBzZXRQcm9wZXJ0eShBWFBy
b3BlcnR5TmFtZTo6SXNHcmFiYmVkLCBvYmplY3QuaXNHcmFiYmVkKCkpOw0KKyAgICBzZXRQcm9w
ZXJ0eShBWFByb3BlcnR5TmFtZTo6RHJvcEVmZmVjdHMsIG9iamVjdC5kZXRlcm1pbmVEcm9wRWZm
ZWN0cygpKTsNCiAgICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlRpdGxlVUlF
bGVtZW50LCBvYmplY3QudGl0bGVVSUVsZW1lbnQoKSk7DQogICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpFeHBvc2VzVGl0bGVVSUVsZW1lbnQsIG9iamVjdC5leHBvc2VzVGl0bGVVSUVs
ZW1lbnQoKSk7DQogICAgIHNldE9iamVjdFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpWZXJ0aWNh
bFNjcm9sbEJhciwgb2JqZWN0LnNjcm9sbEJhcihBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb246OlZl
cnRpY2FsKSk7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQppbmRleCAxYzkzNmZkYTI2YS4uNGM5
MDJlZmUwYTEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KQEAgLTg5LDcgKzg5LDcgQEAg
cHJpdmF0ZToNCiAgICAgICAgIEF1dG9Db21wbGV0ZVZhbHVlLA0KICAgICAgICAgQVJJQUNvbnRy
b2xzRWxlbWVudHMsDQogICAgICAgICBBUklBRGV0YWlsc0VsZW1lbnRzLA0KLSAgICAgICAgQVJJ
QURyb3BFZmZlY3RzLA0KKyAgICAgICAgRHJvcEVmZmVjdHMsDQogICAgICAgICBBUklBRXJyb3JN
ZXNzYWdlRWxlbWVudHMsDQogICAgICAgICBBUklBSXNNdWx0aWxpbmUsDQogICAgICAgICBBUklB
Rmxvd1RvRWxlbWVudHMsDQpAQCAtMTYxLDcgKzE2MSw3IEBAIHByaXZhdGU6DQogICAgICAgICBJ
c0FjY2Vzc2liaWxpdHlJZ25vcmVkLA0KICAgICAgICAgSXNBY3RpdmVEZXNjZW5kYW50T2ZGb2N1
c2VkQ29udGFpbmVyLA0KICAgICAgICAgSXNBbm9ueW1vdXNNYXRoT3BlcmF0b3IsDQotICAgICAg
ICBJc0FSSUFHcmFiYmVkLA0KKyAgICAgICAgSXNHcmFiYmVkLA0KICAgICAgICAgSXNBUklBVHJl
ZUdyaWRSb3csDQogICAgICAgICBJc0F0dGFjaG1lbnQsDQogICAgICAgICBJc0J1dHRvbiwNCkBA
IC0yOTksOCArMjk5LDggQEAgcHJpdmF0ZToNCiAgICAgICAgIFNwZWFrQXMsDQogICAgICAgICBT
cGVlY2hIaW50LA0KICAgICAgICAgU3RyaW5nVmFsdWUsDQotICAgICAgICBTdXBwb3J0c0FSSUFE
cmFnZ2luZywNCi0gICAgICAgIFN1cHBvcnRzQVJJQURyb3BwaW5nLA0KKyAgICAgICAgU3VwcG9y
dHNEcmFnZ2luZywNCisgICAgICAgIFN1cHBvcnRzRHJvcHBpbmcsDQogICAgICAgICBTdXBwb3J0
c0FSSUFPd25zLA0KICAgICAgICAgU3VwcG9ydHNDdXJyZW50LA0KICAgICAgICAgU3VwcG9ydHNE
YXRldGltZUF0dHJpYnV0ZSwNCkBAIC01MDQsMTAgKzUwNCwxMCBAQCBwcml2YXRlOg0KICAgICBi
b29sIHN1cHBvcnRzUG9zSW5TZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmli
dXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzUG9zSW5TZXQpOyB9DQogICAgIGludCBz
ZXRTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gaW50QXR0cmlidXRlVmFsdWUoQVhQcm9w
ZXJ0eU5hbWU6OlNldFNpemUpOyB9DQogICAgIGludCBwb3NJblNldCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGludEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpQb3NJblNldCk7IH0N
Ci0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNBUklBRHJvcHBpbmcp
OyB9DQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJQURyYWdn
aW5nKTsgfQ0KLSAgICBib29sIGlzQVJJQUdyYWJiZWQoKSBvdmVycmlkZSB7IHJldHVybiBib29s
QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzQVJJQUdyYWJiZWQpOyB9DQotICAgIFZl
Y3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpIG92ZXJyaWRlIHsgcmV0dXJu
IHZlY3RvckF0dHJpYnV0ZVZhbHVlPFN0cmluZz4oQVhQcm9wZXJ0eU5hbWU6OkFSSUFEcm9wRWZm
ZWN0cyk7IH0NCisgICAgYm9vbCBzdXBwb3J0c0Ryb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0Ryb3BwaW5n
KTsgfQ0KKyAgICBib29sIHN1cHBvcnRzRHJhZ2dpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJhZ2dpbmcpOyB9
DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZh
bHVlKEFYUHJvcGVydHlOYW1lOjpJc0dyYWJiZWQpOyB9DQorICAgIFZlY3RvcjxTdHJpbmc+IGRl
dGVybWluZURyb3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyByZXR1cm4gdmVjdG9yQXR0cmlidXRlVmFs
dWU8U3RyaW5nPihBWFByb3BlcnR5TmFtZTo6RHJvcEVmZmVjdHMpOyB9DQogICAgIEFYQ29yZU9i
amVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3QoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlk
ZTsNCiAgICAgQVhDb3JlT2JqZWN0KiBmb2N1c2VkVUlFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7
DQogICAgIEFYQ29yZU9iamVjdCogcGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gcGFyZW50T2JqZWN0VW5pZ25vcmVkKCk7IH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQ0KaW5kZXggNGZlZGZhNTZlMzYu
LmUzZjA3YWJmNDMxIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvQVhPYmplY3RDYWNoZU1hYy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQ0KQEAgLTk2LDYgKzk2LDMxIEBADQogI2RlZmluZSBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0
ZWRUZXh0TWFya2VyUmFuZ2UiDQogI2VuZGlmDQogDQorI2lmbmRlZiBrQVhEcmFnZ2luZ1NvdXJj
ZURyYWdCZWdhbk5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdTb3VyY2VEcmFnQmVn
YW5Ob3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdTb3VyY2VEcmFnQmVnYW4iKQ0KKyNlbmRp
Zg0KKw0KKyNpZm5kZWYga0FYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWROb3RpZmljYXRpb24NCisj
ZGVmaW5lIGtBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVkTm90aWZpY2F0aW9uIENGU1RSKCJBWERy
YWdnaW5nU291cmNlRHJhZ0VuZGVkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5n
RGVzdGluYXRpb25Ecm9wQWxsb3dlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyb3BBbGxvd2VkTm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5nRGVzdGlu
YXRpb25Ecm9wQWxsb3dlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhEcmFnZ2luZ0Rlc3Rp
bmF0aW9uRHJvcE5vdEFsbG93ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5nRGVz
dGluYXRpb25Ecm9wTm90QWxsb3dlZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ0Rlc3Rp
bmF0aW9uRHJvcE5vdEFsbG93ZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyYWdBY2NlcHRlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyYWdBY2NlcHRlZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ0Rlc3Rp
bmF0aW9uRHJhZ0FjY2VwdGVkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5nRGVz
dGluYXRpb25EcmFnTm90QWNjZXB0ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5n
RGVzdGluYXRpb25EcmFnTm90QWNjZXB0ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZCIpDQorI2VuZGlmDQorDQorDQogLy8gVmVyeSBsYXJn
ZSBzdHJpbmdzIGNhbiBuZWdhdGl2ZWx5IGltcGFjdCB0aGUgcGVyZm9ybWFuY2Ugb2Ygbm90aWZp
Y2F0aW9ucywgc28gdGhpcyBsZW5ndGggaXMgY2hvc2VuIHRvIHRyeSB0byBmaXQgYW4gYXZlcmFn
ZSBwYXJhZ3JhcGggb3IgbGluZSBvZiB0ZXh0LCBidXQgbm90IGFsbG93IHN0cmluZ3MgdG8gYmUg
bGFyZ2UgZW5vdWdoIHRvIGh1cnQgcGVyZm9ybWFuY2UuDQogc3RhdGljIGNvbnN0IE5TVUludGVn
ZXIgQVhWYWx1ZUNoYW5nZVRydW5jYXRpb25MZW5ndGggPSAxMDAwOw0KIA0KQEAgLTM1Myw2ICsz
NzgsMjEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQVhD
b3JlT2JqZWN0KiBvYmosIEFYTm90aWZpY2F0aW9uIG4NCiAgICAgICAgIGNhc2UgQVhNZW51T3Bl
bmVkOg0KICAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhNZW51T3BlbmVkTm90
aWZpY2F0aW9uOw0KICAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5n
U3RhcnRlZDoNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdT
b3VyY2VEcmFnQmVnYW5Ob3RpZmljYXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAg
ICBjYXNlIEFYRHJhZ2dpbmdFbmRlZDoNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAo
aWQpa0FYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAg
YnJlYWs7DQorICAgICAgICBjYXNlIEFYRHJhZ2dpbmdFbnRlcmVkRHJvcFpvbmU6DQorICAgICAg
ICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWERyYWdnaW5nRGVzdGluYXRpb25Ecm9wQWxs
b3dlZE5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgQVhE
cmFnZ2luZ0Ryb3BwZWQ6DQorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWERy
YWdnaW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAg
YnJlYWs7DQorICAgICAgICBjYXNlIEFYRHJhZ2dpbmdFeGl0ZWREcm9wWm9uZToNCisgICAgICAg
ICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdOb3RB
Y2NlcHRlZE5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBicmVhazsNCiAgICAgICAgIGRlZmF1
bHQ6DQogICAgICAgICAgICAgcmV0dXJuOw0KICAgICB9DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbQ0KaW5kZXggZjFiOGFkYjRhYWEuLjkyMGQyYzRlZGQ4IDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMubW0NCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tDQpAQCAtMTM1MCwxMCArMTM1MCwx
MCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQNCiAgICAgICAgIHx8IGJh
Y2tpbmdPYmplY3QtPmlzVG9vbGJhcigpKQ0KICAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0
Ok5TQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uQXR0cmlidXRlXTsNCiANCi0gICAgaWYgKGJhY2tp
bmdPYmplY3QtPnN1cHBvcnRzQVJJQURyYWdnaW5nKCkpDQorICAgIGlmIChiYWNraW5nT2JqZWN0
LT5zdXBwb3J0c0RyYWdnaW5nKCkpDQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6TlNB
Y2Nlc3NpYmlsaXR5R3JhYmJlZEF0dHJpYnV0ZV07DQogDQotICAgIGlmIChiYWNraW5nT2JqZWN0
LT5zdXBwb3J0c0FSSUFEcm9wcGluZygpKQ0KKyAgICBpZiAoYmFja2luZ09iamVjdC0+c3VwcG9y
dHNEcm9wcGluZygpKQ0KICAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJp
bGl0eURyb3BFZmZlY3RzQXR0cmlidXRlXTsNCiANCiAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlz
VGFibGUoKSAmJiBiYWNraW5nT2JqZWN0LT5pc0V4cG9zYWJsZSgpICYmIGJhY2tpbmdPYmplY3Qt
PnN1cHBvcnRzU2VsZWN0ZWRSb3dzKCkpDQpAQCAtMjkxNywxMCArMjkxNywxMCBAQCBBTExPV19E
RVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQNCiAgICAgICAgIHJldHVybiBAKGJhY2tpbmdP
YmplY3QtPnNldFNpemUoKSk7DQogDQogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9T
dHJpbmc6TlNBY2Nlc3NpYmlsaXR5R3JhYmJlZEF0dHJpYnV0ZV0pDQotICAgICAgICByZXR1cm4g
W05TTnVtYmVyIG51bWJlcldpdGhCb29sOmJhY2tpbmdPYmplY3QtPmlzQVJJQUdyYWJiZWQoKV07
DQorICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhCb29sOmJhY2tpbmdPYmplY3Qt
PmlzR3JhYmJlZCgpXTsNCiANCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmlu
ZzpOU0FjY2Vzc2liaWxpdHlEcm9wRWZmZWN0c0F0dHJpYnV0ZV0pDQotICAgICAgICByZXR1cm4g
Y3JlYXRlTlNBcnJheShiYWNraW5nT2JqZWN0LT5kZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSku
YXV0b3JlbGVhc2UoKTsNCisgICAgICAgIHJldHVybiBjcmVhdGVOU0FycmF5KGJhY2tpbmdPYmpl
Y3QtPmRldGVybWluZURyb3BFZmZlY3RzKCkpLmF1dG9yZWxlYXNlKCk7DQogDQogICAgIGlmIChb
YXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5UGxhY2Vob2xkZXJW
YWx1ZUF0dHJpYnV0ZV0pDQogICAgICAgICByZXR1cm4gYmFja2luZ09iamVjdC0+cGxhY2Vob2xk
ZXJWYWx1ZSgpOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0
ZU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4NCmlu
ZGV4IGRjZDgzNzhkOTU0Li5jYjMwNDkwNDA4OSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbg0KQEAgLTEyMSw2ICsxMjEsNyBAQCBkaXNhYmxlcmVtb3RlcGxh
eWJhY2sNCiBkaXNwb3NpdGlvbg0KIGRvd25sb2FkDQogZHJhZ2dhYmxlDQorZHJvcHpvbmUNCiB3
ZWJraXRkcm9wem9uZQ0KIGVuY3R5cGUNCiBlbmQNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGUuY3BwDQppbmRleCA5ZjM4ZTc4NjVi
ZC4uMGQ0MTFmNDNlOWUgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2F0ay9XZWJLaXRBY2Nlc3NpYmxlLmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZS5jcHANCkBAIC01NjMsOSArNTYzLDkgQEAgc3RhdGlj
IEF0a0F0dHJpYnV0ZVNldCogd2Via2l0QWNjZXNzaWJsZUdldEF0dHJpYnV0ZXMoQXRrT2JqZWN0
KiBvYmplY3QpDQogICAgIGlmICghZHJvcEVmZmVjdC5pc0VtcHR5KCkpDQogICAgICAgICBhdHRy
aWJ1dGVTZXQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChhdHRyaWJ1dGVTZXQsICJkcm9wZWZmZWN0
IiwgZHJvcEVmZmVjdC51dGY4KCkuZGF0YSgpKTsNCiANCi0gICAgaWYgKGNvcmVPYmplY3QtPmlz
QVJJQUdyYWJiZWQoKSkNCisgICAgaWYgKGNvcmVPYmplY3QtPmlzR3JhYmJlZCgpKQ0KICAgICAg
ICAgYXR0cmlidXRlU2V0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQoYXR0cmlidXRlU2V0LCAiZ3Jh
YmJlZCIsICJ0cnVlIik7DQotICAgIGVsc2UgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJQURy
YWdnaW5nKCkpDQorICAgIGVsc2UgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzRHJhZ2dpbmcoKSkN
CiAgICAgICAgIGF0dHJpYnV0ZVNldCA9IGFkZFRvQXRrQXR0cmlidXRlU2V0KGF0dHJpYnV0ZVNl
dCwgImdyYWJiZWQiLCAiZmFsc2UiKTsNCiANCiAgICAgLy8gVGhlIENvcmUgQUFNIHN0YXRlcyB0
aGUgYXV0aG9yLXByb3ZpZGVkIHZhbHVlIHNob3VsZCBiZSBleHBvc2VkIGFzLWlzLg0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398542</attachid>
            <date>2020-05-05 12:41:05 -0700</date>
            <delta_ts>2020-05-05 13:23:00 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>27012</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTg0NGZjZmE2NTkuLmYwNWI2MTQzMDE2IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDQtMzAgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+DQogDQogICAgICAgICBib3JkZXItcmFkaXVzIGZh
aWxzIHRvIGNsaXAgaWZyYW1lIGNvbnRlbnRzDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
DQppbmRleCAwMDAwMDAwMDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0w
LDAgKzEsMjEgQEANCitUaGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRy
aWJ1dGVzIGFuZCBub3RpZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRp
b25zLg0KKw0KK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQg
c3F1YXJlIG9udG8gbWUuDQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0
YXJnZXQ6DQorDQorU3F1YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQn
KSBpcyB0cnVlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoJ2Ryb3BUYXJnZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMg
ZmFsc2UNCitUYXJnZXQgaXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitU
YXJnZXQgaXMgZ3JhYmJlZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVy
IGRyYWc6IDENCitBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0
aW9uRHJvcEFsbG93ZWQNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVT
VCBDT01QTEVURQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2RyYWdnYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxl
Lmh0bWwNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYTJhYzAzMGZl
MWUNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS5odG1sDQpAQCAtMCwwICsxLDk1IEBADQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPHN0eWxl
Pg0KKyAgICAjZHJvcFRhcmdldCwgI2RyYWdNZSB7IHRleHQtYWxpZ246IGNlbnRlcjsgZGlzcGxh
eTogdGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246IG1pZGRsZSB9DQorICAgICNkcm9wVGFyZ2V0
IHt3aWR0aDogMjU2cHg7IGhlaWdodDogMjU2cHg7IGJvcmRlcjogMXB4IGRhc2hlZH0NCisgICAg
I2RyYWdNZSB7LXdlYmtpdC11c2VyLWRyYWc6IGVsZW1lbnQ7IC13ZWJraXQtdXNlci1zZWxlY3Q6
IG5vbmU7IGJhY2tncm91bmQ6ICNmZjAwMDA7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDY0cHg7IGNv
bG9yOiB3aGl0ZX0NCis8L3N0eWxlPg0KKzxzY3JpcHQ+DQorICAgIHZhciBkcmFnTWU7DQorICAg
IHZhciBkcm9wVGFyZ2V0Ow0KKyAgICB2YXIgZXZlbnQ7DQorDQorICAgIGZ1bmN0aW9uIGRyb3Ao
ZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJUYXJnZXQgaXMgZ3JhYmJlZCBhZnRlciBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKyAgICAgICAgZGVi
dWcoIlRFU1QgUEFTU0VEOiBzcXVhcmUgZHJvcHBlZCIpOw0KKyAgICAgICAgZXZlbnQucHJldmVu
dERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBkcmFnT3ZlcihldmVudCkNCisg
ICAgew0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBm
dW5jdGlvbiBkcmFnU3RhcnQoZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJURVNUIGRy
YWcgc3RhcnQiKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBydW5UZXN0KCkNCisgICAgew0K
KyAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpDQorICAgICAgICAgICAgcmV0dXJuOw0K
Kw0KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOw0KKw0KKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZHJh
Z01lLm9mZnNldExlZnQgKyAxMCwgZHJhZ01lLm9mZnNldFRvcCArIGRyYWdNZS5vZmZzZXRIZWln
aHQgLyAyKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgICAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3
YXJkKDIwMCk7DQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcm9wVGFyZ2V0Lm9m
ZnNldExlZnQgKyAxMCwgZHJvcFRhcmdldC5vZmZzZXRUb3AgKyBkcm9wVGFyZ2V0Lm9mZnNldEhl
aWdodCAvIDIpOw0KKw0KKyAgICAgICAgZGVidWcoIlRhcmdldCBpcyBncmFiYmVkIGR1cmluZyBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKw0KKyAgICAgICAg
ZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgIH0NCis8
L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+DQorICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
Pg0KKyAgICA8ZGl2IGlkPSJ0ZXN0LWNvbnRhaW5lciI+DQorICAgICAgICA8ZGl2IGlkPSJkcm9w
VGFyZ2V0IiBkcm9wem9uZT0iY29weSI+RHJvcCB0aGUgcmVkIHNxdWFyZSBvbnRvIG1lLjwvZGl2
Pg0KKyAgICAgICAgPGhyLz4NCisgICAgICAgIDxwPkl0ZW1zIHRoYXQgY2FuIGJlIGRyYWdnZWQg
dG8gdGhlIGRyb3AgdGFyZ2V0OjwvcD4NCisgICAgICAgIDxkaXYgaWQ9ImRyYWdNZSIgZHJhZ2dh
YmxlPSJ0cnVlIj5TcXVhcmU8L2Rpdj4NCisgICAgICAgIDxoci8+DQorICAgIDwvZGl2Pg0KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgPHNjcmlwdD4NCisgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsNCisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
Y2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3RpZmljYXRpb25z
IGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLiIpOw0KKw0KKyAgICAgICAgZHJh
Z01lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYWdNZSIpOw0KKyAgICAgICAgZHJvcFRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcm9wVGFyZ2V0Iik7DQorDQorICAgICAg
ICBkcm9wVGFyZ2V0Lm9uZHJhZ292ZXIgPSBkcmFnT3ZlcjsNCisgICAgICAgIGRyb3BUYXJnZXQu
b25kcm9wID0gZHJvcDsNCisgICAgICAgIGRyYWdNZS5vbnN0YXJ0ID0gZHJhZ1N0YXJ0Ow0KKw0K
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSIp
Ow0KKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCdkcm9wVGFyZ2V0JykuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYR3Jh
YmJlZCcpIik7DQorDQorICAgICAgICBkZWJ1ZygiVGFyZ2V0IGlzIGdyYWJiZWQ6ICIgKyBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLm51bWJl
ckF0dHJpYnV0ZVZhbHVlKCJBWEdyYWJiZWQiKSk7DQorICAgICAgICBkZWJ1ZygiRHJvcHpvbmUg
ZWZmZWN0czogIiArIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgnZHJvcFRhcmdldCcpLmFyaWFEcm9wRWZmZWN0cyk7DQorDQorICAgICAgICBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5jdGlvbihlbGVtZW50LCBu
b3RpZmljYXRpb24pIHsNCisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uLnN0YXJ0c1dpdGgo
IkFYRHJhZyIpKSB7DQorICAgICAgICAgICAgICAgIGRlYnVnKG5vdGlmaWNhdGlvbik7DQorICAg
ICAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYRHJhZ2dpbmdEZXN0aW5hdGlvbkRy
b3BBbGxvd2VkIikgew0KKyAgICAgICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsNCisgICAgICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAg
IH0pOw0KKw0KKyAgICAgICAgc2V0VGltZW91dChydW5UZXN0KCksIDApOw0KKw0KKyAgICA8L3Nj
cmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IGJjMzkzOGViNDRhLi4x
YjQzY2I2MDE4MiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDUwIEBADQorMjAyMC0wNS0wNCAg
Q2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IElt
cGxlbWVudCBhY2Nlc3NpYmlsaXR5IG9mIEhUTUwgNS4xIERyYWcgJiBEcm9wDQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNDE1DQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjI2OTU1MzE+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4NCisNCisgICAgICAgIFN1cHBvcnQgSFRNTDUgZHJhZyBhbmQgZHJvcC4gU3VwcG9y
dCBkcm9wem9uZSBhdHRyaWJ1dGUuDQorICAgICAgICBBZGQgbmV3IG5vdGlmaWNhdGlvbnMgZm9y
IFZvaWNlT3ZlciB0byBjb25zdW1lLg0KKw0KKyAgICAgICAgSXQgYXBwZWFycyB0aGF0IG1vc3Qg
b2YgdGhlIGRyYWdnaW5nIHRlc3RzIGFyZSBza2lwcGVkIGJlY2F1c2Ugb2YgZXZlbnRTZW5kZXIg
aXNzdWVzLg0KKyAgICAgICAgSSB0aGluayB0aGlzIHRlc3QgY291bGQgZG8gYSBsaXR0bGUgbW9y
ZSBpZiB0aG9zZSBpc3N1ZXMgd2VyZSByZXNvbHZlZC4gU3BlY2lmaWNhbGx5LCBub3QgYWxsDQor
ICAgICAgICB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VlbiB0aGF0IGFyZSBleHBlY3RlZC4NCisN
CisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS5odG1sDQorDQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMgY29uc3QpOg0KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQVhIaWRkZW4gY29uc3QpOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoNCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6DQorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcm9wcGluZyBjb25zdCk6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNE
cmFnZ2luZyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNHcmFiYmVkKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpkZXRlcm1pbmVEcm9wRWZmZWN0cyk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJvcHBpbmcgY29uc3QpOiBEZWxldGVk
Lg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRz
QVJJQURyYWdnaW5nIGNvbnN0KTogRGVsZXRlZC4NCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FSSUFHcmFiYmVkKTogRGVsZXRlZC4NCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBUklBRHJvcEVmZmVj
dHMpOiBEZWxldGVkLg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZUF0dHJpYnV0ZURhdGEpOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW06DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVz
XSk6DQorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6XSk6DQorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluOg0KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6DQorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudCk6DQorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpkcmFnZ2luZ0VsZW1lbnQgY29uc3QpOg0KKyAgICAgICAgKiBwYWdlL0V2
ZW50SGFuZGxlci5oOg0KKw0KIDIwMjAtMDQtMzAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2df
MjJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgRml4IGZvciBjcmFzaCBpbiBBWExvZ2dlci4NCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQppbmRleCBhMzBk
MmE5MTUxNi4uNzczOTc5OTZhYjAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgNCkBAIC0zMDMsNyArMzAzLDEyIEBAIHB1YmxpYzoNCiAgICAgICAg
IEFYUmVxdWlyZWRTdGF0dXNDaGFuZ2VkLA0KICAgICAgICAgQVhUZXh0Q2hhbmdlZCwNCiAgICAg
ICAgIEFYQXJpYUF0dHJpYnV0ZUNoYW5nZWQsDQotICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdl
ZA0KKyAgICAgICAgQVhFbGVtZW50QnVzeUNoYW5nZWQsDQorICAgICAgICBBWERyYWdnaW5nU3Rh
cnRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbmRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbnRl
cmVkRHJvcFpvbmUsDQorICAgICAgICBBWERyYWdnaW5nRHJvcHBlZCwNCisgICAgICAgIEFYRHJh
Z2dpbmdFeGl0ZWREcm9wWm9uZQ0KICAgICB9Ow0KIA0KICAgICB2b2lkIHBvc3ROb3RpZmljYXRp
b24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVt
ZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7DQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCmluZGV4IDQwZWE1
ZmVhZTEyLi42NjJhM2ExZjllZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCkBAIC0yNTM0LDggKzI1MzQsOCBAQCBi
b29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMoKSBjb25zdA0K
IHsNCiAgICAgLy8gVGhpcyByZXR1cm5zIHdoZXRoZXIgdGhlIGVsZW1lbnQgc3VwcG9ydHMgYW55
IGdsb2JhbCBBUklBIGF0dHJpYnV0ZXMuDQogICAgIHJldHVybiBzdXBwb3J0c0xpdmVSZWdpb24o
KQ0KLSAgICAgICAgfHwgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKQ0KLSAgICAgICAgfHwgc3VwcG9y
dHNBUklBRHJvcHBpbmcoKQ0KKyAgICAgICAgfHwgc3VwcG9ydHNEcmFnZ2luZygpDQorICAgICAg
ICB8fCBzdXBwb3J0c0Ryb3BwaW5nKCkNCiAgICAgICAgIHx8IHN1cHBvcnRzQVJJQU93bnMoKQ0K
ICAgICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYXRvbWljQXR0cikNCiAgICAgICAgIHx8IGhh
c0F0dHJpYnV0ZShhcmlhX2J1c3lBdHRyKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCmluZGV4IGY1M2Q2OWI3YzMzLi5jN2U0MjFh
MGU3NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaA0KQEAgLTMyNywxMSArMzI3LDExIEBAIHB1YmxpYzoNCiAgICAgaW50IHBv
c0luU2V0KCkgY29uc3Qgb3ZlcnJpZGU7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0K
LSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9DQotICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0NCiAgICAgdm9pZCBzZXRBUklBR3JhYmJlZChib29sKSBvdmVy
cmlkZSB7IH0NCi0gICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkg
b3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQorICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZURy
b3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQogDQogICAgIC8vIENhbGxlZCBv
biB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBlbGVt
ZW50Lg0KICAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBv
aW50JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgNCmluZGV4IDFjODg5NThlZGJlLi5mOGQ2YWVjOGQ0MCAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaA0KQEAgLTc1NiwxMSArNzU2LDExIEBAIHB1YmxpYzoNCiAgICAgdmlydHVhbCBpbnQg
cG9zSW5TZXQoKSBjb25zdCA9IDA7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0KLSAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCA9IDA7DQotICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0ID0gMDsNCi0gICAgdmlydHVh
bCBib29sIGlzQVJJQUdyYWJiZWQoKSA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Ry
b3BwaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygp
IGNvbnN0ID0gMDsNCisgICAgdmlydHVhbCBib29sIGlzR3JhYmJlZCgpID0gMDsNCiAgICAgdmly
dHVhbCB2b2lkIHNldEFSSUFHcmFiYmVkKGJvb2wpID0gMDsNCi0gICAgdmlydHVhbCBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSA9IDA7DQorICAgIHZpcnR1YWwgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSA9IDA7DQogDQogICAgIC8vIENhbGxl
ZCBvbiB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBl
bGVtZW50Lg0KICAgICB2aXJ0dWFsIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3Qo
Y29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwDQppbmRleCA3YmE5NmFjYzUyMC4uOTM0OWE2NTMxMTggMTAwNjQ0DQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcA0KQEAgLTIyODIsNyArMjI4MiwyNiBAQCBib29sIEV2ZW50SGFuZGxl
cjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFbGVtZW50
JiBkcmFnVA0KICAgICAgICAgZXZlbnQubW9kaWZpZXJzKCksIDAsIDAsIG51bGxwdHIsIGV2ZW50
LmZvcmNlKCksIE5vVGFwLCAmZGF0YVRyYW5zZmVyKTsNCiANCiAgICAgZHJhZ1RhcmdldC5kaXNw
YXRjaEV2ZW50KGRyYWdFdmVudCk7DQotICAgIHJldHVybiBkcmFnRXZlbnQtPmRlZmF1bHRQcmV2
ZW50ZWQoKTsNCisNCisgICAgaWYgKGF1dG8qIGNhY2hlID0gbV9mcmFtZS5kb2N1bWVudCgpLT5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgew0KKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkuZHJhZ3N0YXJ0RXZlbnQpDQorICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmlj
YXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdTdGFydGVkKTsNCisg
ICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJhZ2VuZEV2ZW50KQ0K
KyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVj
dENhY2hlOjpBWERyYWdnaW5nRW5kZWQpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09
IGV2ZW50TmFtZXMoKS5kcmFnZW50ZXJFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5v
dGlmaWNhdGlvbigmZHJhZ1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0VudGVyZWRE
cm9wWm9uZSk7DQorICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRy
YWdsZWF2ZUV2ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFn
VGFyZ2V0LCBBWE9iamVjdENhY2hlOjpBWERyYWdnaW5nRXhpdGVkRHJvcFpvbmUpOw0KKyAgICAg
ICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kcm9wRXZlbnQpDQorICAgICAg
ICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6
OkFYRHJhZ2dpbmdEcm9wcGVkKTsNCisgICAgfQ0KKw0KKyAgICByZXR1cm4gZHJhZ0V2ZW50LT5k
ZWZhdWx0UHJldmVudGVkKCk7Ow0KK30NCisNCitFbGVtZW50KiBFdmVudEhhbmRsZXI6OmRyYWdn
aW5nRWxlbWVudCgpIGNvbnN0DQorew0KKyAgICByZXR1cm4gZHJhZ1N0YXRlKCkuc291cmNlLmdl
dCgpOw0KIH0NCiANCiBzdGF0aWMgYm9vbCB0YXJnZXRJc0ZyYW1lKE5vZGUqIHRhcmdldCwgRnJh
bWUqJiBmcmFtZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KaW5kZXggYWRiMTVkYmI0
YzUuLjM0Y2NiMWFkMjMwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KQEAgLTMz
OCw2ICszMzgsMTAgQEAgcHVibGljOg0KIA0KICAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxD
dXJzb3I+IHNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiwgYm9vbCBzaGlmdEtleSk7
DQogDQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpDQorICAgIEVsZW1lbnQqIGRyYWdnaW5nRWxl
bWVudCgpIGNvbnN0Ow0KKyNlbmRpZg0KKw0KIHByaXZhdGU6DQogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpDQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOw0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwDQppbmRleCAyNjJiMjljOWM1Yi4uMmYwZmE3OTFjYmEgMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwDQpAQCAtMTA0MCwzMyArMTA0MCw0MiBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6Omhhc1BvcHVwKCkgY29uc3QNCiAgICAgfSk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdA0KK2Jvb2wgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcm9wcGluZygpIGNvbnN0DQogew0KLSAg
ICBjb25zdCBBdG9tU3RyaW5nJiBkcm9wRWZmZWN0ID0gZ2V0QXR0cmlidXRlKGFyaWFfZHJvcGVm
ZmVjdEF0dHIpOw0KLSAgICByZXR1cm4gIWRyb3BFZmZlY3QuaXNFbXB0eSgpOw0KKyAgICByZXR1
cm4gIWdldEF0dHJpYnV0ZShhcmlhX2Ryb3BlZmZlY3RBdHRyKS5pc0VtcHR5KCkgfHwgIWdldEF0
dHJpYnV0ZShkcmFnZ2FibGVBdHRyKS5pc0VtcHR5KCk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdA0KK2Jvb2wgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0DQogew0KICAg
ICBjb25zdCBBdG9tU3RyaW5nJiBncmFiYmVkID0gZ2V0QXR0cmlidXRlKGFyaWFfZ3JhYmJlZEF0
dHIpOw0KLSAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwg
InRydWUiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAiZmFsc2Ui
KTsNCisgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdyYWJiZWQsICJ0
cnVlIikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgImZhbHNlIikg
fHwNCisgICAgKGlzPEhUTUxFbGVtZW50PihlbGVtZW50KCkpICYmIGRvd25jYXN0PEhUTUxFbGVt
ZW50Pihub2RlKCkpLT5kcmFnZ2FibGUoKSk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6aXNBUklBR3JhYmJlZCgpDQorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojppc0dyYWJiZWQoKQ0KIHsNCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkNCisgICAgaWYg
KG1haW5GcmFtZSgpICYmIG1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS5kcmFnZ2luZ0VsZW1l
bnQoKSA9PSBlbGVtZW50KCkpDQorICAgICAgICByZXR1cm4gdHJ1ZTsNCisjZW5kaWYNCisNCiAg
ICAgcmV0dXJuIGVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShhcmlhX2dyYWJiZWRBdHRyKTsNCiB9DQog
DQotVmVjdG9yPFN0cmluZz4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQVJJ
QURyb3BFZmZlY3RzKCkNCitWZWN0b3I8U3RyaW5nPiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpkZXRlcm1pbmVEcm9wRWZmZWN0cygpDQogew0KICAgICBjb25zdCBBdG9tU3RyaW5nJiBkcm9w
RWZmZWN0cyA9IGdldEF0dHJpYnV0ZShhcmlhX2Ryb3BlZmZlY3RBdHRyKTsNCi0gICAgaWYgKGRy
b3BFZmZlY3RzLmlzRW1wdHkoKSkgew0KLSAgICAgICAgcmV0dXJuIHsgfTsNCisgICAgaWYgKCFk
cm9wRWZmZWN0cy5pc0VtcHR5KCkpIHsNCisgICAgICAgIFN0cmluZyBkcm9wRWZmZWN0c1N0cmlu
ZyA9IGRyb3BFZmZlY3RzLnN0cmluZygpOw0KKyAgICAgICAgZHJvcEVmZmVjdHNTdHJpbmcucmVw
bGFjZSgnXG4nLCAnICcpOw0KKyAgICAgICAgcmV0dXJuIGRyb3BFZmZlY3RzU3RyaW5nLnNwbGl0
KCcgJyk7DQogICAgIH0NCiAgICAgDQotICAgIFN0cmluZyBkcm9wRWZmZWN0c1N0cmluZyA9IGRy
b3BFZmZlY3RzLnN0cmluZygpOw0KLSAgICBkcm9wRWZmZWN0c1N0cmluZy5yZXBsYWNlKCdcbics
ICcgJyk7DQotICAgIHJldHVybiBkcm9wRWZmZWN0c1N0cmluZy5zcGxpdCgnICcpOw0KKyAgICBh
dXRvIGRyb3B6b25lID0gZ2V0QXR0cmlidXRlKGRyb3B6b25lQXR0cik7DQorICAgIGlmICghZHJv
cHpvbmUuaXNFbXB0eSgpKQ0KKyAgICAgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+IHsgZ2V0QXR0
cmlidXRlKGRyb3B6b25lQXR0cikgfTsNCisNCisgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+IHsg
Z2V0QXR0cmlidXRlKHdlYmtpdGRyb3B6b25lQXR0cikgfTsNCiB9DQogICAgIA0KIGJvb2wgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZXhwb3Nlc1RpdGxlVUlFbGVtZW50KCkgY29uc3QNCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5oDQppbmRleCA3ZWNmMDRhYTA0ZS4uMTg5NGY4NjIwOTUgMTAwNjQ0DQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
aA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmgNCkBAIC0xNzEsMTAgKzE3MSwxMCBAQCBwdWJsaWM6DQogICAgIGJvb2wgaXNWaXNp
YmxlUG9zaXRpb25SYW5nZUluRGlmZmVyZW50RG9jdW1lbnQoY29uc3QgVmlzaWJsZVBvc2l0aW9u
UmFuZ2UmKSBjb25zdDsNCiAgICAgYm9vbCBoYXNQb3B1cCgpIGNvbnN0IG92ZXJyaWRlOw0KIA0K
LSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGU7DQotICAgIGJv
b2wgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdCBvdmVycmlkZTsNCi0gICAgYm9vbCBpc0FS
SUFHcmFiYmVkKCkgb3ZlcnJpZGU7DQotICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFE
cm9wRWZmZWN0cygpIG92ZXJyaWRlOw0KKyAgICBib29sIHN1cHBvcnRzRHJvcHBpbmcoKSBjb25z
dCBvdmVycmlkZTsNCisgICAgYm9vbCBzdXBwb3J0c0RyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGU7
DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJpZGU7DQorICAgIFZlY3RvcjxTdHJpbmc+IGRl
dGVybWluZURyb3BFZmZlY3RzKCkgb3ZlcnJpZGU7DQogICAgIA0KICAgICBWaXNpYmxlUG9zaXRp
b24gdmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlk
ZTsNCiAgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHVuc2lnbmVk
IGluZGV4VmFsdWUsIGJvb2wgbGFzdEluZGV4T0spIGNvbnN0IG92ZXJyaWRlOw0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZE9iamVjdC5jcHANCmluZGV4IDc4OTA5MDlhODJkLi5mNTBjYzZjYTk4MyAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KQEAgLTE3MiwxMCArMTcyLDEwIEBAIHZvaWQgQVhJ
c29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBvYmpl
Y3QsIGJvb2wgaXNSb290DQogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0
c1Bvc0luU2V0LCBvYmplY3Quc3VwcG9ydHNQb3NJblNldCgpKTsNCiAgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlNldFNpemUsIG9iamVjdC5zZXRTaXplKCkpOw0KICAgICBzZXRQcm9w
ZXJ0eShBWFByb3BlcnR5TmFtZTo6UG9zSW5TZXQsIG9iamVjdC5wb3NJblNldCgpKTsNCi0gICAg
c2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJQURyb3BwaW5nLCBvYmplY3Qu
c3VwcG9ydHNBUklBRHJvcHBpbmcoKSk7DQotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpTdXBwb3J0c0FSSUFEcmFnZ2luZywgb2JqZWN0LnN1cHBvcnRzQVJJQURyYWdnaW5nKCkpOw0K
LSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNBUklBR3JhYmJlZCwgb2JqZWN0Lmlz
QVJJQUdyYWJiZWQoKSk7DQotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpBUklBRHJv
cEVmZmVjdHMsIG9iamVjdC5kZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSk7DQorICAgIHNldFBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0Ryb3BwaW5nLCBvYmplY3Quc3VwcG9ydHNE
cm9wcGluZygpKTsNCisgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJh
Z2dpbmcsIG9iamVjdC5zdXBwb3J0c0RyYWdnaW5nKCkpOw0KKyAgICBzZXRQcm9wZXJ0eShBWFBy
b3BlcnR5TmFtZTo6SXNHcmFiYmVkLCBvYmplY3QuaXNHcmFiYmVkKCkpOw0KKyAgICBzZXRQcm9w
ZXJ0eShBWFByb3BlcnR5TmFtZTo6RHJvcEVmZmVjdHMsIG9iamVjdC5kZXRlcm1pbmVEcm9wRWZm
ZWN0cygpKTsNCiAgICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlRpdGxlVUlF
bGVtZW50LCBvYmplY3QudGl0bGVVSUVsZW1lbnQoKSk7DQogICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpFeHBvc2VzVGl0bGVVSUVsZW1lbnQsIG9iamVjdC5leHBvc2VzVGl0bGVVSUVs
ZW1lbnQoKSk7DQogICAgIHNldE9iamVjdFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpWZXJ0aWNh
bFNjcm9sbEJhciwgb2JqZWN0LnNjcm9sbEJhcihBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb246OlZl
cnRpY2FsKSk7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQppbmRleCAxYzkzNmZkYTI2YS4uNGM5
MDJlZmUwYTEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KQEAgLTg5LDcgKzg5LDcgQEAg
cHJpdmF0ZToNCiAgICAgICAgIEF1dG9Db21wbGV0ZVZhbHVlLA0KICAgICAgICAgQVJJQUNvbnRy
b2xzRWxlbWVudHMsDQogICAgICAgICBBUklBRGV0YWlsc0VsZW1lbnRzLA0KLSAgICAgICAgQVJJ
QURyb3BFZmZlY3RzLA0KKyAgICAgICAgRHJvcEVmZmVjdHMsDQogICAgICAgICBBUklBRXJyb3JN
ZXNzYWdlRWxlbWVudHMsDQogICAgICAgICBBUklBSXNNdWx0aWxpbmUsDQogICAgICAgICBBUklB
Rmxvd1RvRWxlbWVudHMsDQpAQCAtMTYxLDcgKzE2MSw3IEBAIHByaXZhdGU6DQogICAgICAgICBJ
c0FjY2Vzc2liaWxpdHlJZ25vcmVkLA0KICAgICAgICAgSXNBY3RpdmVEZXNjZW5kYW50T2ZGb2N1
c2VkQ29udGFpbmVyLA0KICAgICAgICAgSXNBbm9ueW1vdXNNYXRoT3BlcmF0b3IsDQotICAgICAg
ICBJc0FSSUFHcmFiYmVkLA0KKyAgICAgICAgSXNHcmFiYmVkLA0KICAgICAgICAgSXNBUklBVHJl
ZUdyaWRSb3csDQogICAgICAgICBJc0F0dGFjaG1lbnQsDQogICAgICAgICBJc0J1dHRvbiwNCkBA
IC0yOTksOCArMjk5LDggQEAgcHJpdmF0ZToNCiAgICAgICAgIFNwZWFrQXMsDQogICAgICAgICBT
cGVlY2hIaW50LA0KICAgICAgICAgU3RyaW5nVmFsdWUsDQotICAgICAgICBTdXBwb3J0c0FSSUFE
cmFnZ2luZywNCi0gICAgICAgIFN1cHBvcnRzQVJJQURyb3BwaW5nLA0KKyAgICAgICAgU3VwcG9y
dHNEcmFnZ2luZywNCisgICAgICAgIFN1cHBvcnRzRHJvcHBpbmcsDQogICAgICAgICBTdXBwb3J0
c0FSSUFPd25zLA0KICAgICAgICAgU3VwcG9ydHNDdXJyZW50LA0KICAgICAgICAgU3VwcG9ydHNE
YXRldGltZUF0dHJpYnV0ZSwNCkBAIC01MDQsMTAgKzUwNCwxMCBAQCBwcml2YXRlOg0KICAgICBi
b29sIHN1cHBvcnRzUG9zSW5TZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmli
dXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzUG9zSW5TZXQpOyB9DQogICAgIGludCBz
ZXRTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gaW50QXR0cmlidXRlVmFsdWUoQVhQcm9w
ZXJ0eU5hbWU6OlNldFNpemUpOyB9DQogICAgIGludCBwb3NJblNldCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGludEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpQb3NJblNldCk7IH0N
Ci0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNBUklBRHJvcHBpbmcp
OyB9DQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJQURyYWdn
aW5nKTsgfQ0KLSAgICBib29sIGlzQVJJQUdyYWJiZWQoKSBvdmVycmlkZSB7IHJldHVybiBib29s
QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzQVJJQUdyYWJiZWQpOyB9DQotICAgIFZl
Y3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpIG92ZXJyaWRlIHsgcmV0dXJu
IHZlY3RvckF0dHJpYnV0ZVZhbHVlPFN0cmluZz4oQVhQcm9wZXJ0eU5hbWU6OkFSSUFEcm9wRWZm
ZWN0cyk7IH0NCisgICAgYm9vbCBzdXBwb3J0c0Ryb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0Ryb3BwaW5n
KTsgfQ0KKyAgICBib29sIHN1cHBvcnRzRHJhZ2dpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJhZ2dpbmcpOyB9
DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZh
bHVlKEFYUHJvcGVydHlOYW1lOjpJc0dyYWJiZWQpOyB9DQorICAgIFZlY3RvcjxTdHJpbmc+IGRl
dGVybWluZURyb3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyByZXR1cm4gdmVjdG9yQXR0cmlidXRlVmFs
dWU8U3RyaW5nPihBWFByb3BlcnR5TmFtZTo6RHJvcEVmZmVjdHMpOyB9DQogICAgIEFYQ29yZU9i
amVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3QoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlk
ZTsNCiAgICAgQVhDb3JlT2JqZWN0KiBmb2N1c2VkVUlFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7
DQogICAgIEFYQ29yZU9iamVjdCogcGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gcGFyZW50T2JqZWN0VW5pZ25vcmVkKCk7IH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQ0KaW5kZXggNGZlZGZhNTZlMzYu
LmUzZjA3YWJmNDMxIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvQVhPYmplY3RDYWNoZU1hYy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQ0KQEAgLTk2LDYgKzk2LDMxIEBADQogI2RlZmluZSBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0
ZWRUZXh0TWFya2VyUmFuZ2UiDQogI2VuZGlmDQogDQorI2lmbmRlZiBrQVhEcmFnZ2luZ1NvdXJj
ZURyYWdCZWdhbk5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdTb3VyY2VEcmFnQmVn
YW5Ob3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdTb3VyY2VEcmFnQmVnYW4iKQ0KKyNlbmRp
Zg0KKw0KKyNpZm5kZWYga0FYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWROb3RpZmljYXRpb24NCisj
ZGVmaW5lIGtBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVkTm90aWZpY2F0aW9uIENGU1RSKCJBWERy
YWdnaW5nU291cmNlRHJhZ0VuZGVkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5n
RGVzdGluYXRpb25Ecm9wQWxsb3dlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyb3BBbGxvd2VkTm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5nRGVzdGlu
YXRpb25Ecm9wQWxsb3dlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhEcmFnZ2luZ0Rlc3Rp
bmF0aW9uRHJvcE5vdEFsbG93ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5nRGVz
dGluYXRpb25Ecm9wTm90QWxsb3dlZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ0Rlc3Rp
bmF0aW9uRHJvcE5vdEFsbG93ZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyYWdBY2NlcHRlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyYWdBY2NlcHRlZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ0Rlc3Rp
bmF0aW9uRHJhZ0FjY2VwdGVkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5nRGVz
dGluYXRpb25EcmFnTm90QWNjZXB0ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5n
RGVzdGluYXRpb25EcmFnTm90QWNjZXB0ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZCIpDQorI2VuZGlmDQorDQorDQogLy8gVmVyeSBsYXJn
ZSBzdHJpbmdzIGNhbiBuZWdhdGl2ZWx5IGltcGFjdCB0aGUgcGVyZm9ybWFuY2Ugb2Ygbm90aWZp
Y2F0aW9ucywgc28gdGhpcyBsZW5ndGggaXMgY2hvc2VuIHRvIHRyeSB0byBmaXQgYW4gYXZlcmFn
ZSBwYXJhZ3JhcGggb3IgbGluZSBvZiB0ZXh0LCBidXQgbm90IGFsbG93IHN0cmluZ3MgdG8gYmUg
bGFyZ2UgZW5vdWdoIHRvIGh1cnQgcGVyZm9ybWFuY2UuDQogc3RhdGljIGNvbnN0IE5TVUludGVn
ZXIgQVhWYWx1ZUNoYW5nZVRydW5jYXRpb25MZW5ndGggPSAxMDAwOw0KIA0KQEAgLTM1Myw2ICsz
NzgsMjEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQVhD
b3JlT2JqZWN0KiBvYmosIEFYTm90aWZpY2F0aW9uIG4NCiAgICAgICAgIGNhc2UgQVhNZW51T3Bl
bmVkOg0KICAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhNZW51T3BlbmVkTm90
aWZpY2F0aW9uOw0KICAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5n
U3RhcnRlZDoNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdT
b3VyY2VEcmFnQmVnYW5Ob3RpZmljYXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAg
ICBjYXNlIEFYRHJhZ2dpbmdFbmRlZDoNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAo
aWQpa0FYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAg
YnJlYWs7DQorICAgICAgICBjYXNlIEFYRHJhZ2dpbmdFbnRlcmVkRHJvcFpvbmU6DQorICAgICAg
ICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWERyYWdnaW5nRGVzdGluYXRpb25Ecm9wQWxs
b3dlZE5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgQVhE
cmFnZ2luZ0Ryb3BwZWQ6DQorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWERy
YWdnaW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAg
YnJlYWs7DQorICAgICAgICBjYXNlIEFYRHJhZ2dpbmdFeGl0ZWREcm9wWm9uZToNCisgICAgICAg
ICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdOb3RB
Y2NlcHRlZE5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBicmVhazsNCiAgICAgICAgIGRlZmF1
bHQ6DQogICAgICAgICAgICAgcmV0dXJuOw0KICAgICB9DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbQ0KaW5kZXggZjFiOGFkYjRhYWEuLjkyMGQyYzRlZGQ4IDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMubW0NCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tDQpAQCAtMTM1MCwxMCArMTM1MCwx
MCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQNCiAgICAgICAgIHx8IGJh
Y2tpbmdPYmplY3QtPmlzVG9vbGJhcigpKQ0KICAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0
Ok5TQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uQXR0cmlidXRlXTsNCiANCi0gICAgaWYgKGJhY2tp
bmdPYmplY3QtPnN1cHBvcnRzQVJJQURyYWdnaW5nKCkpDQorICAgIGlmIChiYWNraW5nT2JqZWN0
LT5zdXBwb3J0c0RyYWdnaW5nKCkpDQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6TlNB
Y2Nlc3NpYmlsaXR5R3JhYmJlZEF0dHJpYnV0ZV07DQogDQotICAgIGlmIChiYWNraW5nT2JqZWN0
LT5zdXBwb3J0c0FSSUFEcm9wcGluZygpKQ0KKyAgICBpZiAoYmFja2luZ09iamVjdC0+c3VwcG9y
dHNEcm9wcGluZygpKQ0KICAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJp
bGl0eURyb3BFZmZlY3RzQXR0cmlidXRlXTsNCiANCiAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlz
VGFibGUoKSAmJiBiYWNraW5nT2JqZWN0LT5pc0V4cG9zYWJsZSgpICYmIGJhY2tpbmdPYmplY3Qt
PnN1cHBvcnRzU2VsZWN0ZWRSb3dzKCkpDQpAQCAtMjkxNywxMCArMjkxNywxMCBAQCBBTExPV19E
RVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQNCiAgICAgICAgIHJldHVybiBAKGJhY2tpbmdP
YmplY3QtPnNldFNpemUoKSk7DQogDQogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9T
dHJpbmc6TlNBY2Nlc3NpYmlsaXR5R3JhYmJlZEF0dHJpYnV0ZV0pDQotICAgICAgICByZXR1cm4g
W05TTnVtYmVyIG51bWJlcldpdGhCb29sOmJhY2tpbmdPYmplY3QtPmlzQVJJQUdyYWJiZWQoKV07
DQorICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhCb29sOmJhY2tpbmdPYmplY3Qt
PmlzR3JhYmJlZCgpXTsNCiANCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmlu
ZzpOU0FjY2Vzc2liaWxpdHlEcm9wRWZmZWN0c0F0dHJpYnV0ZV0pDQotICAgICAgICByZXR1cm4g
Y3JlYXRlTlNBcnJheShiYWNraW5nT2JqZWN0LT5kZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSku
YXV0b3JlbGVhc2UoKTsNCisgICAgICAgIHJldHVybiBjcmVhdGVOU0FycmF5KGJhY2tpbmdPYmpl
Y3QtPmRldGVybWluZURyb3BFZmZlY3RzKCkpLmF1dG9yZWxlYXNlKCk7DQogDQogICAgIGlmIChb
YXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5UGxhY2Vob2xkZXJW
YWx1ZUF0dHJpYnV0ZV0pDQogICAgICAgICByZXR1cm4gYmFja2luZ09iamVjdC0+cGxhY2Vob2xk
ZXJWYWx1ZSgpOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0
ZU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4NCmlu
ZGV4IGRjZDgzNzhkOTU0Li5jYjMwNDkwNDA4OSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbg0KQEAgLTEyMSw2ICsxMjEsNyBAQCBkaXNhYmxlcmVtb3RlcGxh
eWJhY2sNCiBkaXNwb3NpdGlvbg0KIGRvd25sb2FkDQogZHJhZ2dhYmxlDQorZHJvcHpvbmUNCiB3
ZWJraXRkcm9wem9uZQ0KIGVuY3R5cGUNCiBlbmQNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGUuY3BwDQppbmRleCA5ZjM4ZTc4NjVi
ZC4uMGQ0MTFmNDNlOWUgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2F0ay9XZWJLaXRBY2Nlc3NpYmxlLmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZS5jcHANCkBAIC01NjMsOSArNTYzLDkgQEAgc3RhdGlj
IEF0a0F0dHJpYnV0ZVNldCogd2Via2l0QWNjZXNzaWJsZUdldEF0dHJpYnV0ZXMoQXRrT2JqZWN0
KiBvYmplY3QpDQogICAgIGlmICghZHJvcEVmZmVjdC5pc0VtcHR5KCkpDQogICAgICAgICBhdHRy
aWJ1dGVTZXQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChhdHRyaWJ1dGVTZXQsICJkcm9wZWZmZWN0
IiwgZHJvcEVmZmVjdC51dGY4KCkuZGF0YSgpKTsNCiANCi0gICAgaWYgKGNvcmVPYmplY3QtPmlz
QVJJQUdyYWJiZWQoKSkNCisgICAgaWYgKGNvcmVPYmplY3QtPmlzR3JhYmJlZCgpKQ0KICAgICAg
ICAgYXR0cmlidXRlU2V0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQoYXR0cmlidXRlU2V0LCAiZ3Jh
YmJlZCIsICJ0cnVlIik7DQotICAgIGVsc2UgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJQURy
YWdnaW5nKCkpDQorICAgIGVsc2UgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzRHJhZ2dpbmcoKSkN
CiAgICAgICAgIGF0dHJpYnV0ZVNldCA9IGFkZFRvQXRrQXR0cmlidXRlU2V0KGF0dHJpYnV0ZVNl
dCwgImdyYWJiZWQiLCAiZmFsc2UiKTsNCiANCiAgICAgLy8gVGhlIENvcmUgQUFNIHN0YXRlcyB0
aGUgYXV0aG9yLXByb3ZpZGVkIHZhbHVlIHNob3VsZCBiZSBleHBvc2VkIGFzLWlzLg0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398546</attachid>
            <date>2020-05-05 13:23:00 -0700</date>
            <delta_ts>2020-05-05 14:25:55 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>27012</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTg0NGZjZmE2NTkuLmYwNWI2MTQzMDE2IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDQtMzAgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+DQogDQogICAgICAgICBib3JkZXItcmFkaXVzIGZh
aWxzIHRvIGNsaXAgaWZyYW1lIGNvbnRlbnRzDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
DQppbmRleCAwMDAwMDAwMDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0w
LDAgKzEsMjEgQEANCitUaGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRy
aWJ1dGVzIGFuZCBub3RpZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRp
b25zLg0KKw0KK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQg
c3F1YXJlIG9udG8gbWUuDQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0
YXJnZXQ6DQorDQorU3F1YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQn
KSBpcyB0cnVlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoJ2Ryb3BUYXJnZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMg
ZmFsc2UNCitUYXJnZXQgaXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitU
YXJnZXQgaXMgZ3JhYmJlZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVy
IGRyYWc6IDENCitBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0
aW9uRHJvcEFsbG93ZWQNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVT
VCBDT01QTEVURQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2RyYWdnYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZHJhZ2dhYmxl
Lmh0bWwNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYTJhYzAzMGZl
MWUNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS5odG1sDQpAQCAtMCwwICsxLDk1IEBADQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPHN0eWxl
Pg0KKyAgICAjZHJvcFRhcmdldCwgI2RyYWdNZSB7IHRleHQtYWxpZ246IGNlbnRlcjsgZGlzcGxh
eTogdGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246IG1pZGRsZSB9DQorICAgICNkcm9wVGFyZ2V0
IHt3aWR0aDogMjU2cHg7IGhlaWdodDogMjU2cHg7IGJvcmRlcjogMXB4IGRhc2hlZH0NCisgICAg
I2RyYWdNZSB7LXdlYmtpdC11c2VyLWRyYWc6IGVsZW1lbnQ7IC13ZWJraXQtdXNlci1zZWxlY3Q6
IG5vbmU7IGJhY2tncm91bmQ6ICNmZjAwMDA7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDY0cHg7IGNv
bG9yOiB3aGl0ZX0NCis8L3N0eWxlPg0KKzxzY3JpcHQ+DQorICAgIHZhciBkcmFnTWU7DQorICAg
IHZhciBkcm9wVGFyZ2V0Ow0KKyAgICB2YXIgZXZlbnQ7DQorDQorICAgIGZ1bmN0aW9uIGRyb3Ao
ZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJUYXJnZXQgaXMgZ3JhYmJlZCBhZnRlciBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKyAgICAgICAgZGVi
dWcoIlRFU1QgUEFTU0VEOiBzcXVhcmUgZHJvcHBlZCIpOw0KKyAgICAgICAgZXZlbnQucHJldmVu
dERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBkcmFnT3ZlcihldmVudCkNCisg
ICAgew0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCisgICAgfQ0KKw0KKyAgICBm
dW5jdGlvbiBkcmFnU3RhcnQoZXZlbnQpDQorICAgIHsNCisgICAgICAgIGRlYnVnKCJURVNUIGRy
YWcgc3RhcnQiKTsNCisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBydW5UZXN0KCkNCisgICAgew0K
KyAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpDQorICAgICAgICAgICAgcmV0dXJuOw0K
Kw0KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOw0KKw0KKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZHJh
Z01lLm9mZnNldExlZnQgKyAxMCwgZHJhZ01lLm9mZnNldFRvcCArIGRyYWdNZS5vZmZzZXRIZWln
aHQgLyAyKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgICAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3
YXJkKDIwMCk7DQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcm9wVGFyZ2V0Lm9m
ZnNldExlZnQgKyAxMCwgZHJvcFRhcmdldC5vZmZzZXRUb3AgKyBkcm9wVGFyZ2V0Lm9mZnNldEhl
aWdodCAvIDIpOw0KKw0KKyAgICAgICAgZGVidWcoIlRhcmdldCBpcyBncmFiYmVkIGR1cmluZyBk
cmFnOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdk
cmFnTWUnKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiQVhHcmFiYmVkIikpOw0KKw0KKyAgICAgICAg
ZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsNCisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7DQorICAgIH0NCis8
L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+DQorICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
Pg0KKyAgICA8ZGl2IGlkPSJ0ZXN0LWNvbnRhaW5lciI+DQorICAgICAgICA8ZGl2IGlkPSJkcm9w
VGFyZ2V0IiBkcm9wem9uZT0iY29weSI+RHJvcCB0aGUgcmVkIHNxdWFyZSBvbnRvIG1lLjwvZGl2
Pg0KKyAgICAgICAgPGhyLz4NCisgICAgICAgIDxwPkl0ZW1zIHRoYXQgY2FuIGJlIGRyYWdnZWQg
dG8gdGhlIGRyb3AgdGFyZ2V0OjwvcD4NCisgICAgICAgIDxkaXYgaWQ9ImRyYWdNZSIgZHJhZ2dh
YmxlPSJ0cnVlIj5TcXVhcmU8L2Rpdj4NCisgICAgICAgIDxoci8+DQorICAgIDwvZGl2Pg0KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgPHNjcmlwdD4NCisgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsNCisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
Y2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3RpZmljYXRpb25z
IGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLiIpOw0KKw0KKyAgICAgICAgZHJh
Z01lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYWdNZSIpOw0KKyAgICAgICAgZHJvcFRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcm9wVGFyZ2V0Iik7DQorDQorICAgICAg
ICBkcm9wVGFyZ2V0Lm9uZHJhZ292ZXIgPSBkcmFnT3ZlcjsNCisgICAgICAgIGRyb3BUYXJnZXQu
b25kcm9wID0gZHJvcDsNCisgICAgICAgIGRyYWdNZS5vbnN0YXJ0ID0gZHJhZ1N0YXJ0Ow0KKw0K
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoJ2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSIp
Ow0KKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCdkcm9wVGFyZ2V0JykuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYR3Jh
YmJlZCcpIik7DQorDQorICAgICAgICBkZWJ1ZygiVGFyZ2V0IGlzIGdyYWJiZWQ6ICIgKyBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2RyYWdNZScpLm51bWJl
ckF0dHJpYnV0ZVZhbHVlKCJBWEdyYWJiZWQiKSk7DQorICAgICAgICBkZWJ1ZygiRHJvcHpvbmUg
ZWZmZWN0czogIiArIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgnZHJvcFRhcmdldCcpLmFyaWFEcm9wRWZmZWN0cyk7DQorDQorICAgICAgICBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5jdGlvbihlbGVtZW50LCBu
b3RpZmljYXRpb24pIHsNCisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uLnN0YXJ0c1dpdGgo
IkFYRHJhZyIpKSB7DQorICAgICAgICAgICAgICAgIGRlYnVnKG5vdGlmaWNhdGlvbik7DQorICAg
ICAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYRHJhZ2dpbmdEZXN0aW5hdGlvbkRy
b3BBbGxvd2VkIikgew0KKyAgICAgICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsNCisgICAgICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAg
IH0pOw0KKw0KKyAgICAgICAgc2V0VGltZW91dChydW5UZXN0KCksIDApOw0KKw0KKyAgICA8L3Nj
cmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IGJjMzkzOGViNDRhLi4x
YjQzY2I2MDE4MiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDUwIEBADQorMjAyMC0wNS0wNCAg
Q2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IElt
cGxlbWVudCBhY2Nlc3NpYmlsaXR5IG9mIEhUTUwgNS4xIERyYWcgJiBEcm9wDQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNDE1DQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjI2OTU1MzE+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4NCisNCisgICAgICAgIFN1cHBvcnQgSFRNTDUgZHJhZyBhbmQgZHJvcC4gU3VwcG9y
dCBkcm9wem9uZSBhdHRyaWJ1dGUuDQorICAgICAgICBBZGQgbmV3IG5vdGlmaWNhdGlvbnMgZm9y
IFZvaWNlT3ZlciB0byBjb25zdW1lLg0KKw0KKyAgICAgICAgSXQgYXBwZWFycyB0aGF0IG1vc3Qg
b2YgdGhlIGRyYWdnaW5nIHRlc3RzIGFyZSBza2lwcGVkIGJlY2F1c2Ugb2YgZXZlbnRTZW5kZXIg
aXNzdWVzLg0KKyAgICAgICAgSSB0aGluayB0aGlzIHRlc3QgY291bGQgZG8gYSBsaXR0bGUgbW9y
ZSBpZiB0aG9zZSBpc3N1ZXMgd2VyZSByZXNvbHZlZC4gU3BlY2lmaWNhbGx5LCBub3QgYWxsDQor
ICAgICAgICB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VlbiB0aGF0IGFyZSBleHBlY3RlZC4NCisN
CisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL2RyYWdnYWJsZS5odG1sDQorDQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMgY29uc3QpOg0KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQVhIaWRkZW4gY29uc3QpOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoNCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6DQorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcm9wcGluZyBjb25zdCk6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNE
cmFnZ2luZyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNHcmFiYmVkKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpkZXRlcm1pbmVEcm9wRWZmZWN0cyk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJvcHBpbmcgY29uc3QpOiBEZWxldGVk
Lg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRz
QVJJQURyYWdnaW5nIGNvbnN0KTogRGVsZXRlZC4NCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FSSUFHcmFiYmVkKTogRGVsZXRlZC4NCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBUklBRHJvcEVmZmVj
dHMpOiBEZWxldGVkLg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZUF0dHJpYnV0ZURhdGEpOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW06DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVz
XSk6DQorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6XSk6DQorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluOg0KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6DQorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudCk6DQorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpkcmFnZ2luZ0VsZW1lbnQgY29uc3QpOg0KKyAgICAgICAgKiBwYWdlL0V2
ZW50SGFuZGxlci5oOg0KKw0KIDIwMjAtMDQtMzAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2df
MjJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgRml4IGZvciBjcmFzaCBpbiBBWExvZ2dlci4NCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQppbmRleCBhMzBk
MmE5MTUxNi4uNzczOTc5OTZhYjAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgNCkBAIC0zMDMsNyArMzAzLDEyIEBAIHB1YmxpYzoNCiAgICAgICAg
IEFYUmVxdWlyZWRTdGF0dXNDaGFuZ2VkLA0KICAgICAgICAgQVhUZXh0Q2hhbmdlZCwNCiAgICAg
ICAgIEFYQXJpYUF0dHJpYnV0ZUNoYW5nZWQsDQotICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdl
ZA0KKyAgICAgICAgQVhFbGVtZW50QnVzeUNoYW5nZWQsDQorICAgICAgICBBWERyYWdnaW5nU3Rh
cnRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbmRlZCwNCisgICAgICAgIEFYRHJhZ2dpbmdFbnRl
cmVkRHJvcFpvbmUsDQorICAgICAgICBBWERyYWdnaW5nRHJvcHBlZCwNCisgICAgICAgIEFYRHJh
Z2dpbmdFeGl0ZWREcm9wWm9uZQ0KICAgICB9Ow0KIA0KICAgICB2b2lkIHBvc3ROb3RpZmljYXRp
b24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVt
ZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7DQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCmluZGV4IDQwZWE1
ZmVhZTEyLi42NjJhM2ExZjllZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCkBAIC0yNTM0LDggKzI1MzQsOCBAQCBi
b29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUF0dHJpYnV0ZXMoKSBjb25zdA0K
IHsNCiAgICAgLy8gVGhpcyByZXR1cm5zIHdoZXRoZXIgdGhlIGVsZW1lbnQgc3VwcG9ydHMgYW55
IGdsb2JhbCBBUklBIGF0dHJpYnV0ZXMuDQogICAgIHJldHVybiBzdXBwb3J0c0xpdmVSZWdpb24o
KQ0KLSAgICAgICAgfHwgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKQ0KLSAgICAgICAgfHwgc3VwcG9y
dHNBUklBRHJvcHBpbmcoKQ0KKyAgICAgICAgfHwgc3VwcG9ydHNEcmFnZ2luZygpDQorICAgICAg
ICB8fCBzdXBwb3J0c0Ryb3BwaW5nKCkNCiAgICAgICAgIHx8IHN1cHBvcnRzQVJJQU93bnMoKQ0K
ICAgICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYXRvbWljQXR0cikNCiAgICAgICAgIHx8IGhh
c0F0dHJpYnV0ZShhcmlhX2J1c3lBdHRyKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCmluZGV4IGY1M2Q2OWI3YzMzLi5jN2U0MjFh
MGU3NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaA0KQEAgLTMyNywxMSArMzI3LDExIEBAIHB1YmxpYzoNCiAgICAgaW50IHBv
c0luU2V0KCkgY29uc3Qgb3ZlcnJpZGU7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0K
LSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9DQotICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0NCiAgICAgdm9pZCBzZXRBUklBR3JhYmJlZChib29sKSBvdmVy
cmlkZSB7IH0NCi0gICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkg
b3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQorICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZURy
b3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9DQogDQogICAgIC8vIENhbGxlZCBv
biB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBlbGVt
ZW50Lg0KICAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBv
aW50JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgNCmluZGV4IDFjODg5NThlZGJlLi5mOGQ2YWVjOGQ0MCAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaA0KQEAgLTc1NiwxMSArNzU2LDExIEBAIHB1YmxpYzoNCiAgICAgdmlydHVhbCBpbnQg
cG9zSW5TZXQoKSBjb25zdCA9IDA7DQogDQogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcA0KLSAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCA9IDA7DQotICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0ID0gMDsNCi0gICAgdmlydHVh
bCBib29sIGlzQVJJQUdyYWJiZWQoKSA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Ry
b3BwaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygp
IGNvbnN0ID0gMDsNCisgICAgdmlydHVhbCBib29sIGlzR3JhYmJlZCgpID0gMDsNCiAgICAgdmly
dHVhbCB2b2lkIHNldEFSSUFHcmFiYmVkKGJvb2wpID0gMDsNCi0gICAgdmlydHVhbCBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSA9IDA7DQorICAgIHZpcnR1YWwgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSA9IDA7DQogDQogICAgIC8vIENhbGxl
ZCBvbiB0aGUgcm9vdCBBWCBvYmplY3QgdG8gcmV0dXJuIHRoZSBkZWVwZXN0IGF2YWlsYWJsZSBl
bGVtZW50Lg0KICAgICB2aXJ0dWFsIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3Qo
Y29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwDQppbmRleCA3YmE5NmFjYzUyMC4uOTM0OWE2NTMxMTggMTAwNjQ0DQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcA0KQEAgLTIyODIsNyArMjI4MiwyNiBAQCBib29sIEV2ZW50SGFuZGxl
cjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFbGVtZW50
JiBkcmFnVA0KICAgICAgICAgZXZlbnQubW9kaWZpZXJzKCksIDAsIDAsIG51bGxwdHIsIGV2ZW50
LmZvcmNlKCksIE5vVGFwLCAmZGF0YVRyYW5zZmVyKTsNCiANCiAgICAgZHJhZ1RhcmdldC5kaXNw
YXRjaEV2ZW50KGRyYWdFdmVudCk7DQotICAgIHJldHVybiBkcmFnRXZlbnQtPmRlZmF1bHRQcmV2
ZW50ZWQoKTsNCisNCisgICAgaWYgKGF1dG8qIGNhY2hlID0gbV9mcmFtZS5kb2N1bWVudCgpLT5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgew0KKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkuZHJhZ3N0YXJ0RXZlbnQpDQorICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmlj
YXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdTdGFydGVkKTsNCisg
ICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJhZ2VuZEV2ZW50KQ0K
KyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVj
dENhY2hlOjpBWERyYWdnaW5nRW5kZWQpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09
IGV2ZW50TmFtZXMoKS5kcmFnZW50ZXJFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5v
dGlmaWNhdGlvbigmZHJhZ1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0VudGVyZWRE
cm9wWm9uZSk7DQorICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRy
YWdsZWF2ZUV2ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFn
VGFyZ2V0LCBBWE9iamVjdENhY2hlOjpBWERyYWdnaW5nRXhpdGVkRHJvcFpvbmUpOw0KKyAgICAg
ICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kcm9wRXZlbnQpDQorICAgICAg
ICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6
OkFYRHJhZ2dpbmdEcm9wcGVkKTsNCisgICAgfQ0KKw0KKyAgICByZXR1cm4gZHJhZ0V2ZW50LT5k
ZWZhdWx0UHJldmVudGVkKCk7Ow0KK30NCisNCitFbGVtZW50KiBFdmVudEhhbmRsZXI6OmRyYWdn
aW5nRWxlbWVudCgpIGNvbnN0DQorew0KKyAgICByZXR1cm4gZHJhZ1N0YXRlKCkuc291cmNlLmdl
dCgpOw0KIH0NCiANCiBzdGF0aWMgYm9vbCB0YXJnZXRJc0ZyYW1lKE5vZGUqIHRhcmdldCwgRnJh
bWUqJiBmcmFtZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KaW5kZXggYWRiMTVkYmI0
YzUuLjM0Y2NiMWFkMjMwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KQEAgLTMz
OCw2ICszMzgsMTAgQEAgcHVibGljOg0KIA0KICAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxD
dXJzb3I+IHNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiwgYm9vbCBzaGlmdEtleSk7
DQogDQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpDQorICAgIEVsZW1lbnQqIGRyYWdnaW5nRWxl
bWVudCgpIGNvbnN0Ow0KKyNlbmRpZg0KKw0KIHByaXZhdGU6DQogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpDQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOw0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmgNCmluZGV4IDdlY2YwNGFhMDRlLi4xODk0Zjg2MjA5NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oDQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaA0K
QEAgLTE3MSwxMCArMTcxLDEwIEBAIHB1YmxpYzoNCiAgICAgYm9vbCBpc1Zpc2libGVQb3NpdGlv
blJhbmdlSW5EaWZmZXJlbnREb2N1bWVudChjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYpIGNv
bnN0Ow0KICAgICBib29sIGhhc1BvcHVwKCkgY29uc3Qgb3ZlcnJpZGU7DQogDQotICAgIGJvb2wg
c3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVycmlkZTsNCi0gICAgYm9vbCBzdXBwb3J0
c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRlOw0KLSAgICBib29sIGlzQVJJQUdyYWJiZWQo
KSBvdmVycmlkZTsNCi0gICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3Rz
KCkgb3ZlcnJpZGU7DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92ZXJyaWRl
Ow0KKyAgICBib29sIHN1cHBvcnRzRHJhZ2dpbmcoKSBjb25zdCBvdmVycmlkZTsNCisgICAgYm9v
bCBpc0dyYWJiZWQoKSBvdmVycmlkZTsNCisgICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJv
cEVmZmVjdHMoKSBvdmVycmlkZTsNCiAgICAgDQogICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxl
UG9zaXRpb25Gb3JQb2ludChjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOw0KICAgICBW
aXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgodW5zaWduZWQgaW5kZXhWYWx1
ZSwgYm9vbCBsYXN0SW5kZXhPSykgY29uc3Qgb3ZlcnJpZGU7DQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmNwcA0KaW5kZXggNzg5MDkwOWE4MmQuLmY1MGNjNmNhOTgzIDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5j
cHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRPYmplY3QuY3BwDQpAQCAtMTcyLDEwICsxNzIsMTAgQEAgdm9pZCBBWElzb2xhdGVkT2Jq
ZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShBWENvcmVPYmplY3QmIG9iamVjdCwgYm9vbCBp
c1Jvb3QNCiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzUG9zSW5TZXQs
IG9iamVjdC5zdXBwb3J0c1Bvc0luU2V0KCkpOw0KICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5
TmFtZTo6U2V0U2l6ZSwgb2JqZWN0LnNldFNpemUoKSk7DQogICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpQb3NJblNldCwgb2JqZWN0LnBvc0luU2V0KCkpOw0KLSAgICBzZXRQcm9wZXJ0
eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNBUklBRHJvcHBpbmcsIG9iamVjdC5zdXBwb3J0c0FS
SUFEcm9wcGluZygpKTsNCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRz
QVJJQURyYWdnaW5nLCBvYmplY3Quc3VwcG9ydHNBUklBRHJhZ2dpbmcoKSk7DQotICAgIHNldFBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc0FSSUFHcmFiYmVkLCBvYmplY3QuaXNBUklBR3JhYmJl
ZCgpKTsNCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkFSSUFEcm9wRWZmZWN0cywg
b2JqZWN0LmRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpKTsNCisgICAgc2V0UHJvcGVydHkoQVhQ
cm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJvcHBpbmcsIG9iamVjdC5zdXBwb3J0c0Ryb3BwaW5nKCkp
Ow0KKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNEcmFnZ2luZywgb2Jq
ZWN0LnN1cHBvcnRzRHJhZ2dpbmcoKSk7DQorICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpJc0dyYWJiZWQsIG9iamVjdC5pc0dyYWJiZWQoKSk7DQorICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpEcm9wRWZmZWN0cywgb2JqZWN0LmRldGVybWluZURyb3BFZmZlY3RzKCkpOw0K
ICAgICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6VGl0bGVVSUVsZW1lbnQsIG9i
amVjdC50aXRsZVVJRWxlbWVudCgpKTsNCiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
OkV4cG9zZXNUaXRsZVVJRWxlbWVudCwgb2JqZWN0LmV4cG9zZXNUaXRsZVVJRWxlbWVudCgpKTsN
CiAgICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlZlcnRpY2FsU2Nyb2xsQmFy
LCBvYmplY3Quc2Nyb2xsQmFyKEFjY2Vzc2liaWxpdHlPcmllbnRhdGlvbjo6VmVydGljYWwpKTsN
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCmluZGV4IDFjOTM2ZmRhMjZhLi40YzkwMmVmZTBhMSAx
MDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQpAQCAtODksNyArODksNyBAQCBwcml2YXRlOg0K
ICAgICAgICAgQXV0b0NvbXBsZXRlVmFsdWUsDQogICAgICAgICBBUklBQ29udHJvbHNFbGVtZW50
cywNCiAgICAgICAgIEFSSUFEZXRhaWxzRWxlbWVudHMsDQotICAgICAgICBBUklBRHJvcEVmZmVj
dHMsDQorICAgICAgICBEcm9wRWZmZWN0cywNCiAgICAgICAgIEFSSUFFcnJvck1lc3NhZ2VFbGVt
ZW50cywNCiAgICAgICAgIEFSSUFJc011bHRpbGluZSwNCiAgICAgICAgIEFSSUFGbG93VG9FbGVt
ZW50cywNCkBAIC0xNjEsNyArMTYxLDcgQEAgcHJpdmF0ZToNCiAgICAgICAgIElzQWNjZXNzaWJp
bGl0eUlnbm9yZWQsDQogICAgICAgICBJc0FjdGl2ZURlc2NlbmRhbnRPZkZvY3VzZWRDb250YWlu
ZXIsDQogICAgICAgICBJc0Fub255bW91c01hdGhPcGVyYXRvciwNCi0gICAgICAgIElzQVJJQUdy
YWJiZWQsDQorICAgICAgICBJc0dyYWJiZWQsDQogICAgICAgICBJc0FSSUFUcmVlR3JpZFJvdywN
CiAgICAgICAgIElzQXR0YWNobWVudCwNCiAgICAgICAgIElzQnV0dG9uLA0KQEAgLTI5OSw4ICsy
OTksOCBAQCBwcml2YXRlOg0KICAgICAgICAgU3BlYWtBcywNCiAgICAgICAgIFNwZWVjaEhpbnQs
DQogICAgICAgICBTdHJpbmdWYWx1ZSwNCi0gICAgICAgIFN1cHBvcnRzQVJJQURyYWdnaW5nLA0K
LSAgICAgICAgU3VwcG9ydHNBUklBRHJvcHBpbmcsDQorICAgICAgICBTdXBwb3J0c0RyYWdnaW5n
LA0KKyAgICAgICAgU3VwcG9ydHNEcm9wcGluZywNCiAgICAgICAgIFN1cHBvcnRzQVJJQU93bnMs
DQogICAgICAgICBTdXBwb3J0c0N1cnJlbnQsDQogICAgICAgICBTdXBwb3J0c0RhdGV0aW1lQXR0
cmlidXRlLA0KQEAgLTUwNCwxMCArNTA0LDEwIEBAIHByaXZhdGU6DQogICAgIGJvb2wgc3VwcG9y
dHNQb3NJblNldCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShB
WFByb3BlcnR5TmFtZTo6U3VwcG9ydHNQb3NJblNldCk7IH0NCiAgICAgaW50IHNldFNpemUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBpbnRBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6
U2V0U2l6ZSk7IH0NCiAgICAgaW50IHBvc0luU2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
aW50QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlBvc0luU2V0KTsgfQ0KLSAgICBib29s
IHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJp
YnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0FSSUFEcm9wcGluZyk7IH0NCi0gICAg
Ym9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNBUklBRHJhZ2dpbmcpOyB9DQot
ICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVW
YWx1ZShBWFByb3BlcnR5TmFtZTo6SXNBUklBR3JhYmJlZCk7IH0NCi0gICAgVmVjdG9yPFN0cmlu
Zz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyByZXR1cm4gdmVjdG9yQXR0
cmlidXRlVmFsdWU8U3RyaW5nPihBWFByb3BlcnR5TmFtZTo6QVJJQURyb3BFZmZlY3RzKTsgfQ0K
KyAgICBib29sIHN1cHBvcnRzRHJvcHBpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29s
QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJvcHBpbmcpOyB9DQorICAg
IGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRy
aWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNEcmFnZ2luZyk7IH0NCisgICAgYm9v
bCBpc0dyYWJiZWQoKSBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9w
ZXJ0eU5hbWU6OklzR3JhYmJlZCk7IH0NCisgICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJv
cEVmZmVjdHMoKSBvdmVycmlkZSB7IHJldHVybiB2ZWN0b3JBdHRyaWJ1dGVWYWx1ZTxTdHJpbmc+
KEFYUHJvcGVydHlOYW1lOjpEcm9wRWZmZWN0cyk7IH0NCiAgICAgQVhDb3JlT2JqZWN0KiBhY2Nl
c3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOw0KICAgICBB
WENvcmVPYmplY3QqIGZvY3VzZWRVSUVsZW1lbnQoKSBjb25zdCBvdmVycmlkZTsNCiAgICAgQVhD
b3JlT2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBwYXJlbnRP
YmplY3RVbmlnbm9yZWQoKTsgfQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQppbmRleCA0ZmVkZmE1NmUzNi4uZTNmMDdhYmY0
MzEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVj
dENhY2hlTWFjLm1tDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tDQpAQCAtOTYsNiArOTYsMzEgQEANCiAjZGVmaW5lIE5TQWNjZXNzaWJp
bGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlIEAiQVhTZWxlY3RlZFRleHRNYXJr
ZXJSYW5nZSINCiAjZW5kaWYNCiANCisjaWZuZGVmIGtBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2Fu
Tm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2luZ1NvdXJjZURyYWdCZWdhbk5vdGlmaWNh
dGlvbiBDRlNUUigiQVhEcmFnZ2luZ1NvdXJjZURyYWdCZWdhbiIpDQorI2VuZGlmDQorDQorI2lm
bmRlZiBrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FY
RHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdTb3Vy
Y2VEcmFnRW5kZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FYRHJhZ2dpbmdEZXN0aW5hdGlv
bkRyb3BBbGxvd2VkTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9u
RHJvcEFsbG93ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BB
bGxvd2VkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5nRGVzdGluYXRpb25Ecm9w
Tm90QWxsb3dlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRy
b3BOb3RBbGxvd2VkTm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5nRGVzdGluYXRpb25Ecm9w
Tm90QWxsb3dlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9u
RHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9u
RHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5nRGVzdGluYXRpb25EcmFn
QWNjZXB0ZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRy
YWdOb3RBY2NlcHRlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdEZXN0aW5hdGlv
bkRyYWdOb3RBY2NlcHRlZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ0Rlc3RpbmF0aW9u
RHJhZ05vdEFjY2VwdGVkIikNCisjZW5kaWYNCisNCisNCiAvLyBWZXJ5IGxhcmdlIHN0cmluZ3Mg
Y2FuIG5lZ2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3JtYW5jZSBvZiBub3RpZmljYXRpb25zLCBz
byB0aGlzIGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRvIGZpdCBhbiBhdmVyYWdlIHBhcmFncmFw
aCBvciBsaW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cgc3RyaW5ncyB0byBiZSBsYXJnZSBlbm91
Z2ggdG8gaHVydCBwZXJmb3JtYW5jZS4NCiBzdGF0aWMgY29uc3QgTlNVSW50ZWdlciBBWFZhbHVl
Q2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7DQogDQpAQCAtMzUzLDYgKzM3OCwyMSBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3Qq
IG9iaiwgQVhOb3RpZmljYXRpb24gbg0KICAgICAgICAgY2FzZSBBWE1lbnVPcGVuZWQ6DQogICAg
ICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWE1lbnVPcGVuZWROb3RpZmljYXRpb247
DQogICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlIEFYRHJhZ2dpbmdTdGFydGVkOg0K
KyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ1NvdXJjZURyYWdC
ZWdhbk5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgQVhE
cmFnZ2luZ0VuZGVkOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhEcmFn
Z2luZ1NvdXJjZURyYWdFbmRlZE5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBicmVhazsNCisg
ICAgICAgIGNhc2UgQVhEcmFnZ2luZ0VudGVyZWREcm9wWm9uZToNCisgICAgICAgICAgICBtYWNO
b3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BBbGxvd2VkTm90aWZp
Y2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5nRHJv
cHBlZDoNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdEZXN0
aW5hdGlvbkRyYWdBY2NlcHRlZE5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBicmVhazsNCisg
ICAgICAgIGNhc2UgQVhEcmFnZ2luZ0V4aXRlZERyb3Bab25lOg0KKyAgICAgICAgICAgIG1hY05v
dGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkTm90
aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgZGVmYXVsdDoNCiAgICAg
ICAgICAgICByZXR1cm47DQogICAgIH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tDQppbmRleCBmMWI4YWRiNGFhYS4uOTIwZDJjNGVkZDggMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCkBAIC0xMzUwLDEwICsxMzUwLDEwIEBAIEFMTE9X
X0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORA0KICAgICAgICAgfHwgYmFja2luZ09iamVj
dC0+aXNUb29sYmFyKCkpDQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6TlNBY2Nlc3Np
YmlsaXR5T3JpZW50YXRpb25BdHRyaWJ1dGVdOw0KIA0KLSAgICBpZiAoYmFja2luZ09iamVjdC0+
c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSkNCisgICAgaWYgKGJhY2tpbmdPYmplY3QtPnN1cHBvcnRz
RHJhZ2dpbmcoKSkNCiAgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxp
dHlHcmFiYmVkQXR0cmlidXRlXTsNCiANCi0gICAgaWYgKGJhY2tpbmdPYmplY3QtPnN1cHBvcnRz
QVJJQURyb3BwaW5nKCkpDQorICAgIGlmIChiYWNraW5nT2JqZWN0LT5zdXBwb3J0c0Ryb3BwaW5n
KCkpDQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5RHJvcEVm
ZmVjdHNBdHRyaWJ1dGVdOw0KIA0KICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNUYWJsZSgpICYm
IGJhY2tpbmdPYmplY3QtPmlzRXhwb3NhYmxlKCkgJiYgYmFja2luZ09iamVjdC0+c3VwcG9ydHNT
ZWxlY3RlZFJvd3MoKSkNCkBAIC0yOTE3LDEwICsyOTE3LDEwIEBAIEFMTE9XX0RFUFJFQ0FURURf
SU1QTEVNRU5UQVRJT05TX0VORA0KICAgICAgICAgcmV0dXJuIEAoYmFja2luZ09iamVjdC0+c2V0
U2l6ZSgpKTsNCiANCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0Fj
Y2Vzc2liaWxpdHlHcmFiYmVkQXR0cmlidXRlXSkNCi0gICAgICAgIHJldHVybiBbTlNOdW1iZXIg
bnVtYmVyV2l0aEJvb2w6YmFja2luZ09iamVjdC0+aXNBUklBR3JhYmJlZCgpXTsNCisgICAgICAg
IHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6YmFja2luZ09iamVjdC0+aXNHcmFiYmVk
KCldOw0KIA0KICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNz
aWJpbGl0eURyb3BFZmZlY3RzQXR0cmlidXRlXSkNCi0gICAgICAgIHJldHVybiBjcmVhdGVOU0Fy
cmF5KGJhY2tpbmdPYmplY3QtPmRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpKS5hdXRvcmVsZWFz
ZSgpOw0KKyAgICAgICAgcmV0dXJuIGNyZWF0ZU5TQXJyYXkoYmFja2luZ09iamVjdC0+ZGV0ZXJt
aW5lRHJvcEVmZmVjdHMoKSkuYXV0b3JlbGVhc2UoKTsNCiANCiAgICAgaWYgKFthdHRyaWJ1dGVO
YW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlQbGFjZWhvbGRlclZhbHVlQXR0cmli
dXRlXSkNCiAgICAgICAgIHJldHVybiBiYWNraW5nT2JqZWN0LT5wbGFjZWhvbGRlclZhbHVlKCk7
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbg0KaW5kZXggZGNkODM3
OGQ5NTQuLmNiMzA0OTA0MDg5IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4NCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0
ZU5hbWVzLmluDQpAQCAtMTIxLDYgKzEyMSw3IEBAIGRpc2FibGVyZW1vdGVwbGF5YmFjaw0KIGRp
c3Bvc2l0aW9uDQogZG93bmxvYWQNCiBkcmFnZ2FibGUNCitkcm9wem9uZQ0KIHdlYmtpdGRyb3B6
b25lDQogZW5jdHlwZQ0KIGVuZA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZS5jcHANCmluZGV4IDlmMzhlNzg2NWJkLi4wZDQxMWY0
M2U5ZSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktp
dEFjY2Vzc2libGUuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9X
ZWJLaXRBY2Nlc3NpYmxlLmNwcA0KQEAgLTU2Myw5ICs1NjMsOSBAQCBzdGF0aWMgQXRrQXR0cmli
dXRlU2V0KiB3ZWJraXRBY2Nlc3NpYmxlR2V0QXR0cmlidXRlcyhBdGtPYmplY3QqIG9iamVjdCkN
CiAgICAgaWYgKCFkcm9wRWZmZWN0LmlzRW1wdHkoKSkNCiAgICAgICAgIGF0dHJpYnV0ZVNldCA9
IGFkZFRvQXRrQXR0cmlidXRlU2V0KGF0dHJpYnV0ZVNldCwgImRyb3BlZmZlY3QiLCBkcm9wRWZm
ZWN0LnV0ZjgoKS5kYXRhKCkpOw0KIA0KLSAgICBpZiAoY29yZU9iamVjdC0+aXNBUklBR3JhYmJl
ZCgpKQ0KKyAgICBpZiAoY29yZU9iamVjdC0+aXNHcmFiYmVkKCkpDQogICAgICAgICBhdHRyaWJ1
dGVTZXQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChhdHRyaWJ1dGVTZXQsICJncmFiYmVkIiwgInRy
dWUiKTsNCi0gICAgZWxzZSBpZiAoY29yZU9iamVjdC0+c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSkN
CisgICAgZWxzZSBpZiAoY29yZU9iamVjdC0+c3VwcG9ydHNEcmFnZ2luZygpKQ0KICAgICAgICAg
YXR0cmlidXRlU2V0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQoYXR0cmlidXRlU2V0LCAiZ3JhYmJl
ZCIsICJmYWxzZSIpOw0KIA0KICAgICAvLyBUaGUgQ29yZSBBQU0gc3RhdGVzIHRoZSBhdXRob3It
cHJvdmlkZWQgdmFsdWUgc2hvdWxkIGJlIGV4cG9zZWQgYXMtaXMuDQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHANCmluZGV4IDI2MmIyOWM5YzViLi4yZjBmYTc5MWNiYSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHANCkBAIC0xMDQwLDMzICsxMDQwLDQyIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6aGFzUG9wdXAoKSBjb25zdA0KICAgICB9KTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0DQorYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0Ryb3BwaW5nKCkgY29uc3QNCiB7DQotICAgIGNv
bnN0IEF0b21TdHJpbmcmIGRyb3BFZmZlY3QgPSBnZXRBdHRyaWJ1dGUoYXJpYV9kcm9wZWZmZWN0
QXR0cik7DQotICAgIHJldHVybiAhZHJvcEVmZmVjdC5pc0VtcHR5KCk7DQorICAgIHJldHVybiAh
Z2V0QXR0cmlidXRlKGFyaWFfZHJvcGVmZmVjdEF0dHIpLmlzRW1wdHkoKSB8fCAhZ2V0QXR0cmli
dXRlKGRyYWdnYWJsZUF0dHIpLmlzRW1wdHkoKTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0DQorYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0RyYWdnaW5nKCkgY29uc3QNCiB7DQogICAgIGNv
bnN0IEF0b21TdHJpbmcmIGdyYWJiZWQgPSBnZXRBdHRyaWJ1dGUoYXJpYV9ncmFiYmVkQXR0cik7
DQotICAgIHJldHVybiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAidHJ1
ZSIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdyYWJiZWQsICJmYWxzZSIpOw0K
KyAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgInRydWUi
KSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAiZmFsc2UiKSB8fA0K
KyAgICAoaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnQoKSkgJiYgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+
KG5vZGUoKSktPmRyYWdnYWJsZSgpKTsNCiB9DQogDQotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojppc0FSSUFHcmFiYmVkKCkNCitib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmlzR3JhYmJlZCgpDQogew0KKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQ0KKyAgICBpZiAobWFp
bkZyYW1lKCkgJiYgbWFpbkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLmRyYWdnaW5nRWxlbWVudCgp
ID09IGVsZW1lbnQoKSkNCisgICAgICAgIHJldHVybiB0cnVlOw0KKyNlbmRpZg0KKw0KICAgICBy
ZXR1cm4gZWxlbWVudEF0dHJpYnV0ZVZhbHVlKGFyaWFfZ3JhYmJlZEF0dHIpOw0KIH0NCiANCi1W
ZWN0b3I8U3RyaW5nPiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBUklBRHJv
cEVmZmVjdHMoKQ0KK1ZlY3RvcjxTdHJpbmc+IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRl
dGVybWluZURyb3BFZmZlY3RzKCkNCiB7DQogICAgIGNvbnN0IEF0b21TdHJpbmcmIGRyb3BFZmZl
Y3RzID0gZ2V0QXR0cmlidXRlKGFyaWFfZHJvcGVmZmVjdEF0dHIpOw0KLSAgICBpZiAoZHJvcEVm
ZmVjdHMuaXNFbXB0eSgpKSB7DQotICAgICAgICByZXR1cm4geyB9Ow0KKyAgICBpZiAoIWRyb3BF
ZmZlY3RzLmlzRW1wdHkoKSkgew0KKyAgICAgICAgU3RyaW5nIGRyb3BFZmZlY3RzU3RyaW5nID0g
ZHJvcEVmZmVjdHMuc3RyaW5nKCk7DQorICAgICAgICBkcm9wRWZmZWN0c1N0cmluZy5yZXBsYWNl
KCdcbicsICcgJyk7DQorICAgICAgICByZXR1cm4gZHJvcEVmZmVjdHNTdHJpbmcuc3BsaXQoJyAn
KTsNCiAgICAgfQ0KICAgICANCi0gICAgU3RyaW5nIGRyb3BFZmZlY3RzU3RyaW5nID0gZHJvcEVm
ZmVjdHMuc3RyaW5nKCk7DQotICAgIGRyb3BFZmZlY3RzU3RyaW5nLnJlcGxhY2UoJ1xuJywgJyAn
KTsNCi0gICAgcmV0dXJuIGRyb3BFZmZlY3RzU3RyaW5nLnNwbGl0KCcgJyk7DQorICAgIGF1dG8g
ZHJvcHpvbmUgPSBnZXRBdHRyaWJ1dGUoZHJvcHpvbmVBdHRyKTsNCisgICAgaWYgKCFkcm9wem9u
ZS5pc0VtcHR5KCkpDQorICAgICAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4geyBnZXRBdHRyaWJ1
dGUoZHJvcHpvbmVBdHRyKSB9Ow0KKw0KKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4geyBnZXRB
dHRyaWJ1dGUod2Via2l0ZHJvcHpvbmVBdHRyKSB9Ow0KIH0NCiAgICAgDQogYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpleHBvc2VzVGl0bGVVSUVsZW1lbnQoKSBjb25zdA0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398551</attachid>
            <date>2020-05-05 14:25:55 -0700</date>
            <delta_ts>2020-05-05 15:28:47 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>22447</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZmM4ZGMwMTE5MDkuLmQ1ZTM5ODQ5MWNmIDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA1ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDUtMDUgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFsgTWFjIF0gZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5odG1sIGlzIGZs
YWt5IGZhaWxpbmcuDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
ZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw
MDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0wLDAgKzEsMjEgQEANCitU
aGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3Rp
ZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLg0KKw0KK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQgc3F1YXJlIG9udG8gbWUu
DQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0YXJnZXQ6DQorDQorU3F1
YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
J2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSBpcyB0cnVlDQorUEFT
UyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2Ryb3BUYXJn
ZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMgZmFsc2UNCitUYXJnZXQg
aXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitUYXJnZXQgaXMgZ3JhYmJl
ZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVyIGRyYWc6IDENCitBWERy
YWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWQN
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZw0KaW5kZXggMjkxZTAwNjk4NmIuLjJlN2M1MDRlMTM1IDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBA
IC0xLDMgKzEsNDkgQEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBh
cHBsZS5jb20+DQorDQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRN
TCA1LjEgRHJhZyAmIERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisN
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAgU3VwcG9ydCBI
VE1MNSBkcmFnIGFuZCBkcm9wLiBTdXBwb3J0IGRyb3B6b25lIGF0dHJpYnV0ZS4NCisgICAgICAg
IEFkZCBuZXcgbm90aWZpY2F0aW9ucyBmb3IgVm9pY2VPdmVyIHRvIGNvbnN1bWUuDQorDQorICAg
ICAgICBJdCBhcHBlYXJzIHRoYXQgbW9zdCBvZiB0aGUgZHJhZ2dpbmcgdGVzdHMgYXJlIHNraXBw
ZWQgYmVjYXVzZSBvZiBldmVudFNlbmRlciBpc3N1ZXMuDQorICAgICAgICBJIHRoaW5rIHRoaXMg
dGVzdCBjb3VsZCBkbyBhIGxpdHRsZSBtb3JlIGlmIHRob3NlIGlzc3VlcyB3ZXJlIHJlc29sdmVk
LiBTcGVjaWZpY2FsbHksIG5vdCBhbGwNCisgICAgICAgIHRoZSBub3RpZmljYXRpb25zIGFyZSBz
ZWVuIHRoYXQgYXJlIGV4cGVjdGVkLg0KKw0KKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9t
YWMvZHJhZ2dhYmxlLmh0bWwNCisNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBQXR0
cmlidXRlcyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6
aXNBWEhpZGRlbiBjb25zdCk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJ
bnRlcmZhY2UuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0Ryb3BwaW5nIGNvbnN0KToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0RyYWdnaW5nIGNvbnN0KToNCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0dyYWJiZWQpOg0KKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZURyb3BFZmZlY3RzKToN
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0FS
SUFEcm9wcGluZyBjb25zdCk6IERlbGV0ZWQuDQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcgY29uc3QpOiBEZWxldGVkLg0K
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzQVJJQUdyYWJi
ZWQpOiBEZWxldGVkLg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmRldGVybWluZUFSSUFEcm9wRWZmZWN0cyk6IERlbGV0ZWQuDQorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YSk6DQorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoNCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToNCisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bToNCisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFkZGl0aW9uYWxB
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXNdKToNCisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToNCisgICAgICAg
ICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46DQorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5k
bGVyLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2
ZW50KToNCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRyYWdnaW5nRWxlbWVudCBj
b25zdCk6DQorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6DQorDQogMjAyMC0wNS0wNSAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+DQogDQogICAgICAgICBGYWN0b3IgUmVu
ZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVFdmVudFJlZ2lvbiBza2lwIGNvbmRpdGlvbnMgaW50byBh
IGxhbWJkYQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgN
CmluZGV4IGEzMGQyYTkxNTE2Li40NmJkZjQxYmVmNyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KQEAgLTMwMyw3ICszMDMsMTIgQEAgcHVibGlj
Og0KICAgICAgICAgQVhSZXF1aXJlZFN0YXR1c0NoYW5nZWQsDQogICAgICAgICBBWFRleHRDaGFu
Z2VkLA0KICAgICAgICAgQVhBcmlhQXR0cmlidXRlQ2hhbmdlZCwNCi0gICAgICAgIEFYRWxlbWVu
dEJ1c3lDaGFuZ2VkDQorICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdlZCwNCisgICAgICAgIEFY
RHJhZ2dpbmdTdGFydGVkLA0KKyAgICAgICAgQVhEcmFnZ2luZ0VuZGVkLA0KKyAgICAgICAgQVhE
cmFnZ2luZ0VudGVyZWREcm9wWm9uZSwNCisgICAgICAgIEFYRHJhZ2dpbmdEcm9wcGVkLA0KKyAg
ICAgICAgQVhEcmFnZ2luZ0V4aXRlZERyb3Bab25lDQogICAgIH07DQogDQogICAgIHZvaWQgcG9z
dE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9
IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsNCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0K
aW5kZXggNDBlYTVmZWFlMTIuLjFmN2E3NjYwNzg1IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KQEAgLTI1MzQsOCAr
MjUzNCw4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBQXR0cmlidXRl
cygpIGNvbnN0DQogew0KICAgICAvLyBUaGlzIHJldHVybnMgd2hldGhlciB0aGUgZWxlbWVudCBz
dXBwb3J0cyBhbnkgZ2xvYmFsIEFSSUEgYXR0cmlidXRlcy4NCiAgICAgcmV0dXJuIHN1cHBvcnRz
TGl2ZVJlZ2lvbigpDQotICAgICAgICB8fCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpDQotICAgICAg
ICB8fCBzdXBwb3J0c0FSSUFEcm9wcGluZygpDQorICAgICAgICB8fCBzdXBwb3J0c0RyYWdnaW5n
KCkNCisgICAgICAgIHx8IHN1cHBvcnRzRHJvcHBpbmcoKQ0KICAgICAgICAgfHwgc3VwcG9ydHNB
UklBT3ducygpDQogICAgICAgICB8fCBoYXNBdHRyaWJ1dGUoYXJpYV9hdG9taWNBdHRyKQ0KICAg
ICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYnVzeUF0dHIpDQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaA0KaW5kZXggZjUzZDY5Yjdj
MzMuLmM3ZTQyMWEwZTc1IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oDQpAQCAtMzI3LDExICszMjcsMTEgQEAgcHVibGljOg0K
ICAgICBpbnQgcG9zSW5TZXQoKSBjb25zdCBvdmVycmlkZTsNCiANCiAgICAgLy8gQVJJQSBkcmFn
IGFuZCBkcm9wDQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQ0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCi0gICAgYm9vbCBpc0FSSUFHcmFiYmVkKCkg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBzdXBwb3J0c0Ryb3BwaW5nKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBzdXBwb3J0c0RyYWdn
aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBpc0dyYWJi
ZWQoKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KICAgICB2b2lkIHNldEFSSUFHcmFiYmVk
KGJvb2wpIG92ZXJyaWRlIHsgfQ0KLSAgICBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJv
cEVmZmVjdHMoKSBvdmVycmlkZSB7IHJldHVybiB7IH07IH0NCisgICAgVmVjdG9yPFN0cmluZz4g
ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBvdmVycmlkZSB7IHJldHVybiB7IH07IH0NCiANCiAgICAg
Ly8gQ2FsbGVkIG9uIHRoZSByb290IEFYIG9iamVjdCB0byByZXR1cm4gdGhlIGRlZXBlc3QgYXZh
aWxhYmxlIGVsZW1lbnQuDQogICAgIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3Qo
Y29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9DQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3RJbnRlcmZhY2UuaA0KaW5kZXggMWM4ODk1OGVkYmUuLmY4ZDZhZWM4ZDQwIDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50
ZXJmYWNlLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oDQpAQCAtNzU2LDExICs3NTYsMTEgQEAgcHVibGljOg0KICAgICB2
aXJ0dWFsIGludCBwb3NJblNldCgpIGNvbnN0ID0gMDsNCiANCiAgICAgLy8gQVJJQSBkcmFnIGFu
ZCBkcm9wDQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0ID0g
MDsNCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3QgPSAwOw0K
LSAgICB2aXJ0dWFsIGJvb2wgaXNBUklBR3JhYmJlZCgpID0gMDsNCisgICAgdmlydHVhbCBib29s
IHN1cHBvcnRzRHJvcHBpbmcoKSBjb25zdCA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c0RyYWdnaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgaXNHcmFiYmVkKCkgPSAw
Ow0KICAgICB2aXJ0dWFsIHZvaWQgc2V0QVJJQUdyYWJiZWQoYm9vbCkgPSAwOw0KLSAgICB2aXJ0
dWFsIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpID0gMDsNCisgICAg
dmlydHVhbCBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpID0gMDsNCiANCiAg
ICAgLy8gQ2FsbGVkIG9uIHRoZSByb290IEFYIG9iamVjdCB0byByZXR1cm4gdGhlIGRlZXBlc3Qg
YXZhaWxhYmxlIGVsZW1lbnQuDQogICAgIHZpcnR1YWwgQVhDb3JlT2JqZWN0KiBhY2Nlc3NpYmls
aXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsNCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cA0KaW5kZXggMjYyYjI5YzljNWIuLjgzYzk1MDdmN2RhIDEwMDY0NA0KLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcA0KKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cA0KQEAgLTEwNDAsMzMgKzEwNDAsNDMgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpoYXNQb3B1cCgpIGNvbnN0DQogICAgIH0pOw0KIH0NCiANCi1ib29sIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3QgDQorYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0Ryb3BwaW5nKCkgY29uc3QgDQogew0KLSAgICBj
b25zdCBBdG9tU3RyaW5nJiBkcm9wRWZmZWN0ID0gZ2V0QXR0cmlidXRlKGFyaWFfZHJvcGVmZmVj
dEF0dHIpOw0KLSAgICByZXR1cm4gIWRyb3BFZmZlY3QuaXNFbXB0eSgpOw0KKyAgICByZXR1cm4g
IWdldEF0dHJpYnV0ZShhcmlhX2Ryb3BlZmZlY3RBdHRyKS5pc0VtcHR5KCkgfHwgIWdldEF0dHJp
YnV0ZShkcmFnZ2FibGVBdHRyKS5pc0VtcHR5KCk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdA0KK2Jvb2wgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0DQogew0KICAgICBj
b25zdCBBdG9tU3RyaW5nJiBncmFiYmVkID0gZ2V0QXR0cmlidXRlKGFyaWFfZ3JhYmJlZEF0dHIp
Ow0KLSAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgInRy
dWUiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAiZmFsc2UiKTsN
CisgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdyYWJiZWQsICJ0cnVl
IikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgImZhbHNlIikNCisg
ICAgfHwgKGlzPEhUTUxFbGVtZW50PihlbGVtZW50KCkpICYmIGRvd25jYXN0PEhUTUxFbGVtZW50
Pihub2RlKCkpLT5kcmFnZ2FibGUoKSk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6aXNBUklBR3JhYmJlZCgpDQorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
Ojppc0dyYWJiZWQoKQ0KIHsNCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkNCisgICAgaWYgKG1h
aW5GcmFtZSgpICYmIG1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS5kcmFnZ2luZ0VsZW1lbnQo
KSA9PSBlbGVtZW50KCkpDQorICAgICAgICByZXR1cm4gdHJ1ZTsNCisjZW5kaWYNCisNCiAgICAg
cmV0dXJuIGVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShhcmlhX2dyYWJiZWRBdHRyKTsNCiB9DQogDQot
VmVjdG9yPFN0cmluZz4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQVJJQURy
b3BFZmZlY3RzKCkNCitWZWN0b3I8U3RyaW5nPiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpk
ZXRlcm1pbmVEcm9wRWZmZWN0cygpDQogew0KKyAgICAvLyBPcmRlciBpcyBhcmlhLWRyb3BlZmZl
Y3QsIGRyb3B6b25lLCB3ZWJraXRkcm9wem9uZQ0KICAgICBjb25zdCBBdG9tU3RyaW5nJiBkcm9w
RWZmZWN0cyA9IGdldEF0dHJpYnV0ZShhcmlhX2Ryb3BlZmZlY3RBdHRyKTsNCi0gICAgaWYgKGRy
b3BFZmZlY3RzLmlzRW1wdHkoKSkgew0KLSAgICAgICAgcmV0dXJuIHsgfTsNCisgICAgaWYgKCFk
cm9wRWZmZWN0cy5pc0VtcHR5KCkpIHsNCisgICAgICAgIFN0cmluZyBkcm9wRWZmZWN0c1N0cmlu
ZyA9IGRyb3BFZmZlY3RzLnN0cmluZygpOw0KKyAgICAgICAgZHJvcEVmZmVjdHNTdHJpbmcucmVw
bGFjZSgnXG4nLCAnICcpOw0KKyAgICAgICAgcmV0dXJuIGRyb3BFZmZlY3RzU3RyaW5nLnNwbGl0
KCcgJyk7DQogICAgIH0NCiAgICAgDQotICAgIFN0cmluZyBkcm9wRWZmZWN0c1N0cmluZyA9IGRy
b3BFZmZlY3RzLnN0cmluZygpOw0KLSAgICBkcm9wRWZmZWN0c1N0cmluZy5yZXBsYWNlKCdcbics
ICcgJyk7DQotICAgIHJldHVybiBkcm9wRWZmZWN0c1N0cmluZy5zcGxpdCgnICcpOw0KKyAgICBh
dXRvIGRyb3B6b25lID0gZ2V0QXR0cmlidXRlKGRyb3B6b25lQXR0cik7DQorICAgIGlmICghZHJv
cHpvbmUuaXNFbXB0eSgpKQ0KKyAgICAgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+IHsgZ2V0QXR0
cmlidXRlKGRyb3B6b25lQXR0cikgfTsNCisgICAgDQorICAgIHJldHVybiBWZWN0b3I8U3RyaW5n
PiB7IGdldEF0dHJpYnV0ZSh3ZWJraXRkcm9wem9uZUF0dHIpIH07DQogfQ0KICAgICANCiBib29s
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmV4cG9zZXNUaXRsZVVJRWxlbWVudCgpIGNvbnN0
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuaA0KaW5kZXggN2VjZjA0YWEwNGUuLjE4OTRmODYyMDk1IDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5oDQpAQCAtMTcxLDEwICsxNzEsMTAgQEAgcHVibGljOg0KICAgICBib29sIGlz
VmlzaWJsZVBvc2l0aW9uUmFuZ2VJbkRpZmZlcmVudERvY3VtZW50KGNvbnN0IFZpc2libGVQb3Np
dGlvblJhbmdlJikgY29uc3Q7DQogICAgIGJvb2wgaGFzUG9wdXAoKSBjb25zdCBvdmVycmlkZTsN
CiANCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IG92ZXJyaWRlOw0KLSAg
ICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGU7DQotICAgIGJvb2wg
aXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlOw0KLSAgICBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVB
UklBRHJvcEVmZmVjdHMoKSBvdmVycmlkZTsNCisgICAgYm9vbCBzdXBwb3J0c0Ryb3BwaW5nKCkg
Y29uc3Qgb3ZlcnJpZGU7DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0IG92ZXJy
aWRlOw0KKyAgICBib29sIGlzR3JhYmJlZCgpIG92ZXJyaWRlOw0KKyAgICBWZWN0b3I8U3RyaW5n
PiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpIG92ZXJyaWRlOw0KICAgICANCiAgICAgVmlzaWJsZVBv
c2l0aW9uIHZpc2libGVQb3NpdGlvbkZvclBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3Qgb3Zl
cnJpZGU7DQogICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleCh1bnNp
Z25lZCBpbmRleFZhbHVlLCBib29sIGxhc3RJbmRleE9LKSBjb25zdCBvdmVycmlkZTsNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuY3BwDQppbmRleCA3ODkwOTA5YTgyZC4uZjUwY2M2Y2E5ODMgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHANCkBAIC0xNzIsMTAgKzE3MiwxMCBAQCB2b2lk
IEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9iamVjdCYg
b2JqZWN0LCBib29sIGlzUm9vdA0KICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3Vw
cG9ydHNQb3NJblNldCwgb2JqZWN0LnN1cHBvcnRzUG9zSW5TZXQoKSk7DQogICAgIHNldFByb3Bl
cnR5KEFYUHJvcGVydHlOYW1lOjpTZXRTaXplLCBvYmplY3Quc2V0U2l6ZSgpKTsNCiAgICAgc2V0
UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlBvc0luU2V0LCBvYmplY3QucG9zSW5TZXQoKSk7DQot
ICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0FSSUFEcm9wcGluZywgb2Jq
ZWN0LnN1cHBvcnRzQVJJQURyb3BwaW5nKCkpOw0KLSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5
TmFtZTo6U3VwcG9ydHNBUklBRHJhZ2dpbmcsIG9iamVjdC5zdXBwb3J0c0FSSUFEcmFnZ2luZygp
KTsNCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzQVJJQUdyYWJiZWQsIG9iamVj
dC5pc0FSSUFHcmFiYmVkKCkpOw0KLSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6QVJJ
QURyb3BFZmZlY3RzLCBvYmplY3QuZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkpOw0KKyAgICBz
ZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNEcm9wcGluZywgb2JqZWN0LnN1cHBv
cnRzRHJvcHBpbmcoKSk7DQorICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0
c0RyYWdnaW5nLCBvYmplY3Quc3VwcG9ydHNEcmFnZ2luZygpKTsNCisgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OklzR3JhYmJlZCwgb2JqZWN0LmlzR3JhYmJlZCgpKTsNCisgICAgc2V0
UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkRyb3BFZmZlY3RzLCBvYmplY3QuZGV0ZXJtaW5lRHJv
cEVmZmVjdHMoKSk7DQogICAgIHNldE9iamVjdFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpUaXRs
ZVVJRWxlbWVudCwgb2JqZWN0LnRpdGxlVUlFbGVtZW50KCkpOw0KICAgICBzZXRQcm9wZXJ0eShB
WFByb3BlcnR5TmFtZTo6RXhwb3Nlc1RpdGxlVUlFbGVtZW50LCBvYmplY3QuZXhwb3Nlc1RpdGxl
VUlFbGVtZW50KCkpOw0KICAgICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6VmVy
dGljYWxTY3JvbGxCYXIsIG9iamVjdC5zY3JvbGxCYXIoQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9u
OjpWZXJ0aWNhbCkpOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KaW5kZXggMWM5MzZmZGEyNmEu
LjRjOTAyZWZlMGExIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCkBAIC04OSw3ICs4OSw3
IEBAIHByaXZhdGU6DQogICAgICAgICBBdXRvQ29tcGxldGVWYWx1ZSwNCiAgICAgICAgIEFSSUFD
b250cm9sc0VsZW1lbnRzLA0KICAgICAgICAgQVJJQURldGFpbHNFbGVtZW50cywNCi0gICAgICAg
IEFSSUFEcm9wRWZmZWN0cywNCisgICAgICAgIERyb3BFZmZlY3RzLA0KICAgICAgICAgQVJJQUVy
cm9yTWVzc2FnZUVsZW1lbnRzLA0KICAgICAgICAgQVJJQUlzTXVsdGlsaW5lLA0KICAgICAgICAg
QVJJQUZsb3dUb0VsZW1lbnRzLA0KQEAgLTE2MSw3ICsxNjEsNyBAQCBwcml2YXRlOg0KICAgICAg
ICAgSXNBY2Nlc3NpYmlsaXR5SWdub3JlZCwNCiAgICAgICAgIElzQWN0aXZlRGVzY2VuZGFudE9m
Rm9jdXNlZENvbnRhaW5lciwNCiAgICAgICAgIElzQW5vbnltb3VzTWF0aE9wZXJhdG9yLA0KLSAg
ICAgICAgSXNBUklBR3JhYmJlZCwNCisgICAgICAgIElzR3JhYmJlZCwNCiAgICAgICAgIElzQVJJ
QVRyZWVHcmlkUm93LA0KICAgICAgICAgSXNBdHRhY2htZW50LA0KICAgICAgICAgSXNCdXR0b24s
DQpAQCAtMjk5LDggKzI5OSw4IEBAIHByaXZhdGU6DQogICAgICAgICBTcGVha0FzLA0KICAgICAg
ICAgU3BlZWNoSGludCwNCiAgICAgICAgIFN0cmluZ1ZhbHVlLA0KLSAgICAgICAgU3VwcG9ydHNB
UklBRHJhZ2dpbmcsDQotICAgICAgICBTdXBwb3J0c0FSSUFEcm9wcGluZywNCisgICAgICAgIFN1
cHBvcnRzRHJhZ2dpbmcsDQorICAgICAgICBTdXBwb3J0c0Ryb3BwaW5nLA0KICAgICAgICAgU3Vw
cG9ydHNBUklBT3ducywNCiAgICAgICAgIFN1cHBvcnRzQ3VycmVudCwNCiAgICAgICAgIFN1cHBv
cnRzRGF0ZXRpbWVBdHRyaWJ1dGUsDQpAQCAtNTA0LDEwICs1MDQsMTAgQEAgcHJpdmF0ZToNCiAg
ICAgYm9vbCBzdXBwb3J0c1Bvc0luU2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0
dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c1Bvc0luU2V0KTsgfQ0KICAgICBp
bnQgc2V0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGludEF0dHJpYnV0ZVZhbHVlKEFY
UHJvcGVydHlOYW1lOjpTZXRTaXplKTsgfQ0KICAgICBpbnQgcG9zSW5TZXQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBpbnRBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6UG9zSW5TZXQp
OyB9DQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJQURyb3Bw
aW5nKTsgfQ0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0FSSUFE
cmFnZ2luZyk7IH0NCi0gICAgYm9vbCBpc0FSSUFHcmFiYmVkKCkgb3ZlcnJpZGUgeyByZXR1cm4g
Ym9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc0FSSUFHcmFiYmVkKTsgfQ0KLSAg
ICBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSBvdmVycmlkZSB7IHJl
dHVybiB2ZWN0b3JBdHRyaWJ1dGVWYWx1ZTxTdHJpbmc+KEFYUHJvcGVydHlOYW1lOjpBUklBRHJv
cEVmZmVjdHMpOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNEcm9w
cGluZyk7IH0NCisgICAgYm9vbCBzdXBwb3J0c0RyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0RyYWdnaW5n
KTsgfQ0KKyAgICBib29sIGlzR3JhYmJlZCgpIG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1
dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNHcmFiYmVkKTsgfQ0KKyAgICBWZWN0b3I8U3RyaW5n
PiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpIG92ZXJyaWRlIHsgcmV0dXJuIHZlY3RvckF0dHJpYnV0
ZVZhbHVlPFN0cmluZz4oQVhQcm9wZXJ0eU5hbWU6OkRyb3BFZmZlY3RzKTsgfQ0KICAgICBBWENv
cmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JikgY29uc3Qgb3Zl
cnJpZGU7DQogICAgIEFYQ29yZU9iamVjdCogZm9jdXNlZFVJRWxlbWVudCgpIGNvbnN0IG92ZXJy
aWRlOw0KICAgICBBWENvcmVPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHBhcmVudE9iamVjdFVuaWdub3JlZCgpOyB9DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0NCmluZGV4IDRmZWRmYTU2
ZTM2Li44ZWVkMDEwMjhjNCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0NCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0NCkBAIC05Niw2ICs5NiwzMCBAQA0KICNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUgQCJBWFNl
bGVjdGVkVGV4dE1hcmtlclJhbmdlIg0KICNlbmRpZg0KIA0KKyNpZm5kZWYga0FYRHJhZ2dpbmdT
b3VyY2VEcmFnQmVnYW5Ob3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5nU291cmNlRHJh
Z0JlZ2FuTm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuIikNCisj
ZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVkTm90aWZpY2F0aW9u
DQorI2RlZmluZSBrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5vdGlmaWNhdGlvbiBDRlNUUigi
QVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhEcmFn
Z2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdn
aW5nRGVzdGluYXRpb25Ecm9wQWxsb3dlZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ0Rl
c3RpbmF0aW9uRHJvcEFsbG93ZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyb3BOb3RBbGxvd2VkTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2lu
Z0Rlc3RpbmF0aW9uRHJvcE5vdEFsbG93ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyb3BOb3RBbGxvd2VkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdn
aW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdn
aW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyYWdBY2NlcHRlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhEcmFnZ2lu
Z0Rlc3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhEcmFn
Z2luZ0Rlc3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkTm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdn
aW5nRGVzdGluYXRpb25EcmFnTm90QWNjZXB0ZWQiKQ0KKyNlbmRpZg0KKw0KIC8vIFZlcnkgbGFy
Z2Ugc3RyaW5ncyBjYW4gbmVnYXRpdmVseSBpbXBhY3QgdGhlIHBlcmZvcm1hbmNlIG9mIG5vdGlm
aWNhdGlvbnMsIHNvIHRoaXMgbGVuZ3RoIGlzIGNob3NlbiB0byB0cnkgdG8gZml0IGFuIGF2ZXJh
Z2UgcGFyYWdyYXBoIG9yIGxpbmUgb2YgdGV4dCwgYnV0IG5vdCBhbGxvdyBzdHJpbmdzIHRvIGJl
IGxhcmdlIGVub3VnaCB0byBodXJ0IHBlcmZvcm1hbmNlLg0KIHN0YXRpYyBjb25zdCBOU1VJbnRl
Z2VyIEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsNCiANCkBAIC0zNTMsNiAr
Mzc3LDIxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFY
Q29yZU9iamVjdCogb2JqLCBBWE5vdGlmaWNhdGlvbiBuDQogICAgICAgICBjYXNlIEFYTWVudU9w
ZW5lZDoNCiAgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYTWVudU9wZW5lZE5v
dGlmaWNhdGlvbjsNCiAgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2lu
Z1N0YXJ0ZWQ6DQorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWERyYWdnaW5n
U291cmNlRHJhZ0JlZ2FuTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAg
ICAgY2FzZSBBWERyYWdnaW5nRW5kZWQ6DQorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0g
KGlkKWtBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVkTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAg
IGJyZWFrOw0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5nRW50ZXJlZERyb3Bab25lOg0KKyAgICAg
ICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcEFs
bG93ZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlIEFY
RHJhZ2dpbmdEcm9wcGVkOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhE
cmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAg
IGJyZWFrOw0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5nRXhpdGVkRHJvcFpvbmU6DQorICAgICAg
ICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWERyYWdnaW5nRGVzdGluYXRpb25EcmFnTm90
QWNjZXB0ZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICBkZWZh
dWx0Og0KICAgICAgICAgICAgIHJldHVybjsNCiAgICAgfQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMubW0NCmluZGV4IGYxYjhhZGI0YWFhLi45MjBkMmM0ZWRkOCAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyTWFjLm1tDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KQEAgLTEzNTAsMTAgKzEzNTAs
MTAgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5EDQogICAgICAgICB8fCBi
YWNraW5nT2JqZWN0LT5pc1Rvb2xiYXIoKSkNCiAgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVj
dDpOU0FjY2Vzc2liaWxpdHlPcmllbnRhdGlvbkF0dHJpYnV0ZV07DQogDQotICAgIGlmIChiYWNr
aW5nT2JqZWN0LT5zdXBwb3J0c0FSSUFEcmFnZ2luZygpKQ0KKyAgICBpZiAoYmFja2luZ09iamVj
dC0+c3VwcG9ydHNEcmFnZ2luZygpKQ0KICAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5T
QWNjZXNzaWJpbGl0eUdyYWJiZWRBdHRyaWJ1dGVdOw0KIA0KLSAgICBpZiAoYmFja2luZ09iamVj
dC0+c3VwcG9ydHNBUklBRHJvcHBpbmcoKSkNCisgICAgaWYgKGJhY2tpbmdPYmplY3QtPnN1cHBv
cnRzRHJvcHBpbmcoKSkNCiAgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2li
aWxpdHlEcm9wRWZmZWN0c0F0dHJpYnV0ZV07DQogDQogICAgIGlmIChiYWNraW5nT2JqZWN0LT5p
c1RhYmxlKCkgJiYgYmFja2luZ09iamVjdC0+aXNFeHBvc2FibGUoKSAmJiBiYWNraW5nT2JqZWN0
LT5zdXBwb3J0c1NlbGVjdGVkUm93cygpKQ0KQEAgLTI5MTcsMTAgKzI5MTcsMTAgQEAgQUxMT1df
REVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5EDQogICAgICAgICByZXR1cm4gQChiYWNraW5n
T2JqZWN0LT5zZXRTaXplKCkpOw0KIA0KICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRv
U3RyaW5nOk5TQWNjZXNzaWJpbGl0eUdyYWJiZWRBdHRyaWJ1dGVdKQ0KLSAgICAgICAgcmV0dXJu
IFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpiYWNraW5nT2JqZWN0LT5pc0FSSUFHcmFiYmVkKCld
Ow0KKyAgICAgICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpiYWNraW5nT2JqZWN0
LT5pc0dyYWJiZWQoKV07DQogDQogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJp
bmc6TlNBY2Nlc3NpYmlsaXR5RHJvcEVmZmVjdHNBdHRyaWJ1dGVdKQ0KLSAgICAgICAgcmV0dXJu
IGNyZWF0ZU5TQXJyYXkoYmFja2luZ09iamVjdC0+ZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkp
LmF1dG9yZWxlYXNlKCk7DQorICAgICAgICByZXR1cm4gY3JlYXRlTlNBcnJheShiYWNraW5nT2Jq
ZWN0LT5kZXRlcm1pbmVEcm9wRWZmZWN0cygpKS5hdXRvcmVsZWFzZSgpOw0KIA0KICAgICBpZiAo
W2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVBsYWNlaG9sZGVy
VmFsdWVBdHRyaWJ1dGVdKQ0KICAgICAgICAgcmV0dXJuIGJhY2tpbmdPYmplY3QtPnBsYWNlaG9s
ZGVyVmFsdWUoKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1
dGVOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluDQpp
bmRleCBkY2Q4Mzc4ZDk1NC4uY2IzMDQ5MDQwODkgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbg0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXR0cmlidXRlTmFtZXMuaW4NCkBAIC0xMjEsNiArMTIxLDcgQEAgZGlzYWJsZXJlbW90ZXBs
YXliYWNrDQogZGlzcG9zaXRpb24NCiBkb3dubG9hZA0KIGRyYWdnYWJsZQ0KK2Ryb3B6b25lDQog
d2Via2l0ZHJvcHpvbmUNCiBlbmN0eXBlDQogZW5kDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwDQppbmRleCA3YmE5NmFjYzUyMC4uY2NkMDIxZWE5Y2EgMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcA0KQEAgLTIyODIsOSArMjI4MiwyOCBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFbGVt
ZW50JiBkcmFnVA0KICAgICAgICAgZXZlbnQubW9kaWZpZXJzKCksIDAsIDAsIG51bGxwdHIsIGV2
ZW50LmZvcmNlKCksIE5vVGFwLCAmZGF0YVRyYW5zZmVyKTsNCiANCiAgICAgZHJhZ1RhcmdldC5k
aXNwYXRjaEV2ZW50KGRyYWdFdmVudCk7DQorDQorICAgIGlmIChhdXRvKiBjYWNoZSA9IG1fZnJh
bWUuZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsNCisgICAgICAgIGlmIChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRyYWdzdGFydEV2ZW50KQ0KKyAgICAgICAgICAgIGNh
Y2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVjdENhY2hlOjpBWERyYWdn
aW5nU3RhcnRlZCk7DQorICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygp
LmRyYWdlbmRFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbigmZHJh
Z1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0VuZGVkKTsNCisgICAgICAgIGVsc2Ug
aWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQpDQorICAgICAgICAg
ICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFY
RHJhZ2dpbmdFbnRlcmVkRHJvcFpvbmUpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09
IGV2ZW50TmFtZXMoKS5kcmFnbGVhdmVFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5v
dGlmaWNhdGlvbigmZHJhZ1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0V4aXRlZERy
b3Bab25lKTsNCisgICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJv
cEV2ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0
LCBBWE9iamVjdENhY2hlOjpBWERyYWdnaW5nRHJvcHBlZCk7DQorICAgIH0NCisNCiAgICAgcmV0
dXJuIGRyYWdFdmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOw0KIH0NCiANCitFbGVtZW50KiBFdmVu
dEhhbmRsZXI6OmRyYWdnaW5nRWxlbWVudCgpIGNvbnN0DQorew0KKyAgICByZXR1cm4gZHJhZ1N0
YXRlKCkuc291cmNlLmdldCgpOw0KK30NCisNCiBzdGF0aWMgYm9vbCB0YXJnZXRJc0ZyYW1lKE5v
ZGUqIHRhcmdldCwgRnJhbWUqJiBmcmFtZSkNCiB7DQogICAgIGlmICghaXM8SFRNTEZyYW1lRWxl
bWVudEJhc2U+KHRhcmdldCkpDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgNCmluZGV4IDVi
NDY0NDBlMjhhLi5iODZmMWUwMmE4MyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgN
CkBAIC0zMzksNiArMzM5LDkgQEAgcHVibGljOg0KIA0KICAgICBXRUJDT1JFX0VYUE9SVCBPcHRp
b25hbDxDdXJzb3I+IHNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiwgYm9vbCBzaGlm
dEtleSk7DQogDQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpDQorICAgIEVsZW1lbnQqIGRyYWdn
aW5nRWxlbWVudCgpIGNvbnN0Ow0KKyNlbmRpZg0KIHByaXZhdGU6DQogI2lmIEVOQUJMRShEUkFH
X1NVUFBPUlQpDQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOw==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398559</attachid>
            <date>2020-05-05 15:28:47 -0700</date>
            <delta_ts>2020-05-05 16:37:27 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>23381</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZmM4ZGMwMTE5MDkuLmQ1ZTM5ODQ5MWNmIDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA1ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDUtMDUgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFsgTWFjIF0gZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5odG1sIGlzIGZs
YWt5IGZhaWxpbmcuDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
ZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw
MDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0wLDAgKzEsMjEgQEANCitU
aGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3Rp
ZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLg0KKw0KK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQgc3F1YXJlIG9udG8gbWUu
DQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0YXJnZXQ6DQorDQorU3F1
YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
J2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSBpcyB0cnVlDQorUEFT
UyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2Ryb3BUYXJn
ZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMgZmFsc2UNCitUYXJnZXQg
aXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitUYXJnZXQgaXMgZ3JhYmJl
ZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVyIGRyYWc6IDENCitBWERy
YWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWQN
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZw0KaW5kZXggMjkxZTAwNjk4NmIuLjJlN2M1MDRlMTM1IDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBA
IC0xLDMgKzEsNDkgQEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBh
cHBsZS5jb20+DQorDQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRN
TCA1LjEgRHJhZyAmIERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisN
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAgU3VwcG9ydCBI
VE1MNSBkcmFnIGFuZCBkcm9wLiBTdXBwb3J0IGRyb3B6b25lIGF0dHJpYnV0ZS4NCisgICAgICAg
IEFkZCBuZXcgbm90aWZpY2F0aW9ucyBmb3IgVm9pY2VPdmVyIHRvIGNvbnN1bWUuDQorDQorICAg
ICAgICBJdCBhcHBlYXJzIHRoYXQgbW9zdCBvZiB0aGUgZHJhZ2dpbmcgdGVzdHMgYXJlIHNraXBw
ZWQgYmVjYXVzZSBvZiBldmVudFNlbmRlciBpc3N1ZXMuDQorICAgICAgICBJIHRoaW5rIHRoaXMg
dGVzdCBjb3VsZCBkbyBhIGxpdHRsZSBtb3JlIGlmIHRob3NlIGlzc3VlcyB3ZXJlIHJlc29sdmVk
LiBTcGVjaWZpY2FsbHksIG5vdCBhbGwNCisgICAgICAgIHRoZSBub3RpZmljYXRpb25zIGFyZSBz
ZWVuIHRoYXQgYXJlIGV4cGVjdGVkLg0KKw0KKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9t
YWMvZHJhZ2dhYmxlLmh0bWwNCisNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBQXR0
cmlidXRlcyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6
aXNBWEhpZGRlbiBjb25zdCk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJ
bnRlcmZhY2UuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0Ryb3BwaW5nIGNvbnN0KToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0RyYWdnaW5nIGNvbnN0KToNCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0dyYWJiZWQpOg0KKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZURyb3BFZmZlY3RzKToN
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0FS
SUFEcm9wcGluZyBjb25zdCk6IERlbGV0ZWQuDQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcgY29uc3QpOiBEZWxldGVkLg0K
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzQVJJQUdyYWJi
ZWQpOiBEZWxldGVkLg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmRldGVybWluZUFSSUFEcm9wRWZmZWN0cyk6IERlbGV0ZWQuDQorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YSk6DQorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoNCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToNCisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bToNCisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFkZGl0aW9uYWxB
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXNdKToNCisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToNCisgICAgICAg
ICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46DQorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5k
bGVyLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2
ZW50KToNCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRyYWdnaW5nRWxlbWVudCBj
b25zdCk6DQorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6DQorDQogMjAyMC0wNS0wNSAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+DQogDQogICAgICAgICBGYWN0b3IgUmVu
ZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVFdmVudFJlZ2lvbiBza2lwIGNvbmRpdGlvbnMgaW50byBh
IGxhbWJkYQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgN
CmluZGV4IGEzMGQyYTkxNTE2Li40NmJkZjQxYmVmNyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KQEAgLTMwMyw3ICszMDMsMTIgQEAgcHVibGlj
Og0KICAgICAgICAgQVhSZXF1aXJlZFN0YXR1c0NoYW5nZWQsDQogICAgICAgICBBWFRleHRDaGFu
Z2VkLA0KICAgICAgICAgQVhBcmlhQXR0cmlidXRlQ2hhbmdlZCwNCi0gICAgICAgIEFYRWxlbWVu
dEJ1c3lDaGFuZ2VkDQorICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdlZCwNCisgICAgICAgIEFY
RHJhZ2dpbmdTdGFydGVkLA0KKyAgICAgICAgQVhEcmFnZ2luZ0VuZGVkLA0KKyAgICAgICAgQVhE
cmFnZ2luZ0VudGVyZWREcm9wWm9uZSwNCisgICAgICAgIEFYRHJhZ2dpbmdEcm9wcGVkLA0KKyAg
ICAgICAgQVhEcmFnZ2luZ0V4aXRlZERyb3Bab25lDQogICAgIH07DQogDQogICAgIHZvaWQgcG9z
dE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9
IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsNCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0K
aW5kZXggNDBlYTVmZWFlMTIuLjFmN2E3NjYwNzg1IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KQEAgLTI1MzQsOCAr
MjUzNCw4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBQXR0cmlidXRl
cygpIGNvbnN0DQogew0KICAgICAvLyBUaGlzIHJldHVybnMgd2hldGhlciB0aGUgZWxlbWVudCBz
dXBwb3J0cyBhbnkgZ2xvYmFsIEFSSUEgYXR0cmlidXRlcy4NCiAgICAgcmV0dXJuIHN1cHBvcnRz
TGl2ZVJlZ2lvbigpDQotICAgICAgICB8fCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpDQotICAgICAg
ICB8fCBzdXBwb3J0c0FSSUFEcm9wcGluZygpDQorICAgICAgICB8fCBzdXBwb3J0c0RyYWdnaW5n
KCkNCisgICAgICAgIHx8IHN1cHBvcnRzRHJvcHBpbmcoKQ0KICAgICAgICAgfHwgc3VwcG9ydHNB
UklBT3ducygpDQogICAgICAgICB8fCBoYXNBdHRyaWJ1dGUoYXJpYV9hdG9taWNBdHRyKQ0KICAg
ICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYnVzeUF0dHIpDQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaA0KaW5kZXggZjUzZDY5Yjdj
MzMuLmM3ZTQyMWEwZTc1IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oDQpAQCAtMzI3LDExICszMjcsMTEgQEAgcHVibGljOg0K
ICAgICBpbnQgcG9zSW5TZXQoKSBjb25zdCBvdmVycmlkZTsNCiANCiAgICAgLy8gQVJJQSBkcmFn
IGFuZCBkcm9wDQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQ0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCi0gICAgYm9vbCBpc0FSSUFHcmFiYmVkKCkg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBzdXBwb3J0c0Ryb3BwaW5nKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBzdXBwb3J0c0RyYWdn
aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBpc0dyYWJi
ZWQoKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KICAgICB2b2lkIHNldEFSSUFHcmFiYmVk
KGJvb2wpIG92ZXJyaWRlIHsgfQ0KLSAgICBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJv
cEVmZmVjdHMoKSBvdmVycmlkZSB7IHJldHVybiB7IH07IH0NCisgICAgVmVjdG9yPFN0cmluZz4g
ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBvdmVycmlkZSB7IHJldHVybiB7IH07IH0NCiANCiAgICAg
Ly8gQ2FsbGVkIG9uIHRoZSByb290IEFYIG9iamVjdCB0byByZXR1cm4gdGhlIGRlZXBlc3QgYXZh
aWxhYmxlIGVsZW1lbnQuDQogICAgIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3Qo
Y29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9DQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3RJbnRlcmZhY2UuaA0KaW5kZXggMWM4ODk1OGVkYmUuLmY4ZDZhZWM4ZDQwIDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50
ZXJmYWNlLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oDQpAQCAtNzU2LDExICs3NTYsMTEgQEAgcHVibGljOg0KICAgICB2
aXJ0dWFsIGludCBwb3NJblNldCgpIGNvbnN0ID0gMDsNCiANCiAgICAgLy8gQVJJQSBkcmFnIGFu
ZCBkcm9wDQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0ID0g
MDsNCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3QgPSAwOw0K
LSAgICB2aXJ0dWFsIGJvb2wgaXNBUklBR3JhYmJlZCgpID0gMDsNCisgICAgdmlydHVhbCBib29s
IHN1cHBvcnRzRHJvcHBpbmcoKSBjb25zdCA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c0RyYWdnaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgaXNHcmFiYmVkKCkgPSAw
Ow0KICAgICB2aXJ0dWFsIHZvaWQgc2V0QVJJQUdyYWJiZWQoYm9vbCkgPSAwOw0KLSAgICB2aXJ0
dWFsIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpID0gMDsNCisgICAg
dmlydHVhbCBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpID0gMDsNCiANCiAg
ICAgLy8gQ2FsbGVkIG9uIHRoZSByb290IEFYIG9iamVjdCB0byByZXR1cm4gdGhlIGRlZXBlc3Qg
YXZhaWxhYmxlIGVsZW1lbnQuDQogICAgIHZpcnR1YWwgQVhDb3JlT2JqZWN0KiBhY2Nlc3NpYmls
aXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsNCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cA0KaW5kZXggMjYyYjI5YzljNWIuLjgzYzk1MDdmN2RhIDEwMDY0NA0KLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcA0KKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cA0KQEAgLTEwNDAsMzMgKzEwNDAsNDMgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpoYXNQb3B1cCgpIGNvbnN0DQogICAgIH0pOw0KIH0NCiANCi1ib29sIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3QgDQorYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0Ryb3BwaW5nKCkgY29uc3QgDQogew0KLSAgICBj
b25zdCBBdG9tU3RyaW5nJiBkcm9wRWZmZWN0ID0gZ2V0QXR0cmlidXRlKGFyaWFfZHJvcGVmZmVj
dEF0dHIpOw0KLSAgICByZXR1cm4gIWRyb3BFZmZlY3QuaXNFbXB0eSgpOw0KKyAgICByZXR1cm4g
IWdldEF0dHJpYnV0ZShhcmlhX2Ryb3BlZmZlY3RBdHRyKS5pc0VtcHR5KCkgfHwgIWdldEF0dHJp
YnV0ZShkcmFnZ2FibGVBdHRyKS5pc0VtcHR5KCk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdA0KK2Jvb2wgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0DQogew0KICAgICBj
b25zdCBBdG9tU3RyaW5nJiBncmFiYmVkID0gZ2V0QXR0cmlidXRlKGFyaWFfZ3JhYmJlZEF0dHIp
Ow0KLSAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgInRy
dWUiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVkLCAiZmFsc2UiKTsN
CisgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdyYWJiZWQsICJ0cnVl
IikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwgImZhbHNlIikNCisg
ICAgfHwgKGlzPEhUTUxFbGVtZW50PihlbGVtZW50KCkpICYmIGRvd25jYXN0PEhUTUxFbGVtZW50
Pihub2RlKCkpLT5kcmFnZ2FibGUoKSk7DQogfQ0KIA0KLWJvb2wgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6aXNBUklBR3JhYmJlZCgpDQorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
Ojppc0dyYWJiZWQoKQ0KIHsNCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkNCisgICAgaWYgKG1h
aW5GcmFtZSgpICYmIG1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS5kcmFnZ2luZ0VsZW1lbnQo
KSA9PSBlbGVtZW50KCkpDQorICAgICAgICByZXR1cm4gdHJ1ZTsNCisjZW5kaWYNCisNCiAgICAg
cmV0dXJuIGVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShhcmlhX2dyYWJiZWRBdHRyKTsNCiB9DQogDQot
VmVjdG9yPFN0cmluZz4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQVJJQURy
b3BFZmZlY3RzKCkNCitWZWN0b3I8U3RyaW5nPiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpk
ZXRlcm1pbmVEcm9wRWZmZWN0cygpDQogew0KKyAgICAvLyBPcmRlciBpcyBhcmlhLWRyb3BlZmZl
Y3QsIGRyb3B6b25lLCB3ZWJraXRkcm9wem9uZQ0KICAgICBjb25zdCBBdG9tU3RyaW5nJiBkcm9w
RWZmZWN0cyA9IGdldEF0dHJpYnV0ZShhcmlhX2Ryb3BlZmZlY3RBdHRyKTsNCi0gICAgaWYgKGRy
b3BFZmZlY3RzLmlzRW1wdHkoKSkgew0KLSAgICAgICAgcmV0dXJuIHsgfTsNCisgICAgaWYgKCFk
cm9wRWZmZWN0cy5pc0VtcHR5KCkpIHsNCisgICAgICAgIFN0cmluZyBkcm9wRWZmZWN0c1N0cmlu
ZyA9IGRyb3BFZmZlY3RzLnN0cmluZygpOw0KKyAgICAgICAgZHJvcEVmZmVjdHNTdHJpbmcucmVw
bGFjZSgnXG4nLCAnICcpOw0KKyAgICAgICAgcmV0dXJuIGRyb3BFZmZlY3RzU3RyaW5nLnNwbGl0
KCcgJyk7DQogICAgIH0NCiAgICAgDQotICAgIFN0cmluZyBkcm9wRWZmZWN0c1N0cmluZyA9IGRy
b3BFZmZlY3RzLnN0cmluZygpOw0KLSAgICBkcm9wRWZmZWN0c1N0cmluZy5yZXBsYWNlKCdcbics
ICcgJyk7DQotICAgIHJldHVybiBkcm9wRWZmZWN0c1N0cmluZy5zcGxpdCgnICcpOw0KKyAgICBh
dXRvIGRyb3B6b25lID0gZ2V0QXR0cmlidXRlKGRyb3B6b25lQXR0cik7DQorICAgIGlmICghZHJv
cHpvbmUuaXNFbXB0eSgpKQ0KKyAgICAgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+IHsgZ2V0QXR0
cmlidXRlKGRyb3B6b25lQXR0cikgfTsNCisgICAgDQorICAgIHJldHVybiBWZWN0b3I8U3RyaW5n
PiB7IGdldEF0dHJpYnV0ZSh3ZWJraXRkcm9wem9uZUF0dHIpIH07DQogfQ0KICAgICANCiBib29s
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmV4cG9zZXNUaXRsZVVJRWxlbWVudCgpIGNvbnN0
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuaA0KaW5kZXggN2VjZjA0YWEwNGUuLjE4OTRmODYyMDk1IDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5oDQpAQCAtMTcxLDEwICsxNzEsMTAgQEAgcHVibGljOg0KICAgICBib29sIGlz
VmlzaWJsZVBvc2l0aW9uUmFuZ2VJbkRpZmZlcmVudERvY3VtZW50KGNvbnN0IFZpc2libGVQb3Np
dGlvblJhbmdlJikgY29uc3Q7DQogICAgIGJvb2wgaGFzUG9wdXAoKSBjb25zdCBvdmVycmlkZTsN
CiANCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IG92ZXJyaWRlOw0KLSAg
ICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGU7DQotICAgIGJvb2wg
aXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlOw0KLSAgICBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVB
UklBRHJvcEVmZmVjdHMoKSBvdmVycmlkZTsNCisgICAgYm9vbCBzdXBwb3J0c0Ryb3BwaW5nKCkg
Y29uc3Qgb3ZlcnJpZGU7DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0IG92ZXJy
aWRlOw0KKyAgICBib29sIGlzR3JhYmJlZCgpIG92ZXJyaWRlOw0KKyAgICBWZWN0b3I8U3RyaW5n
PiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpIG92ZXJyaWRlOw0KICAgICANCiAgICAgVmlzaWJsZVBv
c2l0aW9uIHZpc2libGVQb3NpdGlvbkZvclBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3Qgb3Zl
cnJpZGU7DQogICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleCh1bnNp
Z25lZCBpbmRleFZhbHVlLCBib29sIGxhc3RJbmRleE9LKSBjb25zdCBvdmVycmlkZTsNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGUu
Y3BwDQppbmRleCA5ZjM4ZTc4NjViZC4uMGQ0MTFmNDNlOWUgMTAwNjQ0DQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlLmNwcA0KKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZS5jcHANCkBAIC01
NjMsOSArNTYzLDkgQEAgc3RhdGljIEF0a0F0dHJpYnV0ZVNldCogd2Via2l0QWNjZXNzaWJsZUdl
dEF0dHJpYnV0ZXMoQXRrT2JqZWN0KiBvYmplY3QpDQogICAgIGlmICghZHJvcEVmZmVjdC5pc0Vt
cHR5KCkpDQogICAgICAgICBhdHRyaWJ1dGVTZXQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChhdHRy
aWJ1dGVTZXQsICJkcm9wZWZmZWN0IiwgZHJvcEVmZmVjdC51dGY4KCkuZGF0YSgpKTsNCiANCi0g
ICAgaWYgKGNvcmVPYmplY3QtPmlzQVJJQUdyYWJiZWQoKSkNCisgICAgaWYgKGNvcmVPYmplY3Qt
PmlzR3JhYmJlZCgpKQ0KICAgICAgICAgYXR0cmlidXRlU2V0ID0gYWRkVG9BdGtBdHRyaWJ1dGVT
ZXQoYXR0cmlidXRlU2V0LCAiZ3JhYmJlZCIsICJ0cnVlIik7DQotICAgIGVsc2UgaWYgKGNvcmVP
YmplY3QtPnN1cHBvcnRzQVJJQURyYWdnaW5nKCkpDQorICAgIGVsc2UgaWYgKGNvcmVPYmplY3Qt
PnN1cHBvcnRzRHJhZ2dpbmcoKSkNCiAgICAgICAgIGF0dHJpYnV0ZVNldCA9IGFkZFRvQXRrQXR0
cmlidXRlU2V0KGF0dHJpYnV0ZVNldCwgImdyYWJiZWQiLCAiZmFsc2UiKTsNCiANCiAgICAgLy8g
VGhlIENvcmUgQUFNIHN0YXRlcyB0aGUgYXV0aG9yLXByb3ZpZGVkIHZhbHVlIHNob3VsZCBiZSBl
eHBvc2VkIGFzLWlzLg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHANCmluZGV4IDc4OTA5MDlh
ODJkLi5mNTBjYzZjYTk4MyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KQEAgLTE3
MiwxMCArMTcyLDEwIEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0
ZURhdGEoQVhDb3JlT2JqZWN0JiBvYmplY3QsIGJvb2wgaXNSb290DQogICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c1Bvc0luU2V0LCBvYmplY3Quc3VwcG9ydHNQb3NJblNl
dCgpKTsNCiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlNldFNpemUsIG9iamVjdC5z
ZXRTaXplKCkpOw0KICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6UG9zSW5TZXQsIG9i
amVjdC5wb3NJblNldCgpKTsNCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBv
cnRzQVJJQURyb3BwaW5nLCBvYmplY3Quc3VwcG9ydHNBUklBRHJvcHBpbmcoKSk7DQotICAgIHNl
dFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0FSSUFEcmFnZ2luZywgb2JqZWN0LnN1
cHBvcnRzQVJJQURyYWdnaW5nKCkpOw0KLSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6
SXNBUklBR3JhYmJlZCwgb2JqZWN0LmlzQVJJQUdyYWJiZWQoKSk7DQotICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpBUklBRHJvcEVmZmVjdHMsIG9iamVjdC5kZXRlcm1pbmVBUklBRHJv
cEVmZmVjdHMoKSk7DQorICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0Ry
b3BwaW5nLCBvYmplY3Quc3VwcG9ydHNEcm9wcGluZygpKTsNCisgICAgc2V0UHJvcGVydHkoQVhQ
cm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJhZ2dpbmcsIG9iamVjdC5zdXBwb3J0c0RyYWdnaW5nKCkp
Ow0KKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNHcmFiYmVkLCBvYmplY3QuaXNH
cmFiYmVkKCkpOw0KKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RHJvcEVmZmVjdHMs
IG9iamVjdC5kZXRlcm1pbmVEcm9wRWZmZWN0cygpKTsNCiAgICAgc2V0T2JqZWN0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlRpdGxlVUlFbGVtZW50LCBvYmplY3QudGl0bGVVSUVsZW1lbnQoKSk7
DQogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpFeHBvc2VzVGl0bGVVSUVsZW1lbnQs
IG9iamVjdC5leHBvc2VzVGl0bGVVSUVsZW1lbnQoKSk7DQogICAgIHNldE9iamVjdFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpWZXJ0aWNhbFNjcm9sbEJhciwgb2JqZWN0LnNjcm9sbEJhcihBY2Nl
c3NpYmlsaXR5T3JpZW50YXRpb246OlZlcnRpY2FsKSk7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5o
DQppbmRleCAxYzkzNmZkYTI2YS4uNGM5MDJlZmUwYTEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuaA0KQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToNCiAgICAgICAgIEF1dG9Db21wbGV0ZVZh
bHVlLA0KICAgICAgICAgQVJJQUNvbnRyb2xzRWxlbWVudHMsDQogICAgICAgICBBUklBRGV0YWls
c0VsZW1lbnRzLA0KLSAgICAgICAgQVJJQURyb3BFZmZlY3RzLA0KKyAgICAgICAgRHJvcEVmZmVj
dHMsDQogICAgICAgICBBUklBRXJyb3JNZXNzYWdlRWxlbWVudHMsDQogICAgICAgICBBUklBSXNN
dWx0aWxpbmUsDQogICAgICAgICBBUklBRmxvd1RvRWxlbWVudHMsDQpAQCAtMTYxLDcgKzE2MSw3
IEBAIHByaXZhdGU6DQogICAgICAgICBJc0FjY2Vzc2liaWxpdHlJZ25vcmVkLA0KICAgICAgICAg
SXNBY3RpdmVEZXNjZW5kYW50T2ZGb2N1c2VkQ29udGFpbmVyLA0KICAgICAgICAgSXNBbm9ueW1v
dXNNYXRoT3BlcmF0b3IsDQotICAgICAgICBJc0FSSUFHcmFiYmVkLA0KKyAgICAgICAgSXNHcmFi
YmVkLA0KICAgICAgICAgSXNBUklBVHJlZUdyaWRSb3csDQogICAgICAgICBJc0F0dGFjaG1lbnQs
DQogICAgICAgICBJc0J1dHRvbiwNCkBAIC0yOTksOCArMjk5LDggQEAgcHJpdmF0ZToNCiAgICAg
ICAgIFNwZWFrQXMsDQogICAgICAgICBTcGVlY2hIaW50LA0KICAgICAgICAgU3RyaW5nVmFsdWUs
DQotICAgICAgICBTdXBwb3J0c0FSSUFEcmFnZ2luZywNCi0gICAgICAgIFN1cHBvcnRzQVJJQURy
b3BwaW5nLA0KKyAgICAgICAgU3VwcG9ydHNEcmFnZ2luZywNCisgICAgICAgIFN1cHBvcnRzRHJv
cHBpbmcsDQogICAgICAgICBTdXBwb3J0c0FSSUFPd25zLA0KICAgICAgICAgU3VwcG9ydHNDdXJy
ZW50LA0KICAgICAgICAgU3VwcG9ydHNEYXRldGltZUF0dHJpYnV0ZSwNCkBAIC01MDQsMTAgKzUw
NCwxMCBAQCBwcml2YXRlOg0KICAgICBib29sIHN1cHBvcnRzUG9zSW5TZXQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRz
UG9zSW5TZXQpOyB9DQogICAgIGludCBzZXRTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
aW50QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlNldFNpemUpOyB9DQogICAgIGludCBw
b3NJblNldCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGludEF0dHJpYnV0ZVZhbHVlKEFYUHJv
cGVydHlOYW1lOjpQb3NJblNldCk7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFt
ZTo6U3VwcG9ydHNBUklBRHJvcHBpbmcpOyB9DQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJhZ2dp
bmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0
eU5hbWU6OlN1cHBvcnRzQVJJQURyYWdnaW5nKTsgfQ0KLSAgICBib29sIGlzQVJJQUdyYWJiZWQo
KSBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6Oklz
QVJJQUdyYWJiZWQpOyB9DQotICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFEcm9wRWZm
ZWN0cygpIG92ZXJyaWRlIHsgcmV0dXJuIHZlY3RvckF0dHJpYnV0ZVZhbHVlPFN0cmluZz4oQVhQ
cm9wZXJ0eU5hbWU6OkFSSUFEcm9wRWZmZWN0cyk7IH0NCisgICAgYm9vbCBzdXBwb3J0c0Ryb3Bw
aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVy
dHlOYW1lOjpTdXBwb3J0c0Ryb3BwaW5nKTsgfQ0KKyAgICBib29sIHN1cHBvcnRzRHJhZ2dpbmco
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5h
bWU6OlN1cHBvcnRzRHJhZ2dpbmcpOyB9DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJpZGUg
eyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc0dyYWJiZWQpOyB9
DQorICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZURyb3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gdmVjdG9yQXR0cmlidXRlVmFsdWU8U3RyaW5nPihBWFByb3BlcnR5TmFtZTo6RHJvcEVm
ZmVjdHMpOyB9DQogICAgIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhpdFRlc3QoY29uc3Qg
SW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsNCiAgICAgQVhDb3JlT2JqZWN0KiBmb2N1c2VkVUlF
bGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7DQogICAgIEFYQ29yZU9iamVjdCogcGFyZW50T2JqZWN0
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gcGFyZW50T2JqZWN0VW5pZ25vcmVkKCk7IH0NCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1h
Yy5tbQ0KaW5kZXggNGZlZGZhNTZlMzYuLjhlZWQwMTAyOGM0IDEwMDY0NA0KLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQ0KKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQ0KQEAgLTk2
LDYgKzk2LDMwIEBADQogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJS
YW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiDQogI2VuZGlmDQogDQor
I2lmbmRlZiBrQVhEcmFnZ2luZ1NvdXJjZURyYWdCZWdhbk5vdGlmaWNhdGlvbg0KKyNkZWZpbmUg
a0FYRHJhZ2dpbmdTb3VyY2VEcmFnQmVnYW5Ob3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdT
b3VyY2VEcmFnQmVnYW4iKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FYRHJhZ2dpbmdTb3VyY2VE
cmFnRW5kZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVk
Tm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVkIikNCisjZW5kaWYN
CisNCisjaWZuZGVmIGtBWERyYWdnaW5nRGVzdGluYXRpb25Ecm9wQWxsb3dlZE5vdGlmaWNhdGlv
bg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BBbGxvd2VkTm90aWZpY2F0aW9u
IENGU1RSKCJBWERyYWdnaW5nRGVzdGluYXRpb25Ecm9wQWxsb3dlZCIpDQorI2VuZGlmDQorDQor
I2lmbmRlZiBrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcE5vdEFsbG93ZWROb3RpZmljYXRpb24N
CisjZGVmaW5lIGtBWERyYWdnaW5nRGVzdGluYXRpb25Ecm9wTm90QWxsb3dlZE5vdGlmaWNhdGlv
biBDRlNUUigiQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcE5vdEFsbG93ZWQiKQ0KKyNlbmRpZg0K
Kw0KKyNpZm5kZWYga0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdBY2NlcHRlZE5vdGlmaWNhdGlv
bg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdBY2NlcHRlZE5vdGlmaWNhdGlv
biBDRlNUUigiQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkIikNCisjZW5kaWYNCisN
CisjaWZuZGVmIGtBWERyYWdnaW5nRGVzdGluYXRpb25EcmFnTm90QWNjZXB0ZWROb3RpZmljYXRp
b24NCisjZGVmaW5lIGtBWERyYWdnaW5nRGVzdGluYXRpb25EcmFnTm90QWNjZXB0ZWROb3RpZmlj
YXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZCIpDQorI2Vu
ZGlmDQorDQogLy8gVmVyeSBsYXJnZSBzdHJpbmdzIGNhbiBuZWdhdGl2ZWx5IGltcGFjdCB0aGUg
cGVyZm9ybWFuY2Ugb2Ygbm90aWZpY2F0aW9ucywgc28gdGhpcyBsZW5ndGggaXMgY2hvc2VuIHRv
IHRyeSB0byBmaXQgYW4gYXZlcmFnZSBwYXJhZ3JhcGggb3IgbGluZSBvZiB0ZXh0LCBidXQgbm90
IGFsbG93IHN0cmluZ3MgdG8gYmUgbGFyZ2UgZW5vdWdoIHRvIGh1cnQgcGVyZm9ybWFuY2UuDQog
c3RhdGljIGNvbnN0IE5TVUludGVnZXIgQVhWYWx1ZUNoYW5nZVRydW5jYXRpb25MZW5ndGggPSAx
MDAwOw0KIA0KQEAgLTM1Myw2ICszNzcsMjEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxh
dGZvcm1Ob3RpZmljYXRpb24oQVhDb3JlT2JqZWN0KiBvYmosIEFYTm90aWZpY2F0aW9uIG4NCiAg
ICAgICAgIGNhc2UgQVhNZW51T3BlbmVkOg0KICAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9
IChpZClrQVhNZW51T3BlbmVkTm90aWZpY2F0aW9uOw0KICAgICAgICAgICAgIGJyZWFrOw0KKyAg
ICAgICAgY2FzZSBBWERyYWdnaW5nU3RhcnRlZDoNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRp
b24gPSAoaWQpa0FYRHJhZ2dpbmdTb3VyY2VEcmFnQmVnYW5Ob3RpZmljYXRpb247DQorICAgICAg
ICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlIEFYRHJhZ2dpbmdFbmRlZDoNCisgICAgICAgICAg
ICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWROb3RpZmlj
YXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlIEFYRHJhZ2dpbmdFbnRl
cmVkRHJvcFpvbmU6DQorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWERyYWdn
aW5nRGVzdGluYXRpb25Ecm9wQWxsb3dlZE5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBicmVh
azsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0Ryb3BwZWQ6DQorICAgICAgICAgICAgbWFjTm90
aWZpY2F0aW9uID0gKGlkKWtBWERyYWdnaW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWROb3RpZmlj
YXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlIEFYRHJhZ2dpbmdFeGl0
ZWREcm9wWm9uZToNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dp
bmdEZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZE5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBi
cmVhazsNCiAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgcmV0dXJuOw0KICAgICB9DQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KaW5kZXggZjFiOGFkYjRhYWEu
LjkyMGQyYzRlZGQ4IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1t
DQpAQCAtMTM1MCwxMCArMTM1MCwxMCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9O
U19FTkQNCiAgICAgICAgIHx8IGJhY2tpbmdPYmplY3QtPmlzVG9vbGJhcigpKQ0KICAgICAgICAg
W2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uQXR0cmlidXRl
XTsNCiANCi0gICAgaWYgKGJhY2tpbmdPYmplY3QtPnN1cHBvcnRzQVJJQURyYWdnaW5nKCkpDQor
ICAgIGlmIChiYWNraW5nT2JqZWN0LT5zdXBwb3J0c0RyYWdnaW5nKCkpDQogICAgICAgICBbYWRk
aXRpb25hbCBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5R3JhYmJlZEF0dHJpYnV0ZV07DQogDQot
ICAgIGlmIChiYWNraW5nT2JqZWN0LT5zdXBwb3J0c0FSSUFEcm9wcGluZygpKQ0KKyAgICBpZiAo
YmFja2luZ09iamVjdC0+c3VwcG9ydHNEcm9wcGluZygpKQ0KICAgICAgICAgW2FkZGl0aW9uYWwg
YWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eURyb3BFZmZlY3RzQXR0cmlidXRlXTsNCiANCiAgICAg
aWYgKGJhY2tpbmdPYmplY3QtPmlzVGFibGUoKSAmJiBiYWNraW5nT2JqZWN0LT5pc0V4cG9zYWJs
ZSgpICYmIGJhY2tpbmdPYmplY3QtPnN1cHBvcnRzU2VsZWN0ZWRSb3dzKCkpDQpAQCAtMjkxNywx
MCArMjkxNywxMCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQNCiAgICAg
ICAgIHJldHVybiBAKGJhY2tpbmdPYmplY3QtPnNldFNpemUoKSk7DQogDQogICAgIGlmIChbYXR0
cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5R3JhYmJlZEF0dHJpYnV0
ZV0pDQotICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhCb29sOmJhY2tpbmdPYmpl
Y3QtPmlzQVJJQUdyYWJiZWQoKV07DQorICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldp
dGhCb29sOmJhY2tpbmdPYmplY3QtPmlzR3JhYmJlZCgpXTsNCiANCiAgICAgaWYgKFthdHRyaWJ1
dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlEcm9wRWZmZWN0c0F0dHJpYnV0
ZV0pDQotICAgICAgICByZXR1cm4gY3JlYXRlTlNBcnJheShiYWNraW5nT2JqZWN0LT5kZXRlcm1p
bmVBUklBRHJvcEVmZmVjdHMoKSkuYXV0b3JlbGVhc2UoKTsNCisgICAgICAgIHJldHVybiBjcmVh
dGVOU0FycmF5KGJhY2tpbmdPYmplY3QtPmRldGVybWluZURyb3BFZmZlY3RzKCkpLmF1dG9yZWxl
YXNlKCk7DQogDQogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nl
c3NpYmlsaXR5UGxhY2Vob2xkZXJWYWx1ZUF0dHJpYnV0ZV0pDQogICAgICAgICByZXR1cm4gYmFj
a2luZ09iamVjdC0+cGxhY2Vob2xkZXJWYWx1ZSgpOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4NCmluZGV4IGRjZDgzNzhkOTU0Li5jYjMwNDkwNDA4OSAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluDQorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbg0KQEAgLTEyMSw2ICsxMjEs
NyBAQCBkaXNhYmxlcmVtb3RlcGxheWJhY2sNCiBkaXNwb3NpdGlvbg0KIGRvd25sb2FkDQogZHJh
Z2dhYmxlDQorZHJvcHpvbmUNCiB3ZWJraXRkcm9wem9uZQ0KIGVuY3R5cGUNCiBlbmQNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHANCmluZGV4IDdiYTk2YWNjNTIwLi5jY2QwMjFlYTlj
YSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcA0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwDQpAQCAtMjI4Miw5ICsyMjgy
LDI4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudChjb25zdCBBdG9tU3Ry
aW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGRyYWdUDQogICAgICAgICBldmVudC5tb2RpZmllcnMo
KSwgMCwgMCwgbnVsbHB0ciwgZXZlbnQuZm9yY2UoKSwgTm9UYXAsICZkYXRhVHJhbnNmZXIpOw0K
IA0KICAgICBkcmFnVGFyZ2V0LmRpc3BhdGNoRXZlbnQoZHJhZ0V2ZW50KTsNCisNCisgICAgaWYg
KGF1dG8qIGNhY2hlID0gbV9mcmFtZS5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KSkgew0KKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJhZ3N0YXJ0RXZl
bnQpDQorICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFY
T2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdTdGFydGVkKTsNCisgICAgICAgIGVsc2UgaWYgKGV2ZW50
VHlwZSA9PSBldmVudE5hbWVzKCkuZHJhZ2VuZEV2ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5w
b3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVjdENhY2hlOjpBWERyYWdnaW5nRW5k
ZWQpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kcmFnZW50
ZXJFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbigmZHJhZ1Rhcmdl
dCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0VudGVyZWREcm9wWm9uZSk7DQorICAgICAgICBl
bHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50KQ0KKyAgICAg
ICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVjdENhY2hl
OjpBWERyYWdnaW5nRXhpdGVkRHJvcFpvbmUpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBl
ID09IGV2ZW50TmFtZXMoKS5kcm9wRXZlbnQpDQorICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3Rp
ZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdEcm9wcGVkKTsN
CisgICAgfQ0KKw0KICAgICByZXR1cm4gZHJhZ0V2ZW50LT5kZWZhdWx0UHJldmVudGVkKCk7DQog
fQ0KIA0KK0VsZW1lbnQqIEV2ZW50SGFuZGxlcjo6ZHJhZ2dpbmdFbGVtZW50KCkgY29uc3QNCit7
DQorICAgIHJldHVybiBkcmFnU3RhdGUoKS5zb3VyY2UuZ2V0KCk7DQorfQ0KKw0KIHN0YXRpYyBi
b29sIHRhcmdldElzRnJhbWUoTm9kZSogdGFyZ2V0LCBGcmFtZSomIGZyYW1lKQ0KIHsNCiAgICAg
aWYgKCFpczxIVE1MRnJhbWVFbGVtZW50QmFzZT4odGFyZ2V0KSkNCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuaA0KaW5kZXggNWI0NjQ0MGUyOGEuLmI4NmYxZTAyYTgzIDEwMDY0NA0KLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuaA0KQEAgLTMzOSw2ICszMzksOSBAQCBwdWJsaWM6DQogDQogICAg
IFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPEN1cnNvcj4gc2VsZWN0Q3Vyc29yKGNvbnN0IEhpdFRl
c3RSZXN1bHQmLCBib29sIHNoaWZ0S2V5KTsNCiANCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkN
CisgICAgRWxlbWVudCogZHJhZ2dpbmdFbGVtZW50KCkgY29uc3Q7DQorI2VuZGlmDQogcHJpdmF0
ZToNCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkNCiAgICAgc3RhdGljIERyYWdTdGF0ZSYgZHJh
Z1N0YXRlKCk7DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398567</attachid>
            <date>2020-05-05 16:37:27 -0700</date>
            <delta_ts>2020-05-05 22:18:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>23302</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZmM4ZGMwMTE5MDkuLmQ1ZTM5ODQ5MWNmIDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA1ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDUtMDUgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFsgTWFjIF0gZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5odG1sIGlzIGZs
YWt5IGZhaWxpbmcuDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
ZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw
MDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0wLDAgKzEsMjEgQEANCitU
aGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3Rp
ZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLg0KKw0KK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQgc3F1YXJlIG9udG8gbWUu
DQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0YXJnZXQ6DQorDQorU3F1
YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
J2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSBpcyB0cnVlDQorUEFT
UyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2Ryb3BUYXJn
ZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMgZmFsc2UNCitUYXJnZXQg
aXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitUYXJnZXQgaXMgZ3JhYmJl
ZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVyIGRyYWc6IDENCitBWERy
YWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWQN
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZw0KaW5kZXggMjkxZTAwNjk4NmIuLjJlN2M1MDRlMTM1IDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBA
IC0xLDMgKzEsNDkgQEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBh
cHBsZS5jb20+DQorDQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRN
TCA1LjEgRHJhZyAmIERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisN
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAgU3VwcG9ydCBI
VE1MNSBkcmFnIGFuZCBkcm9wLiBTdXBwb3J0IGRyb3B6b25lIGF0dHJpYnV0ZS4NCisgICAgICAg
IEFkZCBuZXcgbm90aWZpY2F0aW9ucyBmb3IgVm9pY2VPdmVyIHRvIGNvbnN1bWUuDQorDQorICAg
ICAgICBJdCBhcHBlYXJzIHRoYXQgbW9zdCBvZiB0aGUgZHJhZ2dpbmcgdGVzdHMgYXJlIHNraXBw
ZWQgYmVjYXVzZSBvZiBldmVudFNlbmRlciBpc3N1ZXMuDQorICAgICAgICBJIHRoaW5rIHRoaXMg
dGVzdCBjb3VsZCBkbyBhIGxpdHRsZSBtb3JlIGlmIHRob3NlIGlzc3VlcyB3ZXJlIHJlc29sdmVk
LiBTcGVjaWZpY2FsbHksIG5vdCBhbGwNCisgICAgICAgIHRoZSBub3RpZmljYXRpb25zIGFyZSBz
ZWVuIHRoYXQgYXJlIGV4cGVjdGVkLg0KKw0KKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9t
YWMvZHJhZ2dhYmxlLmh0bWwNCisNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBQXR0
cmlidXRlcyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6
aXNBWEhpZGRlbiBjb25zdCk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJ
bnRlcmZhY2UuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0Ryb3BwaW5nIGNvbnN0KToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0RyYWdnaW5nIGNvbnN0KToNCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0dyYWJiZWQpOg0KKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZURyb3BFZmZlY3RzKToN
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0FS
SUFEcm9wcGluZyBjb25zdCk6IERlbGV0ZWQuDQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcgY29uc3QpOiBEZWxldGVkLg0K
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzQVJJQUdyYWJi
ZWQpOiBEZWxldGVkLg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmRldGVybWluZUFSSUFEcm9wRWZmZWN0cyk6IERlbGV0ZWQuDQorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YSk6DQorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoNCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToNCisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bToNCisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFkZGl0aW9uYWxB
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXNdKToNCisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToNCisgICAgICAg
ICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46DQorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5k
bGVyLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2
ZW50KToNCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRyYWdnaW5nRWxlbWVudCBj
b25zdCk6DQorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6DQorDQogMjAyMC0wNS0wNSAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+DQogDQogICAgICAgICBGYWN0b3IgUmVu
ZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVFdmVudFJlZ2lvbiBza2lwIGNvbmRpdGlvbnMgaW50byBh
IGxhbWJkYQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgN
CmluZGV4IGEzMGQyYTkxNTE2Li40NmJkZjQxYmVmNyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KQEAgLTMwMyw3ICszMDMsMTIgQEAgcHVibGlj
Og0KICAgICAgICAgQVhSZXF1aXJlZFN0YXR1c0NoYW5nZWQsDQogICAgICAgICBBWFRleHRDaGFu
Z2VkLA0KICAgICAgICAgQVhBcmlhQXR0cmlidXRlQ2hhbmdlZCwNCi0gICAgICAgIEFYRWxlbWVu
dEJ1c3lDaGFuZ2VkDQorICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdlZCwNCisgICAgICAgIEFY
RHJhZ2dpbmdTdGFydGVkLA0KKyAgICAgICAgQVhEcmFnZ2luZ0VuZGVkLA0KKyAgICAgICAgQVhE
cmFnZ2luZ0VudGVyZWREcm9wWm9uZSwNCisgICAgICAgIEFYRHJhZ2dpbmdEcm9wcGVkLA0KKyAg
ICAgICAgQVhEcmFnZ2luZ0V4aXRlZERyb3Bab25lDQogICAgIH07DQogDQogICAgIHZvaWQgcG9z
dE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9
IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsNCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0K
aW5kZXggNDBlYTVmZWFlMTIuLjFmN2E3NjYwNzg1IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KQEAgLTI1MzQsOCAr
MjUzNCw4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBQXR0cmlidXRl
cygpIGNvbnN0DQogew0KICAgICAvLyBUaGlzIHJldHVybnMgd2hldGhlciB0aGUgZWxlbWVudCBz
dXBwb3J0cyBhbnkgZ2xvYmFsIEFSSUEgYXR0cmlidXRlcy4NCiAgICAgcmV0dXJuIHN1cHBvcnRz
TGl2ZVJlZ2lvbigpDQotICAgICAgICB8fCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpDQotICAgICAg
ICB8fCBzdXBwb3J0c0FSSUFEcm9wcGluZygpDQorICAgICAgICB8fCBzdXBwb3J0c0RyYWdnaW5n
KCkNCisgICAgICAgIHx8IHN1cHBvcnRzRHJvcHBpbmcoKQ0KICAgICAgICAgfHwgc3VwcG9ydHNB
UklBT3ducygpDQogICAgICAgICB8fCBoYXNBdHRyaWJ1dGUoYXJpYV9hdG9taWNBdHRyKQ0KICAg
ICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYnVzeUF0dHIpDQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaA0KaW5kZXggZjUzZDY5Yjdj
MzMuLjZmOGYyODdlZDk3IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oDQpAQCAtMzI3LDExICszMjcsMTEgQEAgcHVibGljOg0K
ICAgICBpbnQgcG9zSW5TZXQoKSBjb25zdCBvdmVycmlkZTsNCiANCiAgICAgLy8gQVJJQSBkcmFn
IGFuZCBkcm9wDQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQ0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCi0gICAgYm9vbCBpc0FSSUFHcmFiYmVkKCkg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBzdXBwb3J0c0Ryb3BwaW5nKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBzdXBwb3J0c0RyYWdn
aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBpc0dyYWJi
ZWQoKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KICAgICB2b2lkIHNldEFSSUFHcmFiYmVk
KGJvb2wpIG92ZXJyaWRlIHsgfQ0KLSAgICBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJv
cEVmZmVjdHMoKSBvdmVycmlkZSB7IHJldHVybiB7IH07IH0NCisgICAgVmVjdG9yPFN0cmluZz4g
ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB7IH07IH0NCiAN
CiAgICAgLy8gQ2FsbGVkIG9uIHRoZSByb290IEFYIG9iamVjdCB0byByZXR1cm4gdGhlIGRlZXBl
c3QgYXZhaWxhYmxlIGVsZW1lbnQuDQogICAgIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhp
dFRlc3QoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3RJbnRlcmZhY2UuaA0KaW5kZXggMWM4ODk1OGVkYmUuLjE5ZGY2ZGJiYzYyIDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SW50ZXJmYWNlLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQpAQCAtNzU2LDExICs3NTYsMTEgQEAgcHVibGljOg0K
ICAgICB2aXJ0dWFsIGludCBwb3NJblNldCgpIGNvbnN0ID0gMDsNCiANCiAgICAgLy8gQVJJQSBk
cmFnIGFuZCBkcm9wDQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNv
bnN0ID0gMDsNCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3Qg
PSAwOw0KLSAgICB2aXJ0dWFsIGJvb2wgaXNBUklBR3JhYmJlZCgpID0gMDsNCisgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzRHJvcHBpbmcoKSBjb25zdCA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c0RyYWdnaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgaXNHcmFiYmVk
KCkgPSAwOw0KICAgICB2aXJ0dWFsIHZvaWQgc2V0QVJJQUdyYWJiZWQoYm9vbCkgPSAwOw0KLSAg
ICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpID0gMDsN
CisgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpIGNvbnN0
ID0gMDsNCiANCiAgICAgLy8gQ2FsbGVkIG9uIHRoZSByb290IEFYIG9iamVjdCB0byByZXR1cm4g
dGhlIGRlZXBlc3QgYXZhaWxhYmxlIGVsZW1lbnQuDQogICAgIHZpcnR1YWwgQVhDb3JlT2JqZWN0
KiBhY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcA0KaW5kZXggMjYyYjI5YzljNWIuLjI5MDlmYTM4NjNjIDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcA0KQEAgLTEwNDAsMzMgKzEwNDAsNDIgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpoYXNQb3B1cCgpIGNvbnN0DQogICAgIH0pOw0KIH0NCiANCi1ib29sIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3QgDQor
Ym9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0Ryb3BwaW5nKCkgY29uc3Qg
DQogew0KLSAgICBjb25zdCBBdG9tU3RyaW5nJiBkcm9wRWZmZWN0ID0gZ2V0QXR0cmlidXRlKGFy
aWFfZHJvcGVmZmVjdEF0dHIpOw0KLSAgICByZXR1cm4gIWRyb3BFZmZlY3QuaXNFbXB0eSgpOw0K
KyAgICByZXR1cm4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKS5zaXplKCk7DQogfQ0KIA0KLWJvb2wg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdA0K
K2Jvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
DQogew0KICAgICBjb25zdCBBdG9tU3RyaW5nJiBncmFiYmVkID0gZ2V0QXR0cmlidXRlKGFyaWFf
Z3JhYmJlZEF0dHIpOw0KLSAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
Z3JhYmJlZCwgInRydWUiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVk
LCAiZmFsc2UiKTsNCisgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdy
YWJiZWQsICJ0cnVlIikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwg
ImZhbHNlIikgfHwgaGFzQXR0cmlidXRlKGRyYWdnYWJsZUF0dHIpKTsNCiB9DQogDQotYm9vbCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FSSUFHcmFiYmVkKCkNCitib29sIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmlzR3JhYmJlZCgpDQogew0KKyNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQ0KKyAgICBpZiAobWFpbkZyYW1lKCkgJiYgbWFpbkZyYW1lKCktPmV2ZW50SGFuZGxlcigp
LmRyYWdnaW5nRWxlbWVudCgpID09IGVsZW1lbnQoKSkNCisgICAgICAgIHJldHVybiB0cnVlOw0K
KyNlbmRpZg0KKw0KICAgICByZXR1cm4gZWxlbWVudEF0dHJpYnV0ZVZhbHVlKGFyaWFfZ3JhYmJl
ZEF0dHIpOw0KIH0NCiANCi1WZWN0b3I8U3RyaW5nPiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKQ0KK1ZlY3RvcjxTdHJpbmc+IEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmRldGVybWluZURyb3BFZmZlY3RzKCkgY29uc3QNCiB7DQorICAgIC8v
IE9yZGVyIGlzIGFyaWEtZHJvcGVmZmVjdCwgZHJvcHpvbmUsIHdlYmtpdGRyb3B6b25lDQogICAg
IGNvbnN0IEF0b21TdHJpbmcmIGRyb3BFZmZlY3RzID0gZ2V0QXR0cmlidXRlKGFyaWFfZHJvcGVm
ZmVjdEF0dHIpOw0KLSAgICBpZiAoZHJvcEVmZmVjdHMuaXNFbXB0eSgpKSB7DQotICAgICAgICBy
ZXR1cm4geyB9Ow0KKyAgICBpZiAoIWRyb3BFZmZlY3RzLmlzRW1wdHkoKSkgew0KKyAgICAgICAg
U3RyaW5nIGRyb3BFZmZlY3RzU3RyaW5nID0gZHJvcEVmZmVjdHMuc3RyaW5nKCk7DQorICAgICAg
ICBkcm9wRWZmZWN0c1N0cmluZy5yZXBsYWNlKCdcbicsICcgJyk7DQorICAgICAgICByZXR1cm4g
ZHJvcEVmZmVjdHNTdHJpbmcuc3BsaXQoJyAnKTsNCiAgICAgfQ0KICAgICANCi0gICAgU3RyaW5n
IGRyb3BFZmZlY3RzU3RyaW5nID0gZHJvcEVmZmVjdHMuc3RyaW5nKCk7DQotICAgIGRyb3BFZmZl
Y3RzU3RyaW5nLnJlcGxhY2UoJ1xuJywgJyAnKTsNCi0gICAgcmV0dXJuIGRyb3BFZmZlY3RzU3Ry
aW5nLnNwbGl0KCcgJyk7DQorICAgIGF1dG8gZHJvcHpvbmUgPSBnZXRBdHRyaWJ1dGUoZHJvcHpv
bmVBdHRyKTsNCisgICAgaWYgKCFkcm9wem9uZS5pc0VtcHR5KCkpDQorICAgICAgICByZXR1cm4g
VmVjdG9yPFN0cmluZz4geyBnZXRBdHRyaWJ1dGUoZHJvcHpvbmVBdHRyKSB9Ow0KKyAgICANCisg
ICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+IHsgZ2V0QXR0cmlidXRlKHdlYmtpdGRyb3B6b25lQXR0
cikgfTsNCiB9DQogICAgIA0KIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZXhwb3Nl
c1RpdGxlVUlFbGVtZW50KCkgY29uc3QNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oDQppbmRleCA3ZWNmMDRhYTA0
ZS4uMjI4YTUzMjllOGIgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgNCkBAIC0xNzEsMTAgKzE3MSwxMCBA
QCBwdWJsaWM6DQogICAgIGJvb2wgaXNWaXNpYmxlUG9zaXRpb25SYW5nZUluRGlmZmVyZW50RG9j
dW1lbnQoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmKSBjb25zdDsNCiAgICAgYm9vbCBoYXNQ
b3B1cCgpIGNvbnN0IG92ZXJyaWRlOw0KIA0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5n
KCkgY29uc3Qgb3ZlcnJpZGU7DQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25z
dCBvdmVycmlkZTsNCi0gICAgYm9vbCBpc0FSSUFHcmFiYmVkKCkgb3ZlcnJpZGU7DQotICAgIFZl
Y3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpIG92ZXJyaWRlOw0KKyAgICBi
b29sIHN1cHBvcnRzRHJvcHBpbmcoKSBjb25zdCBvdmVycmlkZTsNCisgICAgYm9vbCBzdXBwb3J0
c0RyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGU7DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3ZlcnJp
ZGU7DQorICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZURyb3BFZmZlY3RzKCkgY29uc3Qgb3Zl
cnJpZGU7DQogICAgIA0KICAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9yUG9p
bnQoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsNCiAgICAgVmlzaWJsZVBvc2l0aW9u
IHZpc2libGVQb3NpdGlvbkZvckluZGV4KHVuc2lnbmVkIGluZGV4VmFsdWUsIGJvb2wgbGFzdElu
ZGV4T0spIGNvbnN0IG92ZXJyaWRlOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZS5jcHANCmluZGV4IDlmMzhlNzg2NWJkLi4wZDQx
MWY0M2U5ZSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dl
YktpdEFjY2Vzc2libGUuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0
ay9XZWJLaXRBY2Nlc3NpYmxlLmNwcA0KQEAgLTU2Myw5ICs1NjMsOSBAQCBzdGF0aWMgQXRrQXR0
cmlidXRlU2V0KiB3ZWJraXRBY2Nlc3NpYmxlR2V0QXR0cmlidXRlcyhBdGtPYmplY3QqIG9iamVj
dCkNCiAgICAgaWYgKCFkcm9wRWZmZWN0LmlzRW1wdHkoKSkNCiAgICAgICAgIGF0dHJpYnV0ZVNl
dCA9IGFkZFRvQXRrQXR0cmlidXRlU2V0KGF0dHJpYnV0ZVNldCwgImRyb3BlZmZlY3QiLCBkcm9w
RWZmZWN0LnV0ZjgoKS5kYXRhKCkpOw0KIA0KLSAgICBpZiAoY29yZU9iamVjdC0+aXNBUklBR3Jh
YmJlZCgpKQ0KKyAgICBpZiAoY29yZU9iamVjdC0+aXNHcmFiYmVkKCkpDQogICAgICAgICBhdHRy
aWJ1dGVTZXQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChhdHRyaWJ1dGVTZXQsICJncmFiYmVkIiwg
InRydWUiKTsNCi0gICAgZWxzZSBpZiAoY29yZU9iamVjdC0+c3VwcG9ydHNBUklBRHJhZ2dpbmco
KSkNCisgICAgZWxzZSBpZiAoY29yZU9iamVjdC0+c3VwcG9ydHNEcmFnZ2luZygpKQ0KICAgICAg
ICAgYXR0cmlidXRlU2V0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQoYXR0cmlidXRlU2V0LCAiZ3Jh
YmJlZCIsICJmYWxzZSIpOw0KIA0KICAgICAvLyBUaGUgQ29yZSBBQU0gc3RhdGVzIHRoZSBhdXRo
b3ItcHJvdmlkZWQgdmFsdWUgc2hvdWxkIGJlIGV4cG9zZWQgYXMtaXMuDQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmNwcA0KaW5kZXggNzg5MDkwOWE4MmQuLmY1MGNjNmNhOTgzIDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9i
amVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuY3BwDQpAQCAtMTcyLDEwICsxNzIsMTAgQEAgdm9pZCBBWElzb2xh
dGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShBWENvcmVPYmplY3QmIG9iamVjdCwg
Ym9vbCBpc1Jvb3QNCiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzUG9z
SW5TZXQsIG9iamVjdC5zdXBwb3J0c1Bvc0luU2V0KCkpOw0KICAgICBzZXRQcm9wZXJ0eShBWFBy
b3BlcnR5TmFtZTo6U2V0U2l6ZSwgb2JqZWN0LnNldFNpemUoKSk7DQogICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpQb3NJblNldCwgb2JqZWN0LnBvc0luU2V0KCkpOw0KLSAgICBzZXRQ
cm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNBUklBRHJvcHBpbmcsIG9iamVjdC5zdXBw
b3J0c0FSSUFEcm9wcGluZygpKTsNCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1
cHBvcnRzQVJJQURyYWdnaW5nLCBvYmplY3Quc3VwcG9ydHNBUklBRHJhZ2dpbmcoKSk7DQotICAg
IHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc0FSSUFHcmFiYmVkLCBvYmplY3QuaXNBUklB
R3JhYmJlZCgpKTsNCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkFSSUFEcm9wRWZm
ZWN0cywgb2JqZWN0LmRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpKTsNCisgICAgc2V0UHJvcGVy
dHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJvcHBpbmcsIG9iamVjdC5zdXBwb3J0c0Ryb3Bw
aW5nKCkpOw0KKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNEcmFnZ2lu
Zywgb2JqZWN0LnN1cHBvcnRzRHJhZ2dpbmcoKSk7DQorICAgIHNldFByb3BlcnR5KEFYUHJvcGVy
dHlOYW1lOjpJc0dyYWJiZWQsIG9iamVjdC5pc0dyYWJiZWQoKSk7DQorICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpEcm9wRWZmZWN0cywgb2JqZWN0LmRldGVybWluZURyb3BFZmZlY3Rz
KCkpOw0KICAgICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6VGl0bGVVSUVsZW1l
bnQsIG9iamVjdC50aXRsZVVJRWxlbWVudCgpKTsNCiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OkV4cG9zZXNUaXRsZVVJRWxlbWVudCwgb2JqZWN0LmV4cG9zZXNUaXRsZVVJRWxlbWVu
dCgpKTsNCiAgICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlZlcnRpY2FsU2Ny
b2xsQmFyLCBvYmplY3Quc2Nyb2xsQmFyKEFjY2Vzc2liaWxpdHlPcmllbnRhdGlvbjo6VmVydGlj
YWwpKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCmluZGV4IDFjOTM2ZmRhMjZhLi5iMTlmNWVk
MzQ2NCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQpAQCAtODksNyArODksNyBAQCBwcml2
YXRlOg0KICAgICAgICAgQXV0b0NvbXBsZXRlVmFsdWUsDQogICAgICAgICBBUklBQ29udHJvbHNF
bGVtZW50cywNCiAgICAgICAgIEFSSUFEZXRhaWxzRWxlbWVudHMsDQotICAgICAgICBBUklBRHJv
cEVmZmVjdHMsDQorICAgICAgICBEcm9wRWZmZWN0cywNCiAgICAgICAgIEFSSUFFcnJvck1lc3Nh
Z2VFbGVtZW50cywNCiAgICAgICAgIEFSSUFJc011bHRpbGluZSwNCiAgICAgICAgIEFSSUFGbG93
VG9FbGVtZW50cywNCkBAIC0xNjEsNyArMTYxLDcgQEAgcHJpdmF0ZToNCiAgICAgICAgIElzQWNj
ZXNzaWJpbGl0eUlnbm9yZWQsDQogICAgICAgICBJc0FjdGl2ZURlc2NlbmRhbnRPZkZvY3VzZWRD
b250YWluZXIsDQogICAgICAgICBJc0Fub255bW91c01hdGhPcGVyYXRvciwNCi0gICAgICAgIElz
QVJJQUdyYWJiZWQsDQorICAgICAgICBJc0dyYWJiZWQsDQogICAgICAgICBJc0FSSUFUcmVlR3Jp
ZFJvdywNCiAgICAgICAgIElzQXR0YWNobWVudCwNCiAgICAgICAgIElzQnV0dG9uLA0KQEAgLTI5
OSw4ICsyOTksOCBAQCBwcml2YXRlOg0KICAgICAgICAgU3BlYWtBcywNCiAgICAgICAgIFNwZWVj
aEhpbnQsDQogICAgICAgICBTdHJpbmdWYWx1ZSwNCi0gICAgICAgIFN1cHBvcnRzQVJJQURyYWdn
aW5nLA0KLSAgICAgICAgU3VwcG9ydHNBUklBRHJvcHBpbmcsDQorICAgICAgICBTdXBwb3J0c0Ry
YWdnaW5nLA0KKyAgICAgICAgU3VwcG9ydHNEcm9wcGluZywNCiAgICAgICAgIFN1cHBvcnRzQVJJ
QU93bnMsDQogICAgICAgICBTdXBwb3J0c0N1cnJlbnQsDQogICAgICAgICBTdXBwb3J0c0RhdGV0
aW1lQXR0cmlidXRlLA0KQEAgLTUwNCwxMCArNTA0LDEwIEBAIHByaXZhdGU6DQogICAgIGJvb2wg
c3VwcG9ydHNQb3NJblNldCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVW
YWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNQb3NJblNldCk7IH0NCiAgICAgaW50IHNldFNp
emUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBpbnRBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5
TmFtZTo6U2V0U2l6ZSk7IH0NCiAgICAgaW50IHBvc0luU2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gaW50QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlBvc0luU2V0KTsgfQ0KLSAg
ICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9v
bEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0FSSUFEcm9wcGluZyk7IH0N
Ci0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNBUklBRHJhZ2dpbmcp
OyB9DQotICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRy
aWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNBUklBR3JhYmJlZCk7IH0NCi0gICAgVmVjdG9y
PFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyByZXR1cm4gdmVj
dG9yQXR0cmlidXRlVmFsdWU8U3RyaW5nPihBWFByb3BlcnR5TmFtZTo6QVJJQURyb3BFZmZlY3Rz
KTsgfQ0KKyAgICBib29sIHN1cHBvcnRzRHJvcHBpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJvcHBpbmcpOyB9
DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJv
b2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNEcmFnZ2luZyk7IH0NCisg
ICAgYm9vbCBpc0dyYWJiZWQoKSBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUo
QVhQcm9wZXJ0eU5hbWU6OklzR3JhYmJlZCk7IH0NCisgICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJt
aW5lRHJvcEVmZmVjdHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB2ZWN0b3JBdHRyaWJ1dGVW
YWx1ZTxTdHJpbmc+KEFYUHJvcGVydHlOYW1lOjpEcm9wRWZmZWN0cyk7IH0NCiAgICAgQVhDb3Jl
T2JqZWN0KiBhY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJy
aWRlOw0KICAgICBBWENvcmVPYmplY3QqIGZvY3VzZWRVSUVsZW1lbnQoKSBjb25zdCBvdmVycmlk
ZTsNCiAgICAgQVhDb3JlT2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBwYXJlbnRPYmplY3RVbmlnbm9yZWQoKTsgfQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQppbmRleCA0ZmVkZmE1NmUz
Ni4uOGVlZDAxMDI4YzQgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQpAQCAtOTYsNiArOTYsMzAgQEANCiAjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlIEAiQVhTZWxl
Y3RlZFRleHRNYXJrZXJSYW5nZSINCiAjZW5kaWYNCiANCisjaWZuZGVmIGtBWERyYWdnaW5nU291
cmNlRHJhZ0JlZ2FuTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2luZ1NvdXJjZURyYWdC
ZWdhbk5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ1NvdXJjZURyYWdCZWdhbiIpDQorI2Vu
ZGlmDQorDQorI2lmbmRlZiBrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5vdGlmaWNhdGlvbg0K
KyNkZWZpbmUga0FYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFY
RHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FYRHJhZ2dp
bmdEZXN0aW5hdGlvbkRyb3BBbGxvd2VkTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2lu
Z0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdEZXN0
aW5hdGlvbkRyb3BBbGxvd2VkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5nRGVz
dGluYXRpb25Ecm9wTm90QWxsb3dlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyb3BOb3RBbGxvd2VkTm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5nRGVz
dGluYXRpb25Ecm9wTm90QWxsb3dlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhEcmFnZ2lu
Z0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2lu
Z0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5nRGVz
dGluYXRpb25EcmFnQWNjZXB0ZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FYRHJhZ2dpbmdE
ZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dp
bmdEZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2lu
Z0Rlc3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkIikNCisjZW5kaWYNCisNCiAvLyBWZXJ5IGxhcmdl
IHN0cmluZ3MgY2FuIG5lZ2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3JtYW5jZSBvZiBub3RpZmlj
YXRpb25zLCBzbyB0aGlzIGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRvIGZpdCBhbiBhdmVyYWdl
IHBhcmFncmFwaCBvciBsaW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cgc3RyaW5ncyB0byBiZSBs
YXJnZSBlbm91Z2ggdG8gaHVydCBwZXJmb3JtYW5jZS4NCiBzdGF0aWMgY29uc3QgTlNVSW50ZWdl
ciBBWFZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7DQogDQpAQCAtMzUzLDYgKzM3
NywyMSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBWENv
cmVPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24gbg0KICAgICAgICAgY2FzZSBBWE1lbnVPcGVu
ZWQ6DQogICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWE1lbnVPcGVuZWROb3Rp
ZmljYXRpb247DQogICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlIEFYRHJhZ2dpbmdT
dGFydGVkOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ1Nv
dXJjZURyYWdCZWdhbk5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAg
IGNhc2UgQVhEcmFnZ2luZ0VuZGVkOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChp
ZClrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBi
cmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0VudGVyZWREcm9wWm9uZToNCisgICAgICAg
ICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BBbGxv
d2VkTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBBWERy
YWdnaW5nRHJvcHBlZDoNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJh
Z2dpbmdEZXN0aW5hdGlvbkRyYWdBY2NlcHRlZE5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBi
cmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0V4aXRlZERyb3Bab25lOg0KKyAgICAgICAg
ICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ05vdEFj
Y2VwdGVkTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgZGVmYXVs
dDoNCiAgICAgICAgICAgICByZXR1cm47DQogICAgIH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tDQppbmRleCBmMWI4YWRiNGFhYS4uOTIwZDJjNGVkZDggMTAwNjQ0DQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCkBAIC0xMzUwLDEwICsxMzUwLDEw
IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORA0KICAgICAgICAgfHwgYmFj
a2luZ09iamVjdC0+aXNUb29sYmFyKCkpDQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6
TlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb25BdHRyaWJ1dGVdOw0KIA0KLSAgICBpZiAoYmFja2lu
Z09iamVjdC0+c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSkNCisgICAgaWYgKGJhY2tpbmdPYmplY3Qt
PnN1cHBvcnRzRHJhZ2dpbmcoKSkNCiAgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0Fj
Y2Vzc2liaWxpdHlHcmFiYmVkQXR0cmlidXRlXTsNCiANCi0gICAgaWYgKGJhY2tpbmdPYmplY3Qt
PnN1cHBvcnRzQVJJQURyb3BwaW5nKCkpDQorICAgIGlmIChiYWNraW5nT2JqZWN0LT5zdXBwb3J0
c0Ryb3BwaW5nKCkpDQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6TlNBY2Nlc3NpYmls
aXR5RHJvcEVmZmVjdHNBdHRyaWJ1dGVdOw0KIA0KICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNU
YWJsZSgpICYmIGJhY2tpbmdPYmplY3QtPmlzRXhwb3NhYmxlKCkgJiYgYmFja2luZ09iamVjdC0+
c3VwcG9ydHNTZWxlY3RlZFJvd3MoKSkNCkBAIC0yOTE3LDEwICsyOTE3LDEwIEBAIEFMTE9XX0RF
UFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORA0KICAgICAgICAgcmV0dXJuIEAoYmFja2luZ09i
amVjdC0+c2V0U2l6ZSgpKTsNCiANCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0
cmluZzpOU0FjY2Vzc2liaWxpdHlHcmFiYmVkQXR0cmlidXRlXSkNCi0gICAgICAgIHJldHVybiBb
TlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6YmFja2luZ09iamVjdC0+aXNBUklBR3JhYmJlZCgpXTsN
CisgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6YmFja2luZ09iamVjdC0+
aXNHcmFiYmVkKCldOw0KIA0KICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5n
Ok5TQWNjZXNzaWJpbGl0eURyb3BFZmZlY3RzQXR0cmlidXRlXSkNCi0gICAgICAgIHJldHVybiBj
cmVhdGVOU0FycmF5KGJhY2tpbmdPYmplY3QtPmRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpKS5h
dXRvcmVsZWFzZSgpOw0KKyAgICAgICAgcmV0dXJuIGNyZWF0ZU5TQXJyYXkoYmFja2luZ09iamVj
dC0+ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSkuYXV0b3JlbGVhc2UoKTsNCiANCiAgICAgaWYgKFth
dHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlQbGFjZWhvbGRlclZh
bHVlQXR0cmlidXRlXSkNCiAgICAgICAgIHJldHVybiBiYWNraW5nT2JqZWN0LT5wbGFjZWhvbGRl
clZhbHVlKCk7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRl
TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbg0KaW5k
ZXggZGNkODM3OGQ5NTQuLmNiMzA0OTA0MDg5IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4NCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluDQpAQCAtMTIxLDYgKzEyMSw3IEBAIGRpc2FibGVyZW1vdGVwbGF5
YmFjaw0KIGRpc3Bvc2l0aW9uDQogZG93bmxvYWQNCiBkcmFnZ2FibGUNCitkcm9wem9uZQ0KIHdl
YmtpdGRyb3B6b25lDQogZW5jdHlwZQ0KIGVuZA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcA0KaW5kZXggN2JhOTZhY2M1MjAuLmNjZDAyMWVhOWNhIDEwMDY0NA0KLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHANCkBAIC0yMjgyLDkgKzIyODIsMjggQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmRpc3BhdGNoRHJhZ0V2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgRWxlbWVu
dCYgZHJhZ1QNCiAgICAgICAgIGV2ZW50Lm1vZGlmaWVycygpLCAwLCAwLCBudWxscHRyLCBldmVu
dC5mb3JjZSgpLCBOb1RhcCwgJmRhdGFUcmFuc2Zlcik7DQogDQogICAgIGRyYWdUYXJnZXQuZGlz
cGF0Y2hFdmVudChkcmFnRXZlbnQpOw0KKw0KKyAgICBpZiAoYXV0byogY2FjaGUgPSBtX2ZyYW1l
LmRvY3VtZW50KCktPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKSB7DQorICAgICAgICBpZiAoZXZl
bnRUeXBlID09IGV2ZW50TmFtZXMoKS5kcmFnc3RhcnRFdmVudCkNCisgICAgICAgICAgICBjYWNo
ZS0+cG9zdE5vdGlmaWNhdGlvbigmZHJhZ1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2lu
Z1N0YXJ0ZWQpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5k
cmFnZW5kRXZlbnQpDQorICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oJmRyYWdU
YXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdFbmRlZCk7DQorICAgICAgICBlbHNlIGlm
IChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRyYWdlbnRlckV2ZW50KQ0KKyAgICAgICAgICAg
IGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVjdENhY2hlOjpBWERy
YWdnaW5nRW50ZXJlZERyb3Bab25lKTsNCisgICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBl
dmVudE5hbWVzKCkuZHJhZ2xlYXZlRXZlbnQpDQorICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3Rp
ZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdFeGl0ZWREcm9w
Wm9uZSk7DQorICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRyb3BF
dmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbigmZHJhZ1RhcmdldCwg
QVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0Ryb3BwZWQpOw0KKyAgICB9DQorDQogICAgIHJldHVy
biBkcmFnRXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKTsNCiB9DQogDQorRWxlbWVudCogRXZlbnRI
YW5kbGVyOjpkcmFnZ2luZ0VsZW1lbnQoKSBjb25zdA0KK3sNCisgICAgcmV0dXJuIGRyYWdTdGF0
ZSgpLnNvdXJjZS5nZXQoKTsNCit9DQorDQogc3RhdGljIGJvb2wgdGFyZ2V0SXNGcmFtZShOb2Rl
KiB0YXJnZXQsIEZyYW1lKiYgZnJhbWUpDQogew0KICAgICBpZiAoIWlzPEhUTUxGcmFtZUVsZW1l
bnRCYXNlPih0YXJnZXQpKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oDQppbmRleCA1YjQ2
NDQwZTI4YS4uYjg2ZjFlMDJhODMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oDQpA
QCAtMzM5LDYgKzMzOSw5IEBAIHB1YmxpYzoNCiANCiAgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9u
YWw8Q3Vyc29yPiBzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGJvb2wgc2hpZnRL
ZXkpOw0KIA0KKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQ0KKyAgICBFbGVtZW50KiBkcmFnZ2lu
Z0VsZW1lbnQoKSBjb25zdDsNCisjZW5kaWYNCiBwcml2YXRlOg0KICNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQ0KICAgICBzdGF0aWMgRHJhZ1N0YXRlJiBkcmFnU3RhdGUoKTsNCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398589</attachid>
            <date>2020-05-05 22:18:43 -0700</date>
            <delta_ts>2020-05-05 23:46:16 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>23301</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZmM4ZGMwMTE5MDkuLmQ1ZTM5ODQ5MWNmIDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA1ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDUtMDUgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFsgTWFjIF0gZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5odG1sIGlzIGZs
YWt5IGZhaWxpbmcuDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
ZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw
MDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0wLDAgKzEsMjEgQEANCitU
aGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3Rp
ZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLg0KKw0KK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQgc3F1YXJlIG9udG8gbWUu
DQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0YXJnZXQ6DQorDQorU3F1
YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
J2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSBpcyB0cnVlDQorUEFT
UyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2Ryb3BUYXJn
ZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMgZmFsc2UNCitUYXJnZXQg
aXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitUYXJnZXQgaXMgZ3JhYmJl
ZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVyIGRyYWc6IDENCitBWERy
YWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWQN
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZw0KaW5kZXggMjkxZTAwNjk4NmIuLjJlN2M1MDRlMTM1IDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBA
IC0xLDMgKzEsNDkgQEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBh
cHBsZS5jb20+DQorDQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRN
TCA1LjEgRHJhZyAmIERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisN
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAgU3VwcG9ydCBI
VE1MNSBkcmFnIGFuZCBkcm9wLiBTdXBwb3J0IGRyb3B6b25lIGF0dHJpYnV0ZS4NCisgICAgICAg
IEFkZCBuZXcgbm90aWZpY2F0aW9ucyBmb3IgVm9pY2VPdmVyIHRvIGNvbnN1bWUuDQorDQorICAg
ICAgICBJdCBhcHBlYXJzIHRoYXQgbW9zdCBvZiB0aGUgZHJhZ2dpbmcgdGVzdHMgYXJlIHNraXBw
ZWQgYmVjYXVzZSBvZiBldmVudFNlbmRlciBpc3N1ZXMuDQorICAgICAgICBJIHRoaW5rIHRoaXMg
dGVzdCBjb3VsZCBkbyBhIGxpdHRsZSBtb3JlIGlmIHRob3NlIGlzc3VlcyB3ZXJlIHJlc29sdmVk
LiBTcGVjaWZpY2FsbHksIG5vdCBhbGwNCisgICAgICAgIHRoZSBub3RpZmljYXRpb25zIGFyZSBz
ZWVuIHRoYXQgYXJlIGV4cGVjdGVkLg0KKw0KKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9t
YWMvZHJhZ2dhYmxlLmh0bWwNCisNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBQXR0
cmlidXRlcyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6
aXNBWEhpZGRlbiBjb25zdCk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJ
bnRlcmZhY2UuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0Ryb3BwaW5nIGNvbnN0KToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0RyYWdnaW5nIGNvbnN0KToNCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0dyYWJiZWQpOg0KKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZURyb3BFZmZlY3RzKToN
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0FS
SUFEcm9wcGluZyBjb25zdCk6IERlbGV0ZWQuDQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcgY29uc3QpOiBEZWxldGVkLg0K
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzQVJJQUdyYWJi
ZWQpOiBEZWxldGVkLg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmRldGVybWluZUFSSUFEcm9wRWZmZWN0cyk6IERlbGV0ZWQuDQorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YSk6DQorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoNCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToNCisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bToNCisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFkZGl0aW9uYWxB
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXNdKToNCisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToNCisgICAgICAg
ICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46DQorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5k
bGVyLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2
ZW50KToNCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRyYWdnaW5nRWxlbWVudCBj
b25zdCk6DQorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6DQorDQogMjAyMC0wNS0wNSAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+DQogDQogICAgICAgICBGYWN0b3IgUmVu
ZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVFdmVudFJlZ2lvbiBza2lwIGNvbmRpdGlvbnMgaW50byBh
IGxhbWJkYQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgN
CmluZGV4IGEzMGQyYTkxNTE2Li40NmJkZjQxYmVmNyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KQEAgLTMwMyw3ICszMDMsMTIgQEAgcHVibGlj
Og0KICAgICAgICAgQVhSZXF1aXJlZFN0YXR1c0NoYW5nZWQsDQogICAgICAgICBBWFRleHRDaGFu
Z2VkLA0KICAgICAgICAgQVhBcmlhQXR0cmlidXRlQ2hhbmdlZCwNCi0gICAgICAgIEFYRWxlbWVu
dEJ1c3lDaGFuZ2VkDQorICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdlZCwNCisgICAgICAgIEFY
RHJhZ2dpbmdTdGFydGVkLA0KKyAgICAgICAgQVhEcmFnZ2luZ0VuZGVkLA0KKyAgICAgICAgQVhE
cmFnZ2luZ0VudGVyZWREcm9wWm9uZSwNCisgICAgICAgIEFYRHJhZ2dpbmdEcm9wcGVkLA0KKyAg
ICAgICAgQVhEcmFnZ2luZ0V4aXRlZERyb3Bab25lDQogICAgIH07DQogDQogICAgIHZvaWQgcG9z
dE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9
IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsNCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0K
aW5kZXggNDBlYTVmZWFlMTIuLjFmN2E3NjYwNzg1IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KQEAgLTI1MzQsOCAr
MjUzNCw4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBQXR0cmlidXRl
cygpIGNvbnN0DQogew0KICAgICAvLyBUaGlzIHJldHVybnMgd2hldGhlciB0aGUgZWxlbWVudCBz
dXBwb3J0cyBhbnkgZ2xvYmFsIEFSSUEgYXR0cmlidXRlcy4NCiAgICAgcmV0dXJuIHN1cHBvcnRz
TGl2ZVJlZ2lvbigpDQotICAgICAgICB8fCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpDQotICAgICAg
ICB8fCBzdXBwb3J0c0FSSUFEcm9wcGluZygpDQorICAgICAgICB8fCBzdXBwb3J0c0RyYWdnaW5n
KCkNCisgICAgICAgIHx8IHN1cHBvcnRzRHJvcHBpbmcoKQ0KICAgICAgICAgfHwgc3VwcG9ydHNB
UklBT3ducygpDQogICAgICAgICB8fCBoYXNBdHRyaWJ1dGUoYXJpYV9hdG9taWNBdHRyKQ0KICAg
ICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYnVzeUF0dHIpDQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaA0KaW5kZXggZjUzZDY5Yjdj
MzMuLjZmOGYyODdlZDk3IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oDQpAQCAtMzI3LDExICszMjcsMTEgQEAgcHVibGljOg0K
ICAgICBpbnQgcG9zSW5TZXQoKSBjb25zdCBvdmVycmlkZTsNCiANCiAgICAgLy8gQVJJQSBkcmFn
IGFuZCBkcm9wDQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQ0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCi0gICAgYm9vbCBpc0FSSUFHcmFiYmVkKCkg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBzdXBwb3J0c0Ryb3BwaW5nKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBzdXBwb3J0c0RyYWdn
aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBpc0dyYWJi
ZWQoKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KICAgICB2b2lkIHNldEFSSUFHcmFiYmVk
KGJvb2wpIG92ZXJyaWRlIHsgfQ0KLSAgICBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJv
cEVmZmVjdHMoKSBvdmVycmlkZSB7IHJldHVybiB7IH07IH0NCisgICAgVmVjdG9yPFN0cmluZz4g
ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB7IH07IH0NCiAN
CiAgICAgLy8gQ2FsbGVkIG9uIHRoZSByb290IEFYIG9iamVjdCB0byByZXR1cm4gdGhlIGRlZXBl
c3QgYXZhaWxhYmxlIGVsZW1lbnQuDQogICAgIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhp
dFRlc3QoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3RJbnRlcmZhY2UuaA0KaW5kZXggMWM4ODk1OGVkYmUuLjE5ZGY2ZGJiYzYyIDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SW50ZXJmYWNlLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQpAQCAtNzU2LDExICs3NTYsMTEgQEAgcHVibGljOg0K
ICAgICB2aXJ0dWFsIGludCBwb3NJblNldCgpIGNvbnN0ID0gMDsNCiANCiAgICAgLy8gQVJJQSBk
cmFnIGFuZCBkcm9wDQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNv
bnN0ID0gMDsNCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3Qg
PSAwOw0KLSAgICB2aXJ0dWFsIGJvb2wgaXNBUklBR3JhYmJlZCgpID0gMDsNCisgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzRHJvcHBpbmcoKSBjb25zdCA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c0RyYWdnaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgaXNHcmFiYmVk
KCkgPSAwOw0KICAgICB2aXJ0dWFsIHZvaWQgc2V0QVJJQUdyYWJiZWQoYm9vbCkgPSAwOw0KLSAg
ICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpID0gMDsN
CisgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpIGNvbnN0
ID0gMDsNCiANCiAgICAgLy8gQ2FsbGVkIG9uIHRoZSByb290IEFYIG9iamVjdCB0byByZXR1cm4g
dGhlIGRlZXBlc3QgYXZhaWxhYmxlIGVsZW1lbnQuDQogICAgIHZpcnR1YWwgQVhDb3JlT2JqZWN0
KiBhY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcA0KaW5kZXggMjYyYjI5YzljNWIuLmMzMDQxNTQ4MTY0IDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcA0KQEAgLTEwNDAsMzMgKzEwNDAsNDIgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpoYXNQb3B1cCgpIGNvbnN0DQogICAgIH0pOw0KIH0NCiANCi1ib29sIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3QgDQor
Ym9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0Ryb3BwaW5nKCkgY29uc3Qg
DQogew0KLSAgICBjb25zdCBBdG9tU3RyaW5nJiBkcm9wRWZmZWN0ID0gZ2V0QXR0cmlidXRlKGFy
aWFfZHJvcGVmZmVjdEF0dHIpOw0KLSAgICByZXR1cm4gIWRyb3BFZmZlY3QuaXNFbXB0eSgpOw0K
KyAgICByZXR1cm4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKS5zaXplKCk7DQogfQ0KIA0KLWJvb2wg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdA0K
K2Jvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
DQogew0KICAgICBjb25zdCBBdG9tU3RyaW5nJiBncmFiYmVkID0gZ2V0QXR0cmlidXRlKGFyaWFf
Z3JhYmJlZEF0dHIpOw0KLSAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
Z3JhYmJlZCwgInRydWUiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVk
LCAiZmFsc2UiKTsNCisgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdy
YWJiZWQsICJ0cnVlIikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwg
ImZhbHNlIikgfHwgaGFzQXR0cmlidXRlKGRyYWdnYWJsZUF0dHIpOw0KIH0NCiANCi1ib29sIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzQVJJQUdyYWJiZWQoKQ0KK2Jvb2wgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6aXNHcmFiYmVkKCkNCiB7DQorI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpDQorICAgIGlmIChtYWluRnJhbWUoKSAmJiBtYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCku
ZHJhZ2dpbmdFbGVtZW50KCkgPT0gZWxlbWVudCgpKQ0KKyAgICAgICAgcmV0dXJuIHRydWU7DQor
I2VuZGlmDQorDQogICAgIHJldHVybiBlbGVtZW50QXR0cmlidXRlVmFsdWUoYXJpYV9ncmFiYmVk
QXR0cik7DQogfQ0KIA0KLVZlY3RvcjxTdHJpbmc+IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpDQorVmVjdG9yPFN0cmluZz4gQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBjb25zdA0KIHsNCisgICAgLy8g
T3JkZXIgaXMgYXJpYS1kcm9wZWZmZWN0LCBkcm9wem9uZSwgd2Via2l0ZHJvcHpvbmUNCiAgICAg
Y29uc3QgQXRvbVN0cmluZyYgZHJvcEVmZmVjdHMgPSBnZXRBdHRyaWJ1dGUoYXJpYV9kcm9wZWZm
ZWN0QXR0cik7DQotICAgIGlmIChkcm9wRWZmZWN0cy5pc0VtcHR5KCkpIHsNCi0gICAgICAgIHJl
dHVybiB7IH07DQorICAgIGlmICghZHJvcEVmZmVjdHMuaXNFbXB0eSgpKSB7DQorICAgICAgICBT
dHJpbmcgZHJvcEVmZmVjdHNTdHJpbmcgPSBkcm9wRWZmZWN0cy5zdHJpbmcoKTsNCisgICAgICAg
IGRyb3BFZmZlY3RzU3RyaW5nLnJlcGxhY2UoJ1xuJywgJyAnKTsNCisgICAgICAgIHJldHVybiBk
cm9wRWZmZWN0c1N0cmluZy5zcGxpdCgnICcpOw0KICAgICB9DQogICAgIA0KLSAgICBTdHJpbmcg
ZHJvcEVmZmVjdHNTdHJpbmcgPSBkcm9wRWZmZWN0cy5zdHJpbmcoKTsNCi0gICAgZHJvcEVmZmVj
dHNTdHJpbmcucmVwbGFjZSgnXG4nLCAnICcpOw0KLSAgICByZXR1cm4gZHJvcEVmZmVjdHNTdHJp
bmcuc3BsaXQoJyAnKTsNCisgICAgYXV0byBkcm9wem9uZSA9IGdldEF0dHJpYnV0ZShkcm9wem9u
ZUF0dHIpOw0KKyAgICBpZiAoIWRyb3B6b25lLmlzRW1wdHkoKSkNCisgICAgICAgIHJldHVybiBW
ZWN0b3I8U3RyaW5nPiB7IGdldEF0dHJpYnV0ZShkcm9wem9uZUF0dHIpIH07DQorICAgIA0KKyAg
ICByZXR1cm4gVmVjdG9yPFN0cmluZz4geyBnZXRBdHRyaWJ1dGUod2Via2l0ZHJvcHpvbmVBdHRy
KSB9Ow0KIH0NCiAgICAgDQogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpleHBvc2Vz
VGl0bGVVSUVsZW1lbnQoKSBjb25zdA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgNCmluZGV4IDdlY2YwNGFhMDRl
Li4yMjhhNTMyOWU4YiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaA0KQEAgLTE3MSwxMCArMTcxLDEwIEBA
IHB1YmxpYzoNCiAgICAgYm9vbCBpc1Zpc2libGVQb3NpdGlvblJhbmdlSW5EaWZmZXJlbnREb2N1
bWVudChjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYpIGNvbnN0Ow0KICAgICBib29sIGhhc1Bv
cHVwKCkgY29uc3Qgb3ZlcnJpZGU7DQogDQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmco
KSBjb25zdCBvdmVycmlkZTsNCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0
IG92ZXJyaWRlOw0KLSAgICBib29sIGlzQVJJQUdyYWJiZWQoKSBvdmVycmlkZTsNCi0gICAgVmVj
dG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkgb3ZlcnJpZGU7DQorICAgIGJv
b2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92ZXJyaWRlOw0KKyAgICBib29sIHN1cHBvcnRz
RHJhZ2dpbmcoKSBjb25zdCBvdmVycmlkZTsNCisgICAgYm9vbCBpc0dyYWJiZWQoKSBvdmVycmlk
ZTsNCisgICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBjb25zdCBvdmVy
cmlkZTsNCiAgICAgDQogICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JQb2lu
dChjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOw0KICAgICBWaXNpYmxlUG9zaXRpb24g
dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgodW5zaWduZWQgaW5kZXhWYWx1ZSwgYm9vbCBsYXN0SW5k
ZXhPSykgY29uc3Qgb3ZlcnJpZGU7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlLmNwcA0KaW5kZXggOWYzOGU3ODY1YmQuLjBkNDEx
ZjQzZTllIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2Vi
S2l0QWNjZXNzaWJsZS5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L1dlYktpdEFjY2Vzc2libGUuY3BwDQpAQCAtNTYzLDkgKzU2Myw5IEBAIHN0YXRpYyBBdGtBdHRy
aWJ1dGVTZXQqIHdlYmtpdEFjY2Vzc2libGVHZXRBdHRyaWJ1dGVzKEF0a09iamVjdCogb2JqZWN0
KQ0KICAgICBpZiAoIWRyb3BFZmZlY3QuaXNFbXB0eSgpKQ0KICAgICAgICAgYXR0cmlidXRlU2V0
ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQoYXR0cmlidXRlU2V0LCAiZHJvcGVmZmVjdCIsIGRyb3BF
ZmZlY3QudXRmOCgpLmRhdGEoKSk7DQogDQotICAgIGlmIChjb3JlT2JqZWN0LT5pc0FSSUFHcmFi
YmVkKCkpDQorICAgIGlmIChjb3JlT2JqZWN0LT5pc0dyYWJiZWQoKSkNCiAgICAgICAgIGF0dHJp
YnV0ZVNldCA9IGFkZFRvQXRrQXR0cmlidXRlU2V0KGF0dHJpYnV0ZVNldCwgImdyYWJiZWQiLCAi
dHJ1ZSIpOw0KLSAgICBlbHNlIGlmIChjb3JlT2JqZWN0LT5zdXBwb3J0c0FSSUFEcmFnZ2luZygp
KQ0KKyAgICBlbHNlIGlmIChjb3JlT2JqZWN0LT5zdXBwb3J0c0RyYWdnaW5nKCkpDQogICAgICAg
ICBhdHRyaWJ1dGVTZXQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChhdHRyaWJ1dGVTZXQsICJncmFi
YmVkIiwgImZhbHNlIik7DQogDQogICAgIC8vIFRoZSBDb3JlIEFBTSBzdGF0ZXMgdGhlIGF1dGhv
ci1wcm92aWRlZCB2YWx1ZSBzaG91bGQgYmUgZXhwb3NlZCBhcy1pcy4NCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuY3BwDQppbmRleCA3ODkwOTA5YTgyZC4uZjUwY2M2Y2E5ODMgMTAwNjQ0DQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZE9iamVjdC5jcHANCkBAIC0xNzIsMTAgKzE3MiwxMCBAQCB2b2lkIEFYSXNvbGF0
ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9iamVjdCYgb2JqZWN0LCBi
b29sIGlzUm9vdA0KICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNQb3NJ
blNldCwgb2JqZWN0LnN1cHBvcnRzUG9zSW5TZXQoKSk7DQogICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpTZXRTaXplLCBvYmplY3Quc2V0U2l6ZSgpKTsNCiAgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlBvc0luU2V0LCBvYmplY3QucG9zSW5TZXQoKSk7DQotICAgIHNldFBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0FSSUFEcm9wcGluZywgb2JqZWN0LnN1cHBv
cnRzQVJJQURyb3BwaW5nKCkpOw0KLSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3Vw
cG9ydHNBUklBRHJhZ2dpbmcsIG9iamVjdC5zdXBwb3J0c0FSSUFEcmFnZ2luZygpKTsNCi0gICAg
c2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzQVJJQUdyYWJiZWQsIG9iamVjdC5pc0FSSUFH
cmFiYmVkKCkpOw0KLSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6QVJJQURyb3BFZmZl
Y3RzLCBvYmplY3QuZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkpOw0KKyAgICBzZXRQcm9wZXJ0
eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNEcm9wcGluZywgb2JqZWN0LnN1cHBvcnRzRHJvcHBp
bmcoKSk7DQorICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0RyYWdnaW5n
LCBvYmplY3Quc3VwcG9ydHNEcmFnZ2luZygpKTsNCisgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OklzR3JhYmJlZCwgb2JqZWN0LmlzR3JhYmJlZCgpKTsNCisgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OkRyb3BFZmZlY3RzLCBvYmplY3QuZGV0ZXJtaW5lRHJvcEVmZmVjdHMo
KSk7DQogICAgIHNldE9iamVjdFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpUaXRsZVVJRWxlbWVu
dCwgb2JqZWN0LnRpdGxlVUlFbGVtZW50KCkpOw0KICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5
TmFtZTo6RXhwb3Nlc1RpdGxlVUlFbGVtZW50LCBvYmplY3QuZXhwb3Nlc1RpdGxlVUlFbGVtZW50
KCkpOw0KICAgICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6VmVydGljYWxTY3Jv
bGxCYXIsIG9iamVjdC5zY3JvbGxCYXIoQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uOjpWZXJ0aWNh
bCkpOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KaW5kZXggMWM5MzZmZGEyNmEuLmIxOWY1ZWQz
NDY0IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCkBAIC04OSw3ICs4OSw3IEBAIHByaXZh
dGU6DQogICAgICAgICBBdXRvQ29tcGxldGVWYWx1ZSwNCiAgICAgICAgIEFSSUFDb250cm9sc0Vs
ZW1lbnRzLA0KICAgICAgICAgQVJJQURldGFpbHNFbGVtZW50cywNCi0gICAgICAgIEFSSUFEcm9w
RWZmZWN0cywNCisgICAgICAgIERyb3BFZmZlY3RzLA0KICAgICAgICAgQVJJQUVycm9yTWVzc2Fn
ZUVsZW1lbnRzLA0KICAgICAgICAgQVJJQUlzTXVsdGlsaW5lLA0KICAgICAgICAgQVJJQUZsb3dU
b0VsZW1lbnRzLA0KQEAgLTE2MSw3ICsxNjEsNyBAQCBwcml2YXRlOg0KICAgICAgICAgSXNBY2Nl
c3NpYmlsaXR5SWdub3JlZCwNCiAgICAgICAgIElzQWN0aXZlRGVzY2VuZGFudE9mRm9jdXNlZENv
bnRhaW5lciwNCiAgICAgICAgIElzQW5vbnltb3VzTWF0aE9wZXJhdG9yLA0KLSAgICAgICAgSXNB
UklBR3JhYmJlZCwNCisgICAgICAgIElzR3JhYmJlZCwNCiAgICAgICAgIElzQVJJQVRyZWVHcmlk
Um93LA0KICAgICAgICAgSXNBdHRhY2htZW50LA0KICAgICAgICAgSXNCdXR0b24sDQpAQCAtMjk5
LDggKzI5OSw4IEBAIHByaXZhdGU6DQogICAgICAgICBTcGVha0FzLA0KICAgICAgICAgU3BlZWNo
SGludCwNCiAgICAgICAgIFN0cmluZ1ZhbHVlLA0KLSAgICAgICAgU3VwcG9ydHNBUklBRHJhZ2dp
bmcsDQotICAgICAgICBTdXBwb3J0c0FSSUFEcm9wcGluZywNCisgICAgICAgIFN1cHBvcnRzRHJh
Z2dpbmcsDQorICAgICAgICBTdXBwb3J0c0Ryb3BwaW5nLA0KICAgICAgICAgU3VwcG9ydHNBUklB
T3ducywNCiAgICAgICAgIFN1cHBvcnRzQ3VycmVudCwNCiAgICAgICAgIFN1cHBvcnRzRGF0ZXRp
bWVBdHRyaWJ1dGUsDQpAQCAtNTA0LDEwICs1MDQsMTAgQEAgcHJpdmF0ZToNCiAgICAgYm9vbCBz
dXBwb3J0c1Bvc0luU2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZh
bHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c1Bvc0luU2V0KTsgfQ0KICAgICBpbnQgc2V0U2l6
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGludEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlO
YW1lOjpTZXRTaXplKTsgfQ0KICAgICBpbnQgcG9zSW5TZXQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBpbnRBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6UG9zSW5TZXQpOyB9DQotICAg
IGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29s
QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJQURyb3BwaW5nKTsgfQ0K
LSAgICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
Ym9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0FSSUFEcmFnZ2luZyk7
IH0NCi0gICAgYm9vbCBpc0FSSUFHcmFiYmVkKCkgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJp
YnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc0FSSUFHcmFiYmVkKTsgfQ0KLSAgICBWZWN0b3I8
U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSBvdmVycmlkZSB7IHJldHVybiB2ZWN0
b3JBdHRyaWJ1dGVWYWx1ZTxTdHJpbmc+KEFYUHJvcGVydHlOYW1lOjpBUklBRHJvcEVmZmVjdHMp
OyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcm9wcGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNEcm9wcGluZyk7IH0N
CisgICAgYm9vbCBzdXBwb3J0c0RyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9v
bEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0RyYWdnaW5nKTsgfQ0KKyAg
ICBib29sIGlzR3JhYmJlZCgpIG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShB
WFByb3BlcnR5TmFtZTo6SXNHcmFiYmVkKTsgfQ0KKyAgICBWZWN0b3I8U3RyaW5nPiBkZXRlcm1p
bmVEcm9wRWZmZWN0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHZlY3RvckF0dHJpYnV0ZVZh
bHVlPFN0cmluZz4oQVhQcm9wZXJ0eU5hbWU6OkRyb3BFZmZlY3RzKTsgfQ0KICAgICBBWENvcmVP
YmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJp
ZGU7DQogICAgIEFYQ29yZU9iamVjdCogZm9jdXNlZFVJRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRl
Ow0KICAgICBBWENvcmVPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHBhcmVudE9iamVjdFVuaWdub3JlZCgpOyB9DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0NCmluZGV4IDRmZWRmYTU2ZTM2
Li44ZWVkMDEwMjhjNCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0NCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0NCkBAIC05Niw2ICs5NiwzMCBAQA0KICNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUgQCJBWFNlbGVj
dGVkVGV4dE1hcmtlclJhbmdlIg0KICNlbmRpZg0KIA0KKyNpZm5kZWYga0FYRHJhZ2dpbmdTb3Vy
Y2VEcmFnQmVnYW5Ob3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5nU291cmNlRHJhZ0Jl
Z2FuTm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5nU291cmNlRHJhZ0JlZ2FuIikNCisjZW5k
aWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVkTm90aWZpY2F0aW9uDQor
I2RlZmluZSBrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhE
cmFnZ2luZ1NvdXJjZURyYWdFbmRlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhEcmFnZ2lu
Z0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5n
RGVzdGluYXRpb25Ecm9wQWxsb3dlZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ0Rlc3Rp
bmF0aW9uRHJvcEFsbG93ZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FYRHJhZ2dpbmdEZXN0
aW5hdGlvbkRyb3BOb3RBbGxvd2VkTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2luZ0Rl
c3RpbmF0aW9uRHJvcE5vdEFsbG93ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdEZXN0
aW5hdGlvbkRyb3BOb3RBbGxvd2VkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5n
RGVzdGluYXRpb25EcmFnQWNjZXB0ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5n
RGVzdGluYXRpb25EcmFnQWNjZXB0ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdEZXN0
aW5hdGlvbkRyYWdBY2NlcHRlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhEcmFnZ2luZ0Rl
c3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2lu
Z0Rlc3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkTm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5n
RGVzdGluYXRpb25EcmFnTm90QWNjZXB0ZWQiKQ0KKyNlbmRpZg0KKw0KIC8vIFZlcnkgbGFyZ2Ug
c3RyaW5ncyBjYW4gbmVnYXRpdmVseSBpbXBhY3QgdGhlIHBlcmZvcm1hbmNlIG9mIG5vdGlmaWNh
dGlvbnMsIHNvIHRoaXMgbGVuZ3RoIGlzIGNob3NlbiB0byB0cnkgdG8gZml0IGFuIGF2ZXJhZ2Ug
cGFyYWdyYXBoIG9yIGxpbmUgb2YgdGV4dCwgYnV0IG5vdCBhbGxvdyBzdHJpbmdzIHRvIGJlIGxh
cmdlIGVub3VnaCB0byBodXJ0IHBlcmZvcm1hbmNlLg0KIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2Vy
IEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsNCiANCkBAIC0zNTMsNiArMzc3
LDIxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFYQ29y
ZU9iamVjdCogb2JqLCBBWE5vdGlmaWNhdGlvbiBuDQogICAgICAgICBjYXNlIEFYTWVudU9wZW5l
ZDoNCiAgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYTWVudU9wZW5lZE5vdGlm
aWNhdGlvbjsNCiAgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ1N0
YXJ0ZWQ6DQorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWERyYWdnaW5nU291
cmNlRHJhZ0JlZ2FuTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAg
Y2FzZSBBWERyYWdnaW5nRW5kZWQ6DQorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlk
KWtBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVkTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJy
ZWFrOw0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5nRW50ZXJlZERyb3Bab25lOg0KKyAgICAgICAg
ICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93
ZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlIEFYRHJh
Z2dpbmdEcm9wcGVkOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhEcmFn
Z2luZ0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJy
ZWFrOw0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5nRXhpdGVkRHJvcFpvbmU6DQorICAgICAgICAg
ICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWERyYWdnaW5nRGVzdGluYXRpb25EcmFnTm90QWNj
ZXB0ZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICBkZWZhdWx0
Og0KICAgICAgICAgICAgIHJldHVybjsNCiAgICAgfQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0NCmluZGV4IGYxYjhhZGI0YWFhLi45MjBkMmM0ZWRkOCAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KQEAgLTEzNTAsMTAgKzEzNTAsMTAg
QEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5EDQogICAgICAgICB8fCBiYWNr
aW5nT2JqZWN0LT5pc1Rvb2xiYXIoKSkNCiAgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpO
U0FjY2Vzc2liaWxpdHlPcmllbnRhdGlvbkF0dHJpYnV0ZV07DQogDQotICAgIGlmIChiYWNraW5n
T2JqZWN0LT5zdXBwb3J0c0FSSUFEcmFnZ2luZygpKQ0KKyAgICBpZiAoYmFja2luZ09iamVjdC0+
c3VwcG9ydHNEcmFnZ2luZygpKQ0KICAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNj
ZXNzaWJpbGl0eUdyYWJiZWRBdHRyaWJ1dGVdOw0KIA0KLSAgICBpZiAoYmFja2luZ09iamVjdC0+
c3VwcG9ydHNBUklBRHJvcHBpbmcoKSkNCisgICAgaWYgKGJhY2tpbmdPYmplY3QtPnN1cHBvcnRz
RHJvcHBpbmcoKSkNCiAgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxp
dHlEcm9wRWZmZWN0c0F0dHJpYnV0ZV07DQogDQogICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1Rh
YmxlKCkgJiYgYmFja2luZ09iamVjdC0+aXNFeHBvc2FibGUoKSAmJiBiYWNraW5nT2JqZWN0LT5z
dXBwb3J0c1NlbGVjdGVkUm93cygpKQ0KQEAgLTI5MTcsMTAgKzI5MTcsMTAgQEAgQUxMT1dfREVQ
UkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5EDQogICAgICAgICByZXR1cm4gQChiYWNraW5nT2Jq
ZWN0LT5zZXRTaXplKCkpOw0KIA0KICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3Ry
aW5nOk5TQWNjZXNzaWJpbGl0eUdyYWJiZWRBdHRyaWJ1dGVdKQ0KLSAgICAgICAgcmV0dXJuIFtO
U051bWJlciBudW1iZXJXaXRoQm9vbDpiYWNraW5nT2JqZWN0LT5pc0FSSUFHcmFiYmVkKCldOw0K
KyAgICAgICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpiYWNraW5nT2JqZWN0LT5p
c0dyYWJiZWQoKV07DQogDQogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6
TlNBY2Nlc3NpYmlsaXR5RHJvcEVmZmVjdHNBdHRyaWJ1dGVdKQ0KLSAgICAgICAgcmV0dXJuIGNy
ZWF0ZU5TQXJyYXkoYmFja2luZ09iamVjdC0+ZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkpLmF1
dG9yZWxlYXNlKCk7DQorICAgICAgICByZXR1cm4gY3JlYXRlTlNBcnJheShiYWNraW5nT2JqZWN0
LT5kZXRlcm1pbmVEcm9wRWZmZWN0cygpKS5hdXRvcmVsZWFzZSgpOw0KIA0KICAgICBpZiAoW2F0
dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVBsYWNlaG9sZGVyVmFs
dWVBdHRyaWJ1dGVdKQ0KICAgICAgICAgcmV0dXJuIGJhY2tpbmdPYmplY3QtPnBsYWNlaG9sZGVy
VmFsdWUoKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVO
YW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluDQppbmRl
eCBkY2Q4Mzc4ZDk1NC4uY2IzMDQ5MDQwODkgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbg0KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4NCkBAIC0xMjEsNiArMTIxLDcgQEAgZGlzYWJsZXJlbW90ZXBsYXli
YWNrDQogZGlzcG9zaXRpb24NCiBkb3dubG9hZA0KIGRyYWdnYWJsZQ0KK2Ryb3B6b25lDQogd2Vi
a2l0ZHJvcHpvbmUNCiBlbmN0eXBlDQogZW5kDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwDQppbmRleCA3YmE5NmFjYzUyMC4uY2NkMDIxZWE5Y2EgMTAwNjQ0DQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcA0KQEAgLTIyODIsOSArMjI4MiwyOCBAQCBib29sIEV2ZW50SGFuZGxl
cjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFbGVtZW50
JiBkcmFnVA0KICAgICAgICAgZXZlbnQubW9kaWZpZXJzKCksIDAsIDAsIG51bGxwdHIsIGV2ZW50
LmZvcmNlKCksIE5vVGFwLCAmZGF0YVRyYW5zZmVyKTsNCiANCiAgICAgZHJhZ1RhcmdldC5kaXNw
YXRjaEV2ZW50KGRyYWdFdmVudCk7DQorDQorICAgIGlmIChhdXRvKiBjYWNoZSA9IG1fZnJhbWUu
ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsNCisgICAgICAgIGlmIChldmVu
dFR5cGUgPT0gZXZlbnROYW1lcygpLmRyYWdzdGFydEV2ZW50KQ0KKyAgICAgICAgICAgIGNhY2hl
LT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVjdENhY2hlOjpBWERyYWdnaW5n
U3RhcnRlZCk7DQorICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRy
YWdlbmRFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbigmZHJhZ1Rh
cmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0VuZGVkKTsNCisgICAgICAgIGVsc2UgaWYg
KGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQpDQorICAgICAgICAgICAg
Y2FjaGUtPnBvc3ROb3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJh
Z2dpbmdFbnRlcmVkRHJvcFpvbmUpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2
ZW50TmFtZXMoKS5kcmFnbGVhdmVFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlm
aWNhdGlvbigmZHJhZ1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0V4aXRlZERyb3Ba
b25lKTsNCisgICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJvcEV2
ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBB
WE9iamVjdENhY2hlOjpBWERyYWdnaW5nRHJvcHBlZCk7DQorICAgIH0NCisNCiAgICAgcmV0dXJu
IGRyYWdFdmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOw0KIH0NCiANCitFbGVtZW50KiBFdmVudEhh
bmRsZXI6OmRyYWdnaW5nRWxlbWVudCgpIGNvbnN0DQorew0KKyAgICByZXR1cm4gZHJhZ1N0YXRl
KCkuc291cmNlLmdldCgpOw0KK30NCisNCiBzdGF0aWMgYm9vbCB0YXJnZXRJc0ZyYW1lKE5vZGUq
IHRhcmdldCwgRnJhbWUqJiBmcmFtZSkNCiB7DQogICAgIGlmICghaXM8SFRNTEZyYW1lRWxlbWVu
dEJhc2U+KHRhcmdldCkpDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgNCmluZGV4IDViNDY0
NDBlMjhhLi5iODZmMWUwMmE4MyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgNCkBA
IC0zMzksNiArMzM5LDkgQEAgcHVibGljOg0KIA0KICAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25h
bDxDdXJzb3I+IHNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiwgYm9vbCBzaGlmdEtl
eSk7DQogDQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpDQorICAgIEVsZW1lbnQqIGRyYWdnaW5n
RWxlbWVudCgpIGNvbnN0Ow0KKyNlbmRpZg0KIHByaXZhdGU6DQogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpDQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOw0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398595</attachid>
            <date>2020-05-05 23:46:16 -0700</date>
            <delta_ts>2020-05-05 23:48:36 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>23425</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZmM4ZGMwMTE5MDkuLmQ1ZTM5ODQ5MWNmIDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA1ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDUtMDUgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFsgTWFjIF0gZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5odG1sIGlzIGZs
YWt5IGZhaWxpbmcuDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
ZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw
MDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0wLDAgKzEsMjEgQEANCitU
aGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3Rp
ZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLg0KKw0KK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQgc3F1YXJlIG9udG8gbWUu
DQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0YXJnZXQ6DQorDQorU3F1
YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
J2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSBpcyB0cnVlDQorUEFT
UyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2Ryb3BUYXJn
ZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMgZmFsc2UNCitUYXJnZXQg
aXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitUYXJnZXQgaXMgZ3JhYmJl
ZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVyIGRyYWc6IDENCitBWERy
YWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWQN
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZw0KaW5kZXggMjkxZTAwNjk4NmIuLjJlN2M1MDRlMTM1IDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBA
IC0xLDMgKzEsNDkgQEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBh
cHBsZS5jb20+DQorDQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRN
TCA1LjEgRHJhZyAmIERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisN
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAgU3VwcG9ydCBI
VE1MNSBkcmFnIGFuZCBkcm9wLiBTdXBwb3J0IGRyb3B6b25lIGF0dHJpYnV0ZS4NCisgICAgICAg
IEFkZCBuZXcgbm90aWZpY2F0aW9ucyBmb3IgVm9pY2VPdmVyIHRvIGNvbnN1bWUuDQorDQorICAg
ICAgICBJdCBhcHBlYXJzIHRoYXQgbW9zdCBvZiB0aGUgZHJhZ2dpbmcgdGVzdHMgYXJlIHNraXBw
ZWQgYmVjYXVzZSBvZiBldmVudFNlbmRlciBpc3N1ZXMuDQorICAgICAgICBJIHRoaW5rIHRoaXMg
dGVzdCBjb3VsZCBkbyBhIGxpdHRsZSBtb3JlIGlmIHRob3NlIGlzc3VlcyB3ZXJlIHJlc29sdmVk
LiBTcGVjaWZpY2FsbHksIG5vdCBhbGwNCisgICAgICAgIHRoZSBub3RpZmljYXRpb25zIGFyZSBz
ZWVuIHRoYXQgYXJlIGV4cGVjdGVkLg0KKw0KKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9t
YWMvZHJhZ2dhYmxlLmh0bWwNCisNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBQXR0
cmlidXRlcyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6
aXNBWEhpZGRlbiBjb25zdCk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJ
bnRlcmZhY2UuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0Ryb3BwaW5nIGNvbnN0KToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0RyYWdnaW5nIGNvbnN0KToNCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0dyYWJiZWQpOg0KKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZURyb3BFZmZlY3RzKToN
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0FS
SUFEcm9wcGluZyBjb25zdCk6IERlbGV0ZWQuDQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcgY29uc3QpOiBEZWxldGVkLg0K
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzQVJJQUdyYWJi
ZWQpOiBEZWxldGVkLg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmRldGVybWluZUFSSUFEcm9wRWZmZWN0cyk6IERlbGV0ZWQuDQorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YSk6DQorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoNCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToNCisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bToNCisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFkZGl0aW9uYWxB
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXNdKToNCisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToNCisgICAgICAg
ICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46DQorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5k
bGVyLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2
ZW50KToNCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRyYWdnaW5nRWxlbWVudCBj
b25zdCk6DQorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6DQorDQogMjAyMC0wNS0wNSAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+DQogDQogICAgICAgICBGYWN0b3IgUmVu
ZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVFdmVudFJlZ2lvbiBza2lwIGNvbmRpdGlvbnMgaW50byBh
IGxhbWJkYQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgN
CmluZGV4IGEzMGQyYTkxNTE2Li40NmJkZjQxYmVmNyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KQEAgLTMwMyw3ICszMDMsMTIgQEAgcHVibGlj
Og0KICAgICAgICAgQVhSZXF1aXJlZFN0YXR1c0NoYW5nZWQsDQogICAgICAgICBBWFRleHRDaGFu
Z2VkLA0KICAgICAgICAgQVhBcmlhQXR0cmlidXRlQ2hhbmdlZCwNCi0gICAgICAgIEFYRWxlbWVu
dEJ1c3lDaGFuZ2VkDQorICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdlZCwNCisgICAgICAgIEFY
RHJhZ2dpbmdTdGFydGVkLA0KKyAgICAgICAgQVhEcmFnZ2luZ0VuZGVkLA0KKyAgICAgICAgQVhE
cmFnZ2luZ0VudGVyZWREcm9wWm9uZSwNCisgICAgICAgIEFYRHJhZ2dpbmdEcm9wcGVkLA0KKyAg
ICAgICAgQVhEcmFnZ2luZ0V4aXRlZERyb3Bab25lDQogICAgIH07DQogDQogICAgIHZvaWQgcG9z
dE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9
IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsNCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0K
aW5kZXggNDBlYTVmZWFlMTIuLjFmN2E3NjYwNzg1IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KQEAgLTI1MzQsOCAr
MjUzNCw4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBQXR0cmlidXRl
cygpIGNvbnN0DQogew0KICAgICAvLyBUaGlzIHJldHVybnMgd2hldGhlciB0aGUgZWxlbWVudCBz
dXBwb3J0cyBhbnkgZ2xvYmFsIEFSSUEgYXR0cmlidXRlcy4NCiAgICAgcmV0dXJuIHN1cHBvcnRz
TGl2ZVJlZ2lvbigpDQotICAgICAgICB8fCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpDQotICAgICAg
ICB8fCBzdXBwb3J0c0FSSUFEcm9wcGluZygpDQorICAgICAgICB8fCBzdXBwb3J0c0RyYWdnaW5n
KCkNCisgICAgICAgIHx8IHN1cHBvcnRzRHJvcHBpbmcoKQ0KICAgICAgICAgfHwgc3VwcG9ydHNB
UklBT3ducygpDQogICAgICAgICB8fCBoYXNBdHRyaWJ1dGUoYXJpYV9hdG9taWNBdHRyKQ0KICAg
ICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYnVzeUF0dHIpDQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaA0KaW5kZXggZjUzZDY5Yjdj
MzMuLjZmOGYyODdlZDk3IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oDQpAQCAtMzI3LDExICszMjcsMTEgQEAgcHVibGljOg0K
ICAgICBpbnQgcG9zSW5TZXQoKSBjb25zdCBvdmVycmlkZTsNCiANCiAgICAgLy8gQVJJQSBkcmFn
IGFuZCBkcm9wDQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQ0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCi0gICAgYm9vbCBpc0FSSUFHcmFiYmVkKCkg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBzdXBwb3J0c0Ryb3BwaW5nKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBzdXBwb3J0c0RyYWdn
aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBpc0dyYWJi
ZWQoKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KICAgICB2b2lkIHNldEFSSUFHcmFiYmVk
KGJvb2wpIG92ZXJyaWRlIHsgfQ0KLSAgICBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJv
cEVmZmVjdHMoKSBvdmVycmlkZSB7IHJldHVybiB7IH07IH0NCisgICAgVmVjdG9yPFN0cmluZz4g
ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB7IH07IH0NCiAN
CiAgICAgLy8gQ2FsbGVkIG9uIHRoZSByb290IEFYIG9iamVjdCB0byByZXR1cm4gdGhlIGRlZXBl
c3QgYXZhaWxhYmxlIGVsZW1lbnQuDQogICAgIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhp
dFRlc3QoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3RJbnRlcmZhY2UuaA0KaW5kZXggMWM4ODk1OGVkYmUuLjE5ZGY2ZGJiYzYyIDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SW50ZXJmYWNlLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQpAQCAtNzU2LDExICs3NTYsMTEgQEAgcHVibGljOg0K
ICAgICB2aXJ0dWFsIGludCBwb3NJblNldCgpIGNvbnN0ID0gMDsNCiANCiAgICAgLy8gQVJJQSBk
cmFnIGFuZCBkcm9wDQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNv
bnN0ID0gMDsNCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3Qg
PSAwOw0KLSAgICB2aXJ0dWFsIGJvb2wgaXNBUklBR3JhYmJlZCgpID0gMDsNCisgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzRHJvcHBpbmcoKSBjb25zdCA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c0RyYWdnaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgaXNHcmFiYmVk
KCkgPSAwOw0KICAgICB2aXJ0dWFsIHZvaWQgc2V0QVJJQUdyYWJiZWQoYm9vbCkgPSAwOw0KLSAg
ICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpID0gMDsN
CisgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpIGNvbnN0
ID0gMDsNCiANCiAgICAgLy8gQ2FsbGVkIG9uIHRoZSByb290IEFYIG9iamVjdCB0byByZXR1cm4g
dGhlIGRlZXBlc3QgYXZhaWxhYmxlIGVsZW1lbnQuDQogICAgIHZpcnR1YWwgQVhDb3JlT2JqZWN0
KiBhY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcA0KaW5kZXggMjYyYjI5YzljNWIuLmFlN2Q1MDk0NjQxIDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcA0KQEAgLTEwNDAsMzMgKzEwNDAsNDYgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpoYXNQb3B1cCgpIGNvbnN0DQogICAgIH0pOw0KIH0NCiANCi1ib29sIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3QgDQor
Ym9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0Ryb3BwaW5nKCkgY29uc3Qg
DQogew0KLSAgICBjb25zdCBBdG9tU3RyaW5nJiBkcm9wRWZmZWN0ID0gZ2V0QXR0cmlidXRlKGFy
aWFfZHJvcGVmZmVjdEF0dHIpOw0KLSAgICByZXR1cm4gIWRyb3BFZmZlY3QuaXNFbXB0eSgpOw0K
KyAgICByZXR1cm4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKS5zaXplKCk7DQogfQ0KIA0KLWJvb2wg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdA0K
K2Jvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
DQogew0KICAgICBjb25zdCBBdG9tU3RyaW5nJiBncmFiYmVkID0gZ2V0QXR0cmlidXRlKGFyaWFf
Z3JhYmJlZEF0dHIpOw0KLSAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
Z3JhYmJlZCwgInRydWUiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVk
LCAiZmFsc2UiKTsNCisgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdy
YWJiZWQsICJ0cnVlIikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwg
ImZhbHNlIikgfHwgaGFzQXR0cmlidXRlKGRyYWdnYWJsZUF0dHIpOw0KIH0NCiANCi1ib29sIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzQVJJQUdyYWJiZWQoKQ0KK2Jvb2wgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6aXNHcmFiYmVkKCkNCiB7DQorI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpDQorICAgIGlmIChtYWluRnJhbWUoKSAmJiBtYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCku
ZHJhZ2dpbmdFbGVtZW50KCkgPT0gZWxlbWVudCgpKQ0KKyAgICAgICAgcmV0dXJuIHRydWU7DQor
I2VuZGlmDQorDQogICAgIHJldHVybiBlbGVtZW50QXR0cmlidXRlVmFsdWUoYXJpYV9ncmFiYmVk
QXR0cik7DQogfQ0KIA0KLVZlY3RvcjxTdHJpbmc+IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpDQorVmVjdG9yPFN0cmluZz4gQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBjb25zdA0KIHsNCisgICAgLy8g
T3JkZXIgaXMgYXJpYS1kcm9wZWZmZWN0LCBkcm9wem9uZSwgd2Via2l0ZHJvcHpvbmUNCiAgICAg
Y29uc3QgQXRvbVN0cmluZyYgZHJvcEVmZmVjdHMgPSBnZXRBdHRyaWJ1dGUoYXJpYV9kcm9wZWZm
ZWN0QXR0cik7DQotICAgIGlmIChkcm9wRWZmZWN0cy5pc0VtcHR5KCkpIHsNCi0gICAgICAgIHJl
dHVybiB7IH07DQorICAgIGlmICghZHJvcEVmZmVjdHMuaXNFbXB0eSgpKSB7DQorICAgICAgICBT
dHJpbmcgZHJvcEVmZmVjdHNTdHJpbmcgPSBkcm9wRWZmZWN0cy5zdHJpbmcoKTsNCisgICAgICAg
IGRyb3BFZmZlY3RzU3RyaW5nLnJlcGxhY2UoJ1xuJywgJyAnKTsNCisgICAgICAgIHJldHVybiBk
cm9wRWZmZWN0c1N0cmluZy5zcGxpdCgnICcpOw0KICAgICB9DQogICAgIA0KLSAgICBTdHJpbmcg
ZHJvcEVmZmVjdHNTdHJpbmcgPSBkcm9wRWZmZWN0cy5zdHJpbmcoKTsNCi0gICAgZHJvcEVmZmVj
dHNTdHJpbmcucmVwbGFjZSgnXG4nLCAnICcpOw0KLSAgICByZXR1cm4gZHJvcEVmZmVjdHNTdHJp
bmcuc3BsaXQoJyAnKTsNCisgICAgYXV0byBkcm9wem9uZSA9IGdldEF0dHJpYnV0ZShkcm9wem9u
ZUF0dHIpOw0KKyAgICBpZiAoIWRyb3B6b25lLmlzRW1wdHkoKSkNCisgICAgICAgIHJldHVybiBW
ZWN0b3I8U3RyaW5nPiB7IGdldEF0dHJpYnV0ZShkcm9wem9uZUF0dHIpIH07DQorICAgIA0KKyAg
ICBhdXRvIHdlYmtpdGRyb3B6b25lID0gZ2V0QXR0cmlidXRlKHdlYmtpdGRyb3B6b25lQXR0cik7
DQorICAgIGlmICghd2Via2l0ZHJvcHpvbmUuaXNFbXB0eSgpKQ0KKyAgICAgICAgcmV0dXJuIFZl
Y3RvcjxTdHJpbmc+IHsgZ2V0QXR0cmlidXRlKHdlYmtpdGRyb3B6b25lKSB9Ow0KKyAgICANCisg
ICAgcmV0dXJuIHsgfTsNCiB9DQogICAgIA0KIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6ZXhwb3Nlc1RpdGxlVUlFbGVtZW50KCkgY29uc3QNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oDQppbmRleCA3
ZWNmMDRhYTA0ZS4uMjI4YTUzMjllOGIgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaA0KKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgNCkBAIC0xNzEsMTAg
KzE3MSwxMCBAQCBwdWJsaWM6DQogICAgIGJvb2wgaXNWaXNpYmxlUG9zaXRpb25SYW5nZUluRGlm
ZmVyZW50RG9jdW1lbnQoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmKSBjb25zdDsNCiAgICAg
Ym9vbCBoYXNQb3B1cCgpIGNvbnN0IG92ZXJyaWRlOw0KIA0KLSAgICBib29sIHN1cHBvcnRzQVJJ
QURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGU7DQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJhZ2dp
bmcoKSBjb25zdCBvdmVycmlkZTsNCi0gICAgYm9vbCBpc0FSSUFHcmFiYmVkKCkgb3ZlcnJpZGU7
DQotICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpIG92ZXJyaWRl
Ow0KKyAgICBib29sIHN1cHBvcnRzRHJvcHBpbmcoKSBjb25zdCBvdmVycmlkZTsNCisgICAgYm9v
bCBzdXBwb3J0c0RyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGU7DQorICAgIGJvb2wgaXNHcmFiYmVk
KCkgb3ZlcnJpZGU7DQorICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZURyb3BFZmZlY3RzKCkg
Y29uc3Qgb3ZlcnJpZGU7DQogICAgIA0KICAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0
aW9uRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsNCiAgICAgVmlzaWJs
ZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHVuc2lnbmVkIGluZGV4VmFsdWUsIGJv
b2wgbGFzdEluZGV4T0spIGNvbnN0IG92ZXJyaWRlOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZS5jcHANCmluZGV4IDlmMzhlNzg2
NWJkLi4wZDQxMWY0M2U5ZSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvYXRrL1dlYktpdEFjY2Vzc2libGUuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlLmNwcA0KQEAgLTU2Myw5ICs1NjMsOSBAQCBzdGF0
aWMgQXRrQXR0cmlidXRlU2V0KiB3ZWJraXRBY2Nlc3NpYmxlR2V0QXR0cmlidXRlcyhBdGtPYmpl
Y3QqIG9iamVjdCkNCiAgICAgaWYgKCFkcm9wRWZmZWN0LmlzRW1wdHkoKSkNCiAgICAgICAgIGF0
dHJpYnV0ZVNldCA9IGFkZFRvQXRrQXR0cmlidXRlU2V0KGF0dHJpYnV0ZVNldCwgImRyb3BlZmZl
Y3QiLCBkcm9wRWZmZWN0LnV0ZjgoKS5kYXRhKCkpOw0KIA0KLSAgICBpZiAoY29yZU9iamVjdC0+
aXNBUklBR3JhYmJlZCgpKQ0KKyAgICBpZiAoY29yZU9iamVjdC0+aXNHcmFiYmVkKCkpDQogICAg
ICAgICBhdHRyaWJ1dGVTZXQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChhdHRyaWJ1dGVTZXQsICJn
cmFiYmVkIiwgInRydWUiKTsNCi0gICAgZWxzZSBpZiAoY29yZU9iamVjdC0+c3VwcG9ydHNBUklB
RHJhZ2dpbmcoKSkNCisgICAgZWxzZSBpZiAoY29yZU9iamVjdC0+c3VwcG9ydHNEcmFnZ2luZygp
KQ0KICAgICAgICAgYXR0cmlidXRlU2V0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQoYXR0cmlidXRl
U2V0LCAiZ3JhYmJlZCIsICJmYWxzZSIpOw0KIA0KICAgICAvLyBUaGUgQ29yZSBBQU0gc3RhdGVz
IHRoZSBhdXRob3ItcHJvdmlkZWQgdmFsdWUgc2hvdWxkIGJlIGV4cG9zZWQgYXMtaXMuDQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KaW5kZXggNzg5MDkwOWE4MmQuLmY1MGNjNmNhOTgzIDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZE9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwDQpAQCAtMTcyLDEwICsxNzIsMTAgQEAgdm9p
ZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShBWENvcmVPYmplY3Qm
IG9iamVjdCwgYm9vbCBpc1Jvb3QNCiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1
cHBvcnRzUG9zSW5TZXQsIG9iamVjdC5zdXBwb3J0c1Bvc0luU2V0KCkpOw0KICAgICBzZXRQcm9w
ZXJ0eShBWFByb3BlcnR5TmFtZTo6U2V0U2l6ZSwgb2JqZWN0LnNldFNpemUoKSk7DQogICAgIHNl
dFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpQb3NJblNldCwgb2JqZWN0LnBvc0luU2V0KCkpOw0K
LSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNBUklBRHJvcHBpbmcsIG9i
amVjdC5zdXBwb3J0c0FSSUFEcm9wcGluZygpKTsNCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OlN1cHBvcnRzQVJJQURyYWdnaW5nLCBvYmplY3Quc3VwcG9ydHNBUklBRHJhZ2dpbmco
KSk7DQotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc0FSSUFHcmFiYmVkLCBvYmpl
Y3QuaXNBUklBR3JhYmJlZCgpKTsNCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkFS
SUFEcm9wRWZmZWN0cywgb2JqZWN0LmRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpKTsNCisgICAg
c2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJvcHBpbmcsIG9iamVjdC5zdXBw
b3J0c0Ryb3BwaW5nKCkpOw0KKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9y
dHNEcmFnZ2luZywgb2JqZWN0LnN1cHBvcnRzRHJhZ2dpbmcoKSk7DQorICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpJc0dyYWJiZWQsIG9iamVjdC5pc0dyYWJiZWQoKSk7DQorICAgIHNl
dFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpEcm9wRWZmZWN0cywgb2JqZWN0LmRldGVybWluZURy
b3BFZmZlY3RzKCkpOw0KICAgICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6VGl0
bGVVSUVsZW1lbnQsIG9iamVjdC50aXRsZVVJRWxlbWVudCgpKTsNCiAgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OkV4cG9zZXNUaXRsZVVJRWxlbWVudCwgb2JqZWN0LmV4cG9zZXNUaXRs
ZVVJRWxlbWVudCgpKTsNCiAgICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlZl
cnRpY2FsU2Nyb2xsQmFyLCBvYmplY3Quc2Nyb2xsQmFyKEFjY2Vzc2liaWxpdHlPcmllbnRhdGlv
bjo6VmVydGljYWwpKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCmluZGV4IDFjOTM2ZmRhMjZh
Li5iMTlmNWVkMzQ2NCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQpAQCAtODksNyArODks
NyBAQCBwcml2YXRlOg0KICAgICAgICAgQXV0b0NvbXBsZXRlVmFsdWUsDQogICAgICAgICBBUklB
Q29udHJvbHNFbGVtZW50cywNCiAgICAgICAgIEFSSUFEZXRhaWxzRWxlbWVudHMsDQotICAgICAg
ICBBUklBRHJvcEVmZmVjdHMsDQorICAgICAgICBEcm9wRWZmZWN0cywNCiAgICAgICAgIEFSSUFF
cnJvck1lc3NhZ2VFbGVtZW50cywNCiAgICAgICAgIEFSSUFJc011bHRpbGluZSwNCiAgICAgICAg
IEFSSUFGbG93VG9FbGVtZW50cywNCkBAIC0xNjEsNyArMTYxLDcgQEAgcHJpdmF0ZToNCiAgICAg
ICAgIElzQWNjZXNzaWJpbGl0eUlnbm9yZWQsDQogICAgICAgICBJc0FjdGl2ZURlc2NlbmRhbnRP
ZkZvY3VzZWRDb250YWluZXIsDQogICAgICAgICBJc0Fub255bW91c01hdGhPcGVyYXRvciwNCi0g
ICAgICAgIElzQVJJQUdyYWJiZWQsDQorICAgICAgICBJc0dyYWJiZWQsDQogICAgICAgICBJc0FS
SUFUcmVlR3JpZFJvdywNCiAgICAgICAgIElzQXR0YWNobWVudCwNCiAgICAgICAgIElzQnV0dG9u
LA0KQEAgLTI5OSw4ICsyOTksOCBAQCBwcml2YXRlOg0KICAgICAgICAgU3BlYWtBcywNCiAgICAg
ICAgIFNwZWVjaEhpbnQsDQogICAgICAgICBTdHJpbmdWYWx1ZSwNCi0gICAgICAgIFN1cHBvcnRz
QVJJQURyYWdnaW5nLA0KLSAgICAgICAgU3VwcG9ydHNBUklBRHJvcHBpbmcsDQorICAgICAgICBT
dXBwb3J0c0RyYWdnaW5nLA0KKyAgICAgICAgU3VwcG9ydHNEcm9wcGluZywNCiAgICAgICAgIFN1
cHBvcnRzQVJJQU93bnMsDQogICAgICAgICBTdXBwb3J0c0N1cnJlbnQsDQogICAgICAgICBTdXBw
b3J0c0RhdGV0aW1lQXR0cmlidXRlLA0KQEAgLTUwNCwxMCArNTA0LDEwIEBAIHByaXZhdGU6DQog
ICAgIGJvb2wgc3VwcG9ydHNQb3NJblNldCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNQb3NJblNldCk7IH0NCiAgICAg
aW50IHNldFNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBpbnRBdHRyaWJ1dGVWYWx1ZShB
WFByb3BlcnR5TmFtZTo6U2V0U2l6ZSk7IH0NCiAgICAgaW50IHBvc0luU2V0KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gaW50QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlBvc0luU2V0
KTsgfQ0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0FSSUFEcm9w
cGluZyk7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNBUklB
RHJhZ2dpbmcpOyB9DQotICAgIGJvb2wgaXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlIHsgcmV0dXJu
IGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNBUklBR3JhYmJlZCk7IH0NCi0g
ICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lQVJJQURyb3BFZmZlY3RzKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gdmVjdG9yQXR0cmlidXRlVmFsdWU8U3RyaW5nPihBWFByb3BlcnR5TmFtZTo6QVJJQURy
b3BFZmZlY3RzKTsgfQ0KKyAgICBib29sIHN1cHBvcnRzRHJvcHBpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJv
cHBpbmcpOyB9DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNEcmFnZ2lu
Zyk7IH0NCisgICAgYm9vbCBpc0dyYWJiZWQoKSBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmli
dXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzR3JhYmJlZCk7IH0NCisgICAgVmVjdG9yPFN0cmlu
Zz4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB2ZWN0b3JB
dHRyaWJ1dGVWYWx1ZTxTdHJpbmc+KEFYUHJvcGVydHlOYW1lOjpEcm9wRWZmZWN0cyk7IH0NCiAg
ICAgQVhDb3JlT2JqZWN0KiBhY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNv
bnN0IG92ZXJyaWRlOw0KICAgICBBWENvcmVPYmplY3QqIGZvY3VzZWRVSUVsZW1lbnQoKSBjb25z
dCBvdmVycmlkZTsNCiAgICAgQVhDb3JlT2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBwYXJlbnRPYmplY3RVbmlnbm9yZWQoKTsgfQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQppbmRleCA0
ZmVkZmE1NmUzNi4uOGVlZDAxMDI4YzQgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tDQpAQCAtOTYsNiArOTYsMzAgQEAN
CiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRl
IEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSINCiAjZW5kaWYNCiANCisjaWZuZGVmIGtBWERy
YWdnaW5nU291cmNlRHJhZ0JlZ2FuTm90aWZpY2F0aW9uDQorI2RlZmluZSBrQVhEcmFnZ2luZ1Nv
dXJjZURyYWdCZWdhbk5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ1NvdXJjZURyYWdCZWdh
biIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5vdGlm
aWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWROb3RpZmljYXRpb24g
Q0ZTVFIoIkFYRHJhZ2dpbmdTb3VyY2VEcmFnRW5kZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYg
a0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BBbGxvd2VkTm90aWZpY2F0aW9uDQorI2RlZmluZSBr
QVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJh
Z2dpbmdEZXN0aW5hdGlvbkRyb3BBbGxvd2VkIikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERy
YWdnaW5nRGVzdGluYXRpb25Ecm9wTm90QWxsb3dlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FY
RHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BOb3RBbGxvd2VkTm90aWZpY2F0aW9uIENGU1RSKCJBWERy
YWdnaW5nRGVzdGluYXRpb25Ecm9wTm90QWxsb3dlZCIpDQorI2VuZGlmDQorDQorI2lmbmRlZiBr
QVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uDQorI2RlZmluZSBr
QVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkTm90aWZpY2F0aW9uIENGU1RSKCJBWERy
YWdnaW5nRGVzdGluYXRpb25EcmFnQWNjZXB0ZWQiKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FY
RHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUg
a0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZE5vdGlmaWNhdGlvbiBDRlNUUigi
QVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ05vdEFjY2VwdGVkIikNCisjZW5kaWYNCisNCiAvLyBW
ZXJ5IGxhcmdlIHN0cmluZ3MgY2FuIG5lZ2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3JtYW5jZSBv
ZiBub3RpZmljYXRpb25zLCBzbyB0aGlzIGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRvIGZpdCBh
biBhdmVyYWdlIHBhcmFncmFwaCBvciBsaW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cgc3RyaW5n
cyB0byBiZSBsYXJnZSBlbm91Z2ggdG8gaHVydCBwZXJmb3JtYW5jZS4NCiBzdGF0aWMgY29uc3Qg
TlNVSW50ZWdlciBBWFZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7DQogDQpAQCAt
MzUzLDYgKzM3NywyMSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBWENvcmVPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24gbg0KICAgICAgICAgY2FzZSBB
WE1lbnVPcGVuZWQ6DQogICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWE1lbnVP
cGVuZWROb3RpZmljYXRpb247DQogICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlIEFY
RHJhZ2dpbmdTdGFydGVkOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhE
cmFnZ2luZ1NvdXJjZURyYWdCZWdhbk5vdGlmaWNhdGlvbjsNCisgICAgICAgICAgICBicmVhazsN
CisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0VuZGVkOg0KKyAgICAgICAgICAgIG1hY05vdGlmaWNh
dGlvbiA9IChpZClrQVhEcmFnZ2luZ1NvdXJjZURyYWdFbmRlZE5vdGlmaWNhdGlvbjsNCisgICAg
ICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0VudGVyZWREcm9wWm9uZToN
CisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdEZXN0aW5hdGlv
bkRyb3BBbGxvd2VkTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAg
Y2FzZSBBWERyYWdnaW5nRHJvcHBlZDoNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAo
aWQpa0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdBY2NlcHRlZE5vdGlmaWNhdGlvbjsNCisgICAg
ICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0V4aXRlZERyb3Bab25lOg0K
KyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IChpZClrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9u
RHJhZ05vdEFjY2VwdGVkTm90aWZpY2F0aW9uOw0KKyAgICAgICAgICAgIGJyZWFrOw0KICAgICAg
ICAgZGVmYXVsdDoNCiAgICAgICAgICAgICByZXR1cm47DQogICAgIH0NCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tDQppbmRleCBmMWI4YWRiNGFhYS4uOTIwZDJjNGVkZDgg
MTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCkBAIC0xMzUwLDEw
ICsxMzUwLDEwIEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORA0KICAgICAg
ICAgfHwgYmFja2luZ09iamVjdC0+aXNUb29sYmFyKCkpDQogICAgICAgICBbYWRkaXRpb25hbCBh
ZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb25BdHRyaWJ1dGVdOw0KIA0KLSAgICBp
ZiAoYmFja2luZ09iamVjdC0+c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSkNCisgICAgaWYgKGJhY2tp
bmdPYmplY3QtPnN1cHBvcnRzRHJhZ2dpbmcoKSkNCiAgICAgICAgIFthZGRpdGlvbmFsIGFkZE9i
amVjdDpOU0FjY2Vzc2liaWxpdHlHcmFiYmVkQXR0cmlidXRlXTsNCiANCi0gICAgaWYgKGJhY2tp
bmdPYmplY3QtPnN1cHBvcnRzQVJJQURyb3BwaW5nKCkpDQorICAgIGlmIChiYWNraW5nT2JqZWN0
LT5zdXBwb3J0c0Ryb3BwaW5nKCkpDQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6TlNB
Y2Nlc3NpYmlsaXR5RHJvcEVmZmVjdHNBdHRyaWJ1dGVdOw0KIA0KICAgICBpZiAoYmFja2luZ09i
amVjdC0+aXNUYWJsZSgpICYmIGJhY2tpbmdPYmplY3QtPmlzRXhwb3NhYmxlKCkgJiYgYmFja2lu
Z09iamVjdC0+c3VwcG9ydHNTZWxlY3RlZFJvd3MoKSkNCkBAIC0yOTE3LDEwICsyOTE3LDEwIEBA
IEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORA0KICAgICAgICAgcmV0dXJuIEAo
YmFja2luZ09iamVjdC0+c2V0U2l6ZSgpKTsNCiANCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlz
RXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlHcmFiYmVkQXR0cmlidXRlXSkNCi0gICAgICAg
IHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6YmFja2luZ09iamVjdC0+aXNBUklBR3Jh
YmJlZCgpXTsNCisgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6YmFja2lu
Z09iamVjdC0+aXNHcmFiYmVkKCldOw0KIA0KICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVh
bFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eURyb3BFZmZlY3RzQXR0cmlidXRlXSkNCi0gICAgICAg
IHJldHVybiBjcmVhdGVOU0FycmF5KGJhY2tpbmdPYmplY3QtPmRldGVybWluZUFSSUFEcm9wRWZm
ZWN0cygpKS5hdXRvcmVsZWFzZSgpOw0KKyAgICAgICAgcmV0dXJuIGNyZWF0ZU5TQXJyYXkoYmFj
a2luZ09iamVjdC0+ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSkuYXV0b3JlbGVhc2UoKTsNCiANCiAg
ICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlQbGFj
ZWhvbGRlclZhbHVlQXR0cmlidXRlXSkNCiAgICAgICAgIHJldHVybiBiYWNraW5nT2JqZWN0LT5w
bGFjZWhvbGRlclZhbHVlKCk7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1l
cy5pbg0KaW5kZXggZGNkODM3OGQ5NTQuLmNiMzA0OTA0MDg5IDEwMDY0NA0KLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4NCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluDQpAQCAtMTIxLDYgKzEyMSw3IEBAIGRpc2FibGVy
ZW1vdGVwbGF5YmFjaw0KIGRpc3Bvc2l0aW9uDQogZG93bmxvYWQNCiBkcmFnZ2FibGUNCitkcm9w
em9uZQ0KIHdlYmtpdGRyb3B6b25lDQogZW5jdHlwZQ0KIGVuZA0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcA0KaW5kZXggN2JhOTZhY2M1MjAuLmNjZDAyMWVhOWNhIDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHANCkBAIC0yMjgyLDkgKzIyODIsMjggQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlw
ZSwgRWxlbWVudCYgZHJhZ1QNCiAgICAgICAgIGV2ZW50Lm1vZGlmaWVycygpLCAwLCAwLCBudWxs
cHRyLCBldmVudC5mb3JjZSgpLCBOb1RhcCwgJmRhdGFUcmFuc2Zlcik7DQogDQogICAgIGRyYWdU
YXJnZXQuZGlzcGF0Y2hFdmVudChkcmFnRXZlbnQpOw0KKw0KKyAgICBpZiAoYXV0byogY2FjaGUg
PSBtX2ZyYW1lLmRvY3VtZW50KCktPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKSB7DQorICAgICAg
ICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kcmFnc3RhcnRFdmVudCkNCisgICAgICAg
ICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbigmZHJhZ1RhcmdldCwgQVhPYmplY3RDYWNoZTo6
QVhEcmFnZ2luZ1N0YXJ0ZWQpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50
TmFtZXMoKS5kcmFnZW5kRXZlbnQpDQorICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRp
b24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdFbmRlZCk7DQorICAgICAg
ICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRyYWdlbnRlckV2ZW50KQ0KKyAg
ICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVjdENh
Y2hlOjpBWERyYWdnaW5nRW50ZXJlZERyb3Bab25lKTsNCisgICAgICAgIGVsc2UgaWYgKGV2ZW50
VHlwZSA9PSBldmVudE5hbWVzKCkuZHJhZ2xlYXZlRXZlbnQpDQorICAgICAgICAgICAgY2FjaGUt
PnBvc3ROb3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdF
eGl0ZWREcm9wWm9uZSk7DQorICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmRyb3BFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbigmZHJh
Z1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0Ryb3BwZWQpOw0KKyAgICB9DQorDQog
ICAgIHJldHVybiBkcmFnRXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKTsNCiB9DQogDQorRWxlbWVu
dCogRXZlbnRIYW5kbGVyOjpkcmFnZ2luZ0VsZW1lbnQoKSBjb25zdA0KK3sNCisgICAgcmV0dXJu
IGRyYWdTdGF0ZSgpLnNvdXJjZS5nZXQoKTsNCit9DQorDQogc3RhdGljIGJvb2wgdGFyZ2V0SXNG
cmFtZShOb2RlKiB0YXJnZXQsIEZyYW1lKiYgZnJhbWUpDQogew0KICAgICBpZiAoIWlzPEhUTUxG
cmFtZUVsZW1lbnRCYXNlPih0YXJnZXQpKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oDQpp
bmRleCA1YjQ2NDQwZTI4YS4uYjg2ZjFlMDJhODMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5oDQpAQCAtMzM5LDYgKzMzOSw5IEBAIHB1YmxpYzoNCiANCiAgICAgV0VCQ09SRV9FWFBP
UlQgT3B0aW9uYWw8Q3Vyc29yPiBzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGJv
b2wgc2hpZnRLZXkpOw0KIA0KKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQ0KKyAgICBFbGVtZW50
KiBkcmFnZ2luZ0VsZW1lbnQoKSBjb25zdDsNCisjZW5kaWYNCiBwcml2YXRlOg0KICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQ0KICAgICBzdGF0aWMgRHJhZ1N0YXRlJiBkcmFnU3RhdGUoKTsNCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398596</attachid>
            <date>2020-05-05 23:48:36 -0700</date>
            <delta_ts>2020-05-06 13:11:44 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_211415.txt</filename>
            <type>text/plain</type>
            <size>23393</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZmM4ZGMwMTE5MDkuLmQ1ZTM5ODQ5MWNmIDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTQg
QEANCisyMDIwLTA1LTA1ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRNTCA1LjEgRHJhZyAm
IERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLg0KKw0KIDIwMjAtMDUtMDUgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFsgTWFjIF0gZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5odG1sIGlzIGZs
YWt5IGZhaWxpbmcuDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
ZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Ry
YWdnYWJsZS1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw
MDAwMC4uMzQzNzUzOWZkN2YNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RyYWdnYWJsZS1leHBlY3RlZC50eHQNCkBAIC0wLDAgKzEsMjEgQEANCitU
aGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBub3Rp
ZmljYXRpb25zIGFyZSBoYW5kbGVkIGZvciBkcmFnZ2luZyBvcGVyYXRpb25zLg0KKw0KK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitEcm9wIHRoZSByZWQgc3F1YXJlIG9udG8gbWUu
DQorSXRlbXMgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byB0aGUgZHJvcCB0YXJnZXQ6DQorDQorU3F1
YXJlDQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
J2RyYWdNZScpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEdyYWJiZWQnKSBpcyB0cnVlDQorUEFT
UyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2Ryb3BUYXJn
ZXQnKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhHcmFiYmVkJykgaXMgZmFsc2UNCitUYXJnZXQg
aXMgZ3JhYmJlZDogMA0KK0Ryb3B6b25lIGVmZmVjdHM6IGNvcHkNCitUYXJnZXQgaXMgZ3JhYmJl
ZCBkdXJpbmcgZHJhZzogMQ0KK1RhcmdldCBpcyBncmFiYmVkIGFmdGVyIGRyYWc6IDENCitBWERy
YWdnaW5nU291cmNlRHJhZ0JlZ2FuDQorQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcEFsbG93ZWQN
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZw0KaW5kZXggMjkxZTAwNjk4NmIuLjJlN2M1MDRlMTM1IDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBA
IC0xLDMgKzEsNDkgQEANCisyMDIwLTA1LTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBh
cHBsZS5jb20+DQorDQorICAgICAgICBBWDogSW1wbGVtZW50IGFjY2Vzc2liaWxpdHkgb2YgSFRN
TCA1LjEgRHJhZyAmIERyb3ANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTE0MTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjY5NTUzMT4NCisN
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAgU3VwcG9ydCBI
VE1MNSBkcmFnIGFuZCBkcm9wLiBTdXBwb3J0IGRyb3B6b25lIGF0dHJpYnV0ZS4NCisgICAgICAg
IEFkZCBuZXcgbm90aWZpY2F0aW9ucyBmb3IgVm9pY2VPdmVyIHRvIGNvbnN1bWUuDQorDQorICAg
ICAgICBJdCBhcHBlYXJzIHRoYXQgbW9zdCBvZiB0aGUgZHJhZ2dpbmcgdGVzdHMgYXJlIHNraXBw
ZWQgYmVjYXVzZSBvZiBldmVudFNlbmRlciBpc3N1ZXMuDQorICAgICAgICBJIHRoaW5rIHRoaXMg
dGVzdCBjb3VsZCBkbyBhIGxpdHRsZSBtb3JlIGlmIHRob3NlIGlzc3VlcyB3ZXJlIHJlc29sdmVk
LiBTcGVjaWZpY2FsbHksIG5vdCBhbGwNCisgICAgICAgIHRoZSBub3RpZmljYXRpb25zIGFyZSBz
ZWVuIHRoYXQgYXJlIGV4cGVjdGVkLg0KKw0KKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9t
YWMvZHJhZ2dhYmxlLmh0bWwNCisNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6
DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBQXR0
cmlidXRlcyBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6
aXNBWEhpZGRlbiBjb25zdCk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJ
bnRlcmZhY2UuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzdXBwb3J0c0Ryb3BwaW5nIGNvbnN0KToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0RyYWdnaW5nIGNvbnN0KToNCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0dyYWJiZWQpOg0KKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZURyb3BFZmZlY3RzKToN
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0FS
SUFEcm9wcGluZyBjb25zdCk6IERlbGV0ZWQuDQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcgY29uc3QpOiBEZWxldGVkLg0K
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzQVJJQUdyYWJi
ZWQpOiBEZWxldGVkLg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmRldGVybWluZUFSSUFEcm9wRWZmZWN0cyk6IERlbGV0ZWQuDQorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YSk6DQorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoNCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToNCisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOg0KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bToNCisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFkZGl0aW9uYWxB
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXNdKToNCisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToNCisgICAgICAg
ICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46DQorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5k
bGVyLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2
ZW50KToNCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRyYWdnaW5nRWxlbWVudCBj
b25zdCk6DQorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6DQorDQogMjAyMC0wNS0wNSAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+DQogDQogICAgICAgICBGYWN0b3IgUmVu
ZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVFdmVudFJlZ2lvbiBza2lwIGNvbmRpdGlvbnMgaW50byBh
IGxhbWJkYQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgN
CmluZGV4IGEzMGQyYTkxNTE2Li40NmJkZjQxYmVmNyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaA0KQEAgLTMwMyw3ICszMDMsMTIgQEAgcHVibGlj
Og0KICAgICAgICAgQVhSZXF1aXJlZFN0YXR1c0NoYW5nZWQsDQogICAgICAgICBBWFRleHRDaGFu
Z2VkLA0KICAgICAgICAgQVhBcmlhQXR0cmlidXRlQ2hhbmdlZCwNCi0gICAgICAgIEFYRWxlbWVu
dEJ1c3lDaGFuZ2VkDQorICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdlZCwNCisgICAgICAgIEFY
RHJhZ2dpbmdTdGFydGVkLA0KKyAgICAgICAgQVhEcmFnZ2luZ0VuZGVkLA0KKyAgICAgICAgQVhE
cmFnZ2luZ0VudGVyZWREcm9wWm9uZSwNCisgICAgICAgIEFYRHJhZ2dpbmdEcm9wcGVkLA0KKyAg
ICAgICAgQVhEcmFnZ2luZ0V4aXRlZERyb3Bab25lDQogICAgIH07DQogDQogICAgIHZvaWQgcG9z
dE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9
IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsNCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0K
aW5kZXggNDBlYTVmZWFlMTIuLjFmN2E3NjYwNzg1IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KQEAgLTI1MzQsOCAr
MjUzNCw4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBQXR0cmlidXRl
cygpIGNvbnN0DQogew0KICAgICAvLyBUaGlzIHJldHVybnMgd2hldGhlciB0aGUgZWxlbWVudCBz
dXBwb3J0cyBhbnkgZ2xvYmFsIEFSSUEgYXR0cmlidXRlcy4NCiAgICAgcmV0dXJuIHN1cHBvcnRz
TGl2ZVJlZ2lvbigpDQotICAgICAgICB8fCBzdXBwb3J0c0FSSUFEcmFnZ2luZygpDQotICAgICAg
ICB8fCBzdXBwb3J0c0FSSUFEcm9wcGluZygpDQorICAgICAgICB8fCBzdXBwb3J0c0RyYWdnaW5n
KCkNCisgICAgICAgIHx8IHN1cHBvcnRzRHJvcHBpbmcoKQ0KICAgICAgICAgfHwgc3VwcG9ydHNB
UklBT3ducygpDQogICAgICAgICB8fCBoYXNBdHRyaWJ1dGUoYXJpYV9hdG9taWNBdHRyKQ0KICAg
ICAgICAgfHwgaGFzQXR0cmlidXRlKGFyaWFfYnVzeUF0dHIpDQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaA0KaW5kZXggZjUzZDY5Yjdj
MzMuLjZmOGYyODdlZDk3IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oDQpAQCAtMzI3LDExICszMjcsMTEgQEAgcHVibGljOg0K
ICAgICBpbnQgcG9zSW5TZXQoKSBjb25zdCBvdmVycmlkZTsNCiANCiAgICAgLy8gQVJJQSBkcmFn
IGFuZCBkcm9wDQotICAgIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQ0KLSAgICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCi0gICAgYm9vbCBpc0FSSUFHcmFiYmVkKCkg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBzdXBwb3J0c0Ryb3BwaW5nKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBzdXBwb3J0c0RyYWdn
aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgYm9vbCBpc0dyYWJi
ZWQoKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KICAgICB2b2lkIHNldEFSSUFHcmFiYmVk
KGJvb2wpIG92ZXJyaWRlIHsgfQ0KLSAgICBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVBUklBRHJv
cEVmZmVjdHMoKSBvdmVycmlkZSB7IHJldHVybiB7IH07IH0NCisgICAgVmVjdG9yPFN0cmluZz4g
ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB7IH07IH0NCiAN
CiAgICAgLy8gQ2FsbGVkIG9uIHRoZSByb290IEFYIG9iamVjdCB0byByZXR1cm4gdGhlIGRlZXBl
c3QgYXZhaWxhYmxlIGVsZW1lbnQuDQogICAgIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhp
dFRlc3QoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3RJbnRlcmZhY2UuaA0KaW5kZXggMWM4ODk1OGVkYmUuLjE5ZGY2ZGJiYzYyIDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SW50ZXJmYWNlLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQpAQCAtNzU2LDExICs3NTYsMTEgQEAgcHVibGljOg0K
ICAgICB2aXJ0dWFsIGludCBwb3NJblNldCgpIGNvbnN0ID0gMDsNCiANCiAgICAgLy8gQVJJQSBk
cmFnIGFuZCBkcm9wDQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNv
bnN0ID0gMDsNCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3Qg
PSAwOw0KLSAgICB2aXJ0dWFsIGJvb2wgaXNBUklBR3JhYmJlZCgpID0gMDsNCisgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzRHJvcHBpbmcoKSBjb25zdCA9IDA7DQorICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c0RyYWdnaW5nKCkgY29uc3QgPSAwOw0KKyAgICB2aXJ0dWFsIGJvb2wgaXNHcmFiYmVk
KCkgPSAwOw0KICAgICB2aXJ0dWFsIHZvaWQgc2V0QVJJQUdyYWJiZWQoYm9vbCkgPSAwOw0KLSAg
ICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpID0gMDsN
CisgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpIGNvbnN0
ID0gMDsNCiANCiAgICAgLy8gQ2FsbGVkIG9uIHRoZSByb290IEFYIG9iamVjdCB0byByZXR1cm4g
dGhlIGRlZXBlc3QgYXZhaWxhYmxlIGVsZW1lbnQuDQogICAgIHZpcnR1YWwgQVhDb3JlT2JqZWN0
KiBhY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcA0KaW5kZXggMjYyYjI5YzljNWIuLjFiMTNmY2U3NmViIDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcA0KQEAgLTEwNDAsMzMgKzEwNDAsNDYgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpoYXNQb3B1cCgpIGNvbnN0DQogICAgIH0pOw0KIH0NCiANCi1ib29sIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3QgDQor
Ym9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0Ryb3BwaW5nKCkgY29uc3Qg
DQogew0KLSAgICBjb25zdCBBdG9tU3RyaW5nJiBkcm9wRWZmZWN0ID0gZ2V0QXR0cmlidXRlKGFy
aWFfZHJvcGVmZmVjdEF0dHIpOw0KLSAgICByZXR1cm4gIWRyb3BFZmZlY3QuaXNFbXB0eSgpOw0K
KyAgICByZXR1cm4gZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKS5zaXplKCk7DQogfQ0KIA0KLWJvb2wg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJhZ2dpbmcoKSBjb25zdA0K
K2Jvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0
DQogew0KICAgICBjb25zdCBBdG9tU3RyaW5nJiBncmFiYmVkID0gZ2V0QXR0cmlidXRlKGFyaWFf
Z3JhYmJlZEF0dHIpOw0KLSAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
Z3JhYmJlZCwgInRydWUiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShncmFiYmVk
LCAiZmFsc2UiKTsNCisgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGdy
YWJiZWQsICJ0cnVlIikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ3JhYmJlZCwg
ImZhbHNlIikgfHwgaGFzQXR0cmlidXRlKGRyYWdnYWJsZUF0dHIpOw0KIH0NCiANCi1ib29sIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzQVJJQUdyYWJiZWQoKQ0KK2Jvb2wgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6aXNHcmFiYmVkKCkNCiB7DQorI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpDQorICAgIGlmIChtYWluRnJhbWUoKSAmJiBtYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCku
ZHJhZ2dpbmdFbGVtZW50KCkgPT0gZWxlbWVudCgpKQ0KKyAgICAgICAgcmV0dXJuIHRydWU7DQor
I2VuZGlmDQorDQogICAgIHJldHVybiBlbGVtZW50QXR0cmlidXRlVmFsdWUoYXJpYV9ncmFiYmVk
QXR0cik7DQogfQ0KIA0KLVZlY3RvcjxTdHJpbmc+IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmRldGVybWluZUFSSUFEcm9wRWZmZWN0cygpDQorVmVjdG9yPFN0cmluZz4gQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lRHJvcEVmZmVjdHMoKSBjb25zdA0KIHsNCisgICAgLy8g
T3JkZXIgaXMgYXJpYS1kcm9wZWZmZWN0LCBkcm9wem9uZSwgd2Via2l0ZHJvcHpvbmUNCiAgICAg
Y29uc3QgQXRvbVN0cmluZyYgZHJvcEVmZmVjdHMgPSBnZXRBdHRyaWJ1dGUoYXJpYV9kcm9wZWZm
ZWN0QXR0cik7DQotICAgIGlmIChkcm9wRWZmZWN0cy5pc0VtcHR5KCkpIHsNCi0gICAgICAgIHJl
dHVybiB7IH07DQorICAgIGlmICghZHJvcEVmZmVjdHMuaXNFbXB0eSgpKSB7DQorICAgICAgICBT
dHJpbmcgZHJvcEVmZmVjdHNTdHJpbmcgPSBkcm9wRWZmZWN0cy5zdHJpbmcoKTsNCisgICAgICAg
IGRyb3BFZmZlY3RzU3RyaW5nLnJlcGxhY2UoJ1xuJywgJyAnKTsNCisgICAgICAgIHJldHVybiBk
cm9wRWZmZWN0c1N0cmluZy5zcGxpdCgnICcpOw0KICAgICB9DQogICAgIA0KLSAgICBTdHJpbmcg
ZHJvcEVmZmVjdHNTdHJpbmcgPSBkcm9wRWZmZWN0cy5zdHJpbmcoKTsNCi0gICAgZHJvcEVmZmVj
dHNTdHJpbmcucmVwbGFjZSgnXG4nLCAnICcpOw0KLSAgICByZXR1cm4gZHJvcEVmZmVjdHNTdHJp
bmcuc3BsaXQoJyAnKTsNCisgICAgYXV0byBkcm9wem9uZSA9IGdldEF0dHJpYnV0ZShkcm9wem9u
ZUF0dHIpOw0KKyAgICBpZiAoIWRyb3B6b25lLmlzRW1wdHkoKSkNCisgICAgICAgIHJldHVybiBW
ZWN0b3I8U3RyaW5nPiB7IGRyb3B6b25lIH07DQorICAgIA0KKyAgICBhdXRvIHdlYmtpdGRyb3B6
b25lID0gZ2V0QXR0cmlidXRlKHdlYmtpdGRyb3B6b25lQXR0cik7DQorICAgIGlmICghd2Via2l0
ZHJvcHpvbmUuaXNFbXB0eSgpKQ0KKyAgICAgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+IHsgd2Vi
a2l0ZHJvcHpvbmUgfTsNCisgICAgDQorICAgIHJldHVybiB7IH07DQogfQ0KICAgICANCiBib29s
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmV4cG9zZXNUaXRsZVVJRWxlbWVudCgpIGNvbnN0
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuaA0KaW5kZXggN2VjZjA0YWEwNGUuLjIyOGE1MzI5ZThiIDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5oDQpAQCAtMTcxLDEwICsxNzEsMTAgQEAgcHVibGljOg0KICAgICBib29sIGlz
VmlzaWJsZVBvc2l0aW9uUmFuZ2VJbkRpZmZlcmVudERvY3VtZW50KGNvbnN0IFZpc2libGVQb3Np
dGlvblJhbmdlJikgY29uc3Q7DQogICAgIGJvb2wgaGFzUG9wdXAoKSBjb25zdCBvdmVycmlkZTsN
CiANCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IG92ZXJyaWRlOw0KLSAg
ICBib29sIHN1cHBvcnRzQVJJQURyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGU7DQotICAgIGJvb2wg
aXNBUklBR3JhYmJlZCgpIG92ZXJyaWRlOw0KLSAgICBWZWN0b3I8U3RyaW5nPiBkZXRlcm1pbmVB
UklBRHJvcEVmZmVjdHMoKSBvdmVycmlkZTsNCisgICAgYm9vbCBzdXBwb3J0c0Ryb3BwaW5nKCkg
Y29uc3Qgb3ZlcnJpZGU7DQorICAgIGJvb2wgc3VwcG9ydHNEcmFnZ2luZygpIGNvbnN0IG92ZXJy
aWRlOw0KKyAgICBib29sIGlzR3JhYmJlZCgpIG92ZXJyaWRlOw0KKyAgICBWZWN0b3I8U3RyaW5n
PiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpIGNvbnN0IG92ZXJyaWRlOw0KICAgICANCiAgICAgVmlz
aWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvclBvaW50KGNvbnN0IEludFBvaW50JikgY29u
c3Qgb3ZlcnJpZGU7DQogICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRl
eCh1bnNpZ25lZCBpbmRleFZhbHVlLCBib29sIGxhc3RJbmRleE9LKSBjb25zdCBvdmVycmlkZTsN
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nl
c3NpYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vz
c2libGUuY3BwDQppbmRleCA5ZjM4ZTc4NjViZC4uMGQ0MTFmNDNlOWUgMTAwNjQ0DQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlLmNwcA0KKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZS5jcHAN
CkBAIC01NjMsOSArNTYzLDkgQEAgc3RhdGljIEF0a0F0dHJpYnV0ZVNldCogd2Via2l0QWNjZXNz
aWJsZUdldEF0dHJpYnV0ZXMoQXRrT2JqZWN0KiBvYmplY3QpDQogICAgIGlmICghZHJvcEVmZmVj
dC5pc0VtcHR5KCkpDQogICAgICAgICBhdHRyaWJ1dGVTZXQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNl
dChhdHRyaWJ1dGVTZXQsICJkcm9wZWZmZWN0IiwgZHJvcEVmZmVjdC51dGY4KCkuZGF0YSgpKTsN
CiANCi0gICAgaWYgKGNvcmVPYmplY3QtPmlzQVJJQUdyYWJiZWQoKSkNCisgICAgaWYgKGNvcmVP
YmplY3QtPmlzR3JhYmJlZCgpKQ0KICAgICAgICAgYXR0cmlidXRlU2V0ID0gYWRkVG9BdGtBdHRy
aWJ1dGVTZXQoYXR0cmlidXRlU2V0LCAiZ3JhYmJlZCIsICJ0cnVlIik7DQotICAgIGVsc2UgaWYg
KGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJQURyYWdnaW5nKCkpDQorICAgIGVsc2UgaWYgKGNvcmVP
YmplY3QtPnN1cHBvcnRzRHJhZ2dpbmcoKSkNCiAgICAgICAgIGF0dHJpYnV0ZVNldCA9IGFkZFRv
QXRrQXR0cmlidXRlU2V0KGF0dHJpYnV0ZVNldCwgImdyYWJiZWQiLCAiZmFsc2UiKTsNCiANCiAg
ICAgLy8gVGhlIENvcmUgQUFNIHN0YXRlcyB0aGUgYXV0aG9yLXByb3ZpZGVkIHZhbHVlIHNob3Vs
ZCBiZSBleHBvc2VkIGFzLWlzLg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHANCmluZGV4IDc4
OTA5MDlhODJkLi5mNTBjYzZjYTk4MyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwDQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0K
QEAgLTE3MiwxMCArMTcyLDEwIEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0
dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBvYmplY3QsIGJvb2wgaXNSb290DQogICAgIHNldFBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c1Bvc0luU2V0LCBvYmplY3Quc3VwcG9ydHNQ
b3NJblNldCgpKTsNCiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlNldFNpemUsIG9i
amVjdC5zZXRTaXplKCkpOw0KICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6UG9zSW5T
ZXQsIG9iamVjdC5wb3NJblNldCgpKTsNCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
OlN1cHBvcnRzQVJJQURyb3BwaW5nLCBvYmplY3Quc3VwcG9ydHNBUklBRHJvcHBpbmcoKSk7DQot
ICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0FSSUFEcmFnZ2luZywgb2Jq
ZWN0LnN1cHBvcnRzQVJJQURyYWdnaW5nKCkpOw0KLSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5
TmFtZTo6SXNBUklBR3JhYmJlZCwgb2JqZWN0LmlzQVJJQUdyYWJiZWQoKSk7DQotICAgIHNldFBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpBUklBRHJvcEVmZmVjdHMsIG9iamVjdC5kZXRlcm1pbmVB
UklBRHJvcEVmZmVjdHMoKSk7DQorICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBw
b3J0c0Ryb3BwaW5nLCBvYmplY3Quc3VwcG9ydHNEcm9wcGluZygpKTsNCisgICAgc2V0UHJvcGVy
dHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRHJhZ2dpbmcsIG9iamVjdC5zdXBwb3J0c0RyYWdn
aW5nKCkpOw0KKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNHcmFiYmVkLCBvYmpl
Y3QuaXNHcmFiYmVkKCkpOw0KKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RHJvcEVm
ZmVjdHMsIG9iamVjdC5kZXRlcm1pbmVEcm9wRWZmZWN0cygpKTsNCiAgICAgc2V0T2JqZWN0UHJv
cGVydHkoQVhQcm9wZXJ0eU5hbWU6OlRpdGxlVUlFbGVtZW50LCBvYmplY3QudGl0bGVVSUVsZW1l
bnQoKSk7DQogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpFeHBvc2VzVGl0bGVVSUVs
ZW1lbnQsIG9iamVjdC5leHBvc2VzVGl0bGVVSUVsZW1lbnQoKSk7DQogICAgIHNldE9iamVjdFBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpWZXJ0aWNhbFNjcm9sbEJhciwgb2JqZWN0LnNjcm9sbEJh
cihBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb246OlZlcnRpY2FsKSk7DQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9i
amVjdC5oDQppbmRleCAxYzkzNmZkYTI2YS4uYjE5ZjVlZDM0NjQgMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgN
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuaA0KQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToNCiAgICAgICAgIEF1dG9Db21w
bGV0ZVZhbHVlLA0KICAgICAgICAgQVJJQUNvbnRyb2xzRWxlbWVudHMsDQogICAgICAgICBBUklB
RGV0YWlsc0VsZW1lbnRzLA0KLSAgICAgICAgQVJJQURyb3BFZmZlY3RzLA0KKyAgICAgICAgRHJv
cEVmZmVjdHMsDQogICAgICAgICBBUklBRXJyb3JNZXNzYWdlRWxlbWVudHMsDQogICAgICAgICBB
UklBSXNNdWx0aWxpbmUsDQogICAgICAgICBBUklBRmxvd1RvRWxlbWVudHMsDQpAQCAtMTYxLDcg
KzE2MSw3IEBAIHByaXZhdGU6DQogICAgICAgICBJc0FjY2Vzc2liaWxpdHlJZ25vcmVkLA0KICAg
ICAgICAgSXNBY3RpdmVEZXNjZW5kYW50T2ZGb2N1c2VkQ29udGFpbmVyLA0KICAgICAgICAgSXNB
bm9ueW1vdXNNYXRoT3BlcmF0b3IsDQotICAgICAgICBJc0FSSUFHcmFiYmVkLA0KKyAgICAgICAg
SXNHcmFiYmVkLA0KICAgICAgICAgSXNBUklBVHJlZUdyaWRSb3csDQogICAgICAgICBJc0F0dGFj
aG1lbnQsDQogICAgICAgICBJc0J1dHRvbiwNCkBAIC0yOTksOCArMjk5LDggQEAgcHJpdmF0ZToN
CiAgICAgICAgIFNwZWFrQXMsDQogICAgICAgICBTcGVlY2hIaW50LA0KICAgICAgICAgU3RyaW5n
VmFsdWUsDQotICAgICAgICBTdXBwb3J0c0FSSUFEcmFnZ2luZywNCi0gICAgICAgIFN1cHBvcnRz
QVJJQURyb3BwaW5nLA0KKyAgICAgICAgU3VwcG9ydHNEcmFnZ2luZywNCisgICAgICAgIFN1cHBv
cnRzRHJvcHBpbmcsDQogICAgICAgICBTdXBwb3J0c0FSSUFPd25zLA0KICAgICAgICAgU3VwcG9y
dHNDdXJyZW50LA0KICAgICAgICAgU3VwcG9ydHNEYXRldGltZUF0dHJpYnV0ZSwNCkBAIC01MDQs
MTAgKzUwNCwxMCBAQCBwcml2YXRlOg0KICAgICBib29sIHN1cHBvcnRzUG9zSW5TZXQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1
cHBvcnRzUG9zSW5TZXQpOyB9DQogICAgIGludCBzZXRTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gaW50QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlNldFNpemUpOyB9DQogICAg
IGludCBwb3NJblNldCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGludEF0dHJpYnV0ZVZhbHVl
KEFYUHJvcGVydHlOYW1lOjpQb3NJblNldCk7IH0NCi0gICAgYm9vbCBzdXBwb3J0c0FSSUFEcm9w
cGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3Bl
cnR5TmFtZTo6U3VwcG9ydHNBUklBRHJvcHBpbmcpOyB9DQotICAgIGJvb2wgc3VwcG9ydHNBUklB
RHJhZ2dpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQ
cm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJQURyYWdnaW5nKTsgfQ0KLSAgICBib29sIGlzQVJJQUdy
YWJiZWQoKSBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5h
bWU6OklzQVJJQUdyYWJiZWQpOyB9DQotICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZUFSSUFE
cm9wRWZmZWN0cygpIG92ZXJyaWRlIHsgcmV0dXJuIHZlY3RvckF0dHJpYnV0ZVZhbHVlPFN0cmlu
Zz4oQVhQcm9wZXJ0eU5hbWU6OkFSSUFEcm9wRWZmZWN0cyk7IH0NCisgICAgYm9vbCBzdXBwb3J0
c0Ryb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFY
UHJvcGVydHlOYW1lOjpTdXBwb3J0c0Ryb3BwaW5nKTsgfQ0KKyAgICBib29sIHN1cHBvcnRzRHJh
Z2dpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9w
ZXJ0eU5hbWU6OlN1cHBvcnRzRHJhZ2dpbmcpOyB9DQorICAgIGJvb2wgaXNHcmFiYmVkKCkgb3Zl
cnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc0dyYWJi
ZWQpOyB9DQorICAgIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZURyb3BFZmZlY3RzKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdmVjdG9yQXR0cmlidXRlVmFsdWU8U3RyaW5nPihBWFByb3BlcnR5
TmFtZTo6RHJvcEVmZmVjdHMpOyB9DQogICAgIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhp
dFRlc3QoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsNCiAgICAgQVhDb3JlT2JqZWN0
KiBmb2N1c2VkVUlFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7DQogICAgIEFYQ29yZU9iamVjdCog
cGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gcGFyZW50T2JqZWN0VW5pZ25v
cmVkKCk7IH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9B
WE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhP
YmplY3RDYWNoZU1hYy5tbQ0KaW5kZXggNGZlZGZhNTZlMzYuLjhlZWQwMTAyOGM0IDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5t
bQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1h
Yy5tbQ0KQEAgLTk2LDYgKzk2LDMwIEBADQogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3Rl
ZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiDQog
I2VuZGlmDQogDQorI2lmbmRlZiBrQVhEcmFnZ2luZ1NvdXJjZURyYWdCZWdhbk5vdGlmaWNhdGlv
bg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdTb3VyY2VEcmFnQmVnYW5Ob3RpZmljYXRpb24gQ0ZTVFIo
IkFYRHJhZ2dpbmdTb3VyY2VEcmFnQmVnYW4iKQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FYRHJh
Z2dpbmdTb3VyY2VEcmFnRW5kZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5nU291
cmNlRHJhZ0VuZGVkTm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5nU291cmNlRHJhZ0VuZGVk
IikNCisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5nRGVzdGluYXRpb25Ecm9wQWxsb3dl
ZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyb3BBbGxvd2Vk
Tm90aWZpY2F0aW9uIENGU1RSKCJBWERyYWdnaW5nRGVzdGluYXRpb25Ecm9wQWxsb3dlZCIpDQor
I2VuZGlmDQorDQorI2lmbmRlZiBrQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcE5vdEFsbG93ZWRO
b3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5nRGVzdGluYXRpb25Ecm9wTm90QWxsb3dl
ZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJvcE5vdEFsbG93ZWQi
KQ0KKyNlbmRpZg0KKw0KKyNpZm5kZWYga0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdBY2NlcHRl
ZE5vdGlmaWNhdGlvbg0KKyNkZWZpbmUga0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdBY2NlcHRl
ZE5vdGlmaWNhdGlvbiBDRlNUUigiQVhEcmFnZ2luZ0Rlc3RpbmF0aW9uRHJhZ0FjY2VwdGVkIikN
CisjZW5kaWYNCisNCisjaWZuZGVmIGtBWERyYWdnaW5nRGVzdGluYXRpb25EcmFnTm90QWNjZXB0
ZWROb3RpZmljYXRpb24NCisjZGVmaW5lIGtBWERyYWdnaW5nRGVzdGluYXRpb25EcmFnTm90QWNj
ZXB0ZWROb3RpZmljYXRpb24gQ0ZTVFIoIkFYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdOb3RBY2Nl
cHRlZCIpDQorI2VuZGlmDQorDQogLy8gVmVyeSBsYXJnZSBzdHJpbmdzIGNhbiBuZWdhdGl2ZWx5
IGltcGFjdCB0aGUgcGVyZm9ybWFuY2Ugb2Ygbm90aWZpY2F0aW9ucywgc28gdGhpcyBsZW5ndGgg
aXMgY2hvc2VuIHRvIHRyeSB0byBmaXQgYW4gYXZlcmFnZSBwYXJhZ3JhcGggb3IgbGluZSBvZiB0
ZXh0LCBidXQgbm90IGFsbG93IHN0cmluZ3MgdG8gYmUgbGFyZ2UgZW5vdWdoIHRvIGh1cnQgcGVy
Zm9ybWFuY2UuDQogc3RhdGljIGNvbnN0IE5TVUludGVnZXIgQVhWYWx1ZUNoYW5nZVRydW5jYXRp
b25MZW5ndGggPSAxMDAwOw0KIA0KQEAgLTM1Myw2ICszNzcsMjEgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQVhDb3JlT2JqZWN0KiBvYmosIEFYTm90aWZp
Y2F0aW9uIG4NCiAgICAgICAgIGNhc2UgQVhNZW51T3BlbmVkOg0KICAgICAgICAgICAgIG1hY05v
dGlmaWNhdGlvbiA9IChpZClrQVhNZW51T3BlbmVkTm90aWZpY2F0aW9uOw0KICAgICAgICAgICAg
IGJyZWFrOw0KKyAgICAgICAgY2FzZSBBWERyYWdnaW5nU3RhcnRlZDoNCisgICAgICAgICAgICBt
YWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdTb3VyY2VEcmFnQmVnYW5Ob3RpZmljYXRp
b247DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlIEFYRHJhZ2dpbmdFbmRlZDoN
CisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAoaWQpa0FYRHJhZ2dpbmdTb3VyY2VEcmFn
RW5kZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlIEFY
RHJhZ2dpbmdFbnRlcmVkRHJvcFpvbmU6DQorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0g
KGlkKWtBWERyYWdnaW5nRGVzdGluYXRpb25Ecm9wQWxsb3dlZE5vdGlmaWNhdGlvbjsNCisgICAg
ICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgQVhEcmFnZ2luZ0Ryb3BwZWQ6DQorICAgICAg
ICAgICAgbWFjTm90aWZpY2F0aW9uID0gKGlkKWtBWERyYWdnaW5nRGVzdGluYXRpb25EcmFnQWNj
ZXB0ZWROb3RpZmljYXRpb247DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlIEFY
RHJhZ2dpbmdFeGl0ZWREcm9wWm9uZToNCisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAo
aWQpa0FYRHJhZ2dpbmdEZXN0aW5hdGlvbkRyYWdOb3RBY2NlcHRlZE5vdGlmaWNhdGlvbjsNCisg
ICAgICAgICAgICBicmVhazsNCiAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgcmV0dXJu
Ow0KICAgICB9DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KaW5kZXgg
ZjFiOGFkYjRhYWEuLjkyMGQyYzRlZGQ4IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLm1tDQpAQCAtMTM1MCwxMCArMTM1MCwxMCBAQCBBTExPV19ERVBSRUNBVEVEX0lN
UExFTUVOVEFUSU9OU19FTkQNCiAgICAgICAgIHx8IGJhY2tpbmdPYmplY3QtPmlzVG9vbGJhcigp
KQ0KICAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eU9yaWVudGF0
aW9uQXR0cmlidXRlXTsNCiANCi0gICAgaWYgKGJhY2tpbmdPYmplY3QtPnN1cHBvcnRzQVJJQURy
YWdnaW5nKCkpDQorICAgIGlmIChiYWNraW5nT2JqZWN0LT5zdXBwb3J0c0RyYWdnaW5nKCkpDQog
ICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5R3JhYmJlZEF0dHJp
YnV0ZV07DQogDQotICAgIGlmIChiYWNraW5nT2JqZWN0LT5zdXBwb3J0c0FSSUFEcm9wcGluZygp
KQ0KKyAgICBpZiAoYmFja2luZ09iamVjdC0+c3VwcG9ydHNEcm9wcGluZygpKQ0KICAgICAgICAg
W2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eURyb3BFZmZlY3RzQXR0cmlidXRl
XTsNCiANCiAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzVGFibGUoKSAmJiBiYWNraW5nT2JqZWN0
LT5pc0V4cG9zYWJsZSgpICYmIGJhY2tpbmdPYmplY3QtPnN1cHBvcnRzU2VsZWN0ZWRSb3dzKCkp
DQpAQCAtMjkxNywxMCArMjkxNywxMCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9O
U19FTkQNCiAgICAgICAgIHJldHVybiBAKGJhY2tpbmdPYmplY3QtPnNldFNpemUoKSk7DQogDQog
ICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5R3Jh
YmJlZEF0dHJpYnV0ZV0pDQotICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhCb29s
OmJhY2tpbmdPYmplY3QtPmlzQVJJQUdyYWJiZWQoKV07DQorICAgICAgICByZXR1cm4gW05TTnVt
YmVyIG51bWJlcldpdGhCb29sOmJhY2tpbmdPYmplY3QtPmlzR3JhYmJlZCgpXTsNCiANCiAgICAg
aWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlEcm9wRWZm
ZWN0c0F0dHJpYnV0ZV0pDQotICAgICAgICByZXR1cm4gY3JlYXRlTlNBcnJheShiYWNraW5nT2Jq
ZWN0LT5kZXRlcm1pbmVBUklBRHJvcEVmZmVjdHMoKSkuYXV0b3JlbGVhc2UoKTsNCisgICAgICAg
IHJldHVybiBjcmVhdGVOU0FycmF5KGJhY2tpbmdPYmplY3QtPmRldGVybWluZURyb3BFZmZlY3Rz
KCkpLmF1dG9yZWxlYXNlKCk7DQogDQogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9T
dHJpbmc6TlNBY2Nlc3NpYmlsaXR5UGxhY2Vob2xkZXJWYWx1ZUF0dHJpYnV0ZV0pDQogICAgICAg
ICByZXR1cm4gYmFja2luZ09iamVjdC0+cGxhY2Vob2xkZXJWYWx1ZSgpOw0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4NCmluZGV4IGRjZDgzNzhkOTU0Li5jYjMwNDkw
NDA4OSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbg0KQEAg
LTEyMSw2ICsxMjEsNyBAQCBkaXNhYmxlcmVtb3RlcGxheWJhY2sNCiBkaXNwb3NpdGlvbg0KIGRv
d25sb2FkDQogZHJhZ2dhYmxlDQorZHJvcHpvbmUNCiB3ZWJraXRkcm9wem9uZQ0KIGVuY3R5cGUN
CiBlbmQNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHANCmluZGV4IDdiYTk2YWNjNTIw
Li5jY2QwMjFlYTljYSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwDQpAQCAt
MjI4Miw5ICsyMjgyLDI4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudChj
b25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGRyYWdUDQogICAgICAgICBldmVu
dC5tb2RpZmllcnMoKSwgMCwgMCwgbnVsbHB0ciwgZXZlbnQuZm9yY2UoKSwgTm9UYXAsICZkYXRh
VHJhbnNmZXIpOw0KIA0KICAgICBkcmFnVGFyZ2V0LmRpc3BhdGNoRXZlbnQoZHJhZ0V2ZW50KTsN
CisNCisgICAgaWYgKGF1dG8qIGNhY2hlID0gbV9mcmFtZS5kb2N1bWVudCgpLT5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkgew0KKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCku
ZHJhZ3N0YXJ0RXZlbnQpDQorICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oJmRy
YWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dpbmdTdGFydGVkKTsNCisgICAgICAgIGVs
c2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZHJhZ2VuZEV2ZW50KQ0KKyAgICAgICAg
ICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBBWE9iamVjdENhY2hlOjpB
WERyYWdnaW5nRW5kZWQpOw0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5kcmFnZW50ZXJFdmVudCkNCisgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlv
bigmZHJhZ1RhcmdldCwgQVhPYmplY3RDYWNoZTo6QVhEcmFnZ2luZ0VudGVyZWREcm9wWm9uZSk7
DQorICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2
ZW50KQ0KKyAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKCZkcmFnVGFyZ2V0LCBB
WE9iamVjdENhY2hlOjpBWERyYWdnaW5nRXhpdGVkRHJvcFpvbmUpOw0KKyAgICAgICAgZWxzZSBp
ZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kcm9wRXZlbnQpDQorICAgICAgICAgICAgY2Fj
aGUtPnBvc3ROb3RpZmljYXRpb24oJmRyYWdUYXJnZXQsIEFYT2JqZWN0Q2FjaGU6OkFYRHJhZ2dp
bmdEcm9wcGVkKTsNCisgICAgfQ0KKw0KICAgICByZXR1cm4gZHJhZ0V2ZW50LT5kZWZhdWx0UHJl
dmVudGVkKCk7DQogfQ0KIA0KK0VsZW1lbnQqIEV2ZW50SGFuZGxlcjo6ZHJhZ2dpbmdFbGVtZW50
KCkgY29uc3QNCit7DQorICAgIHJldHVybiBkcmFnU3RhdGUoKS5zb3VyY2UuZ2V0KCk7DQorfQ0K
Kw0KIHN0YXRpYyBib29sIHRhcmdldElzRnJhbWUoTm9kZSogdGFyZ2V0LCBGcmFtZSomIGZyYW1l
KQ0KIHsNCiAgICAgaWYgKCFpczxIVE1MRnJhbWVFbGVtZW50QmFzZT4odGFyZ2V0KSkNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KaW5kZXggNWI0NjQ0MGUyOGEuLmI4NmYxZTAyYTgzIDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaA0KQEAgLTMzOSw2ICszMzksOSBAQCBwdWJs
aWM6DQogDQogICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPEN1cnNvcj4gc2VsZWN0Q3Vyc29y
KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBib29sIHNoaWZ0S2V5KTsNCiANCisjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkNCisgICAgRWxlbWVudCogZHJhZ2dpbmdFbGVtZW50KCkgY29uc3Q7DQorI2Vu
ZGlmDQogcHJpdmF0ZToNCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkNCiAgICAgc3RhdGljIERy
YWdTdGF0ZSYgZHJhZ1N0YXRlKCk7DQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>