<?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>171592</bug_id>
          
          <creation_ts>2017-05-02 20:39:20 -0700</creation_ts>
          <short_desc>Add mute to WebPlaybackSessionModel.</short_desc>
          <delta_ts>2017-05-04 16:18:53 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Jeremy Jones">jeremyj-wk</reporter>
          <assigned_to name="Jeremy Jones">jeremyj-wk</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1303948</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-05-02 20:39:20 -0700</bug_when>
    <thetext>Add mute and increaseVolume and decreaseVolume to WebPlaybackSessionModel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303950</commentid>
    <comment_count>1</comment_count>
      <attachid>308886</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-05-02 20:45:06 -0700</bug_when>
    <thetext>Created attachment 308886
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303951</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-05-02 20:45:52 -0700</bug_when>
    <thetext>rdar://problem/31814074</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303953</commentid>
    <comment_count>3</comment_count>
      <attachid>308887</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-05-02 20:50:28 -0700</bug_when>
    <thetext>Created attachment 308887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304403</commentid>
    <comment_count>4</comment_count>
      <attachid>308990</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-05-03 17:10:33 -0700</bug_when>
    <thetext>Created attachment 308990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304827</commentid>
    <comment_count>5</comment_count>
      <attachid>309100</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-05-04 14:12:39 -0700</bug_when>
    <thetext>Created attachment 309100
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304831</commentid>
    <comment_count>6</comment_count>
      <attachid>309102</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-05-04 14:18:34 -0700</bug_when>
    <thetext>Created attachment 309102
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304833</commentid>
    <comment_count>7</comment_count>
      <attachid>309102</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-04 14:20:11 -0700</bug_when>
    <thetext>Comment on attachment 309102
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=309102&amp;action=review

&gt; Source/WebCore/platform/ios/WebAVPlayerController.mm:433
&gt; +    UNUSED_PARAM(sender);
&gt; +    if (!self.delegate)
&gt; +        return;
&gt; +    self.delegate-&gt;toggleMuted();

Nit: this could probably just drop the ! from the if and skip the return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304888</commentid>
    <comment_count>8</comment_count>
      <attachid>309102</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-04 16:18:51 -0700</bug_when>
    <thetext>Comment on attachment 309102
Patch

Clearing flags on attachment: 309102

Committed r216216: &lt;http://trac.webkit.org/changeset/216216&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304889</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-04 16:18:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308886</attachid>
            <date>2017-05-02 20:45:06 -0700</date>
            <delta_ts>2017-05-02 20:50:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171592-20170502204505.patch</filename>
            <type>text/plain</type>
            <size>27706</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1ODk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmZiYzZiMDk4NjZmMDRm
ZWM0OTBkZmI5MjNlYzg2NTQ0NzNmZmEzYy4uY2U4YTI1OWUxNmY2YmY0OTU3NTQ2MWM1NjJmNWYy
OGZjYWU4NjgwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA1LTAyICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgbXV0ZSBhbmQgaW5j
cmVhc2VWb2x1bWUgYW5kIGRlY3JlYXNlVm9sdW1lIHRvIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNTky
CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzMxODE0MDc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLiBUaGlzIGp1c3Qg
YWRkcyB0aGUgYWJpbGl0eSBmb3IgdWkgdG8gY2hhbmdlIHZvbHVtZSBhbmQgbXV0ZWQuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbC5oOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQ6Om11dGVkQ2hhbmdlZCk6
CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbk1v
ZGVsTWVkaWFFbGVtZW50Ojp1cGRhdGVGb3JFdmVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmluY3JlYXNlVm9sdW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpkZWNy
ZWFzZVZvbHVtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1l
ZGlhRWxlbWVudDo6dG9nZ2xlTXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViUGxheWJhY2tT
ZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6Om9ic2VydmVkRXZlbnROYW1lcyk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6aXNNdXRlZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJvbGxlci5oOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9XZWJBVlBsYXllckNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYkFW
UGxheWVyQ29udHJvbGxlciBpbmNyZWFzZVZvbHVtZTpdKToKKyAgICAgICAgKC1bV2ViQVZQbGF5
ZXJDb250cm9sbGVyIGRlY3JlYXNlVm9sdW1lOl0pOgorICAgICAgICAoLVtXZWJBVlBsYXllckNv
bnRyb2xsZXIgdG9nZ2xlTXV0ZWQ6XSk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlBs
YXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6Om11dGVkQ2hhbmdlZCk6CisgICAgICAgICogcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAg
KFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjptdXRlZENoYW5nZWQpOgorICAg
ICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmlzTXV0ZWQpOgorICAg
ICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmluY3JlYXNlVm9sdW1l
KToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpkZWNyZWFz
ZVZvbHVtZSk6CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6
dG9nZ2xlTXV0ZWQpOgorCiAyMDE3LTA0LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIFBlcmZvcm1pbmcgZGF0YSBpbnRlcmFjdGlvbiB3aXRoIHBs
YWluIHRleHQgaW50byBhIGNvbnRlbnRlZGl0YWJsZSBkb2VzIG5vdCBpbnNlcnQgYW55IGNvbnRl
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCA2Mzg4ZDM2MmNjYTUyOTkyOGRiNDQ1Y2I3NDYwM2RhZTg5MTdiNDE5
Li45ODczNTEwNDdlYzFmZmQzNGRiMDg4MGE2MTJiN2RlMjgzYmY3NjcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMTctMDUtMDIgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBtdXRlIGFuZCBpbmNyZWFzZVZvbHVtZSBhbmQgZGVjcmVhc2VW
b2x1bWUgdG8gV2ViUGxheWJhY2tTZXNzaW9uTW9kZWwuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE1OTIKKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
MzE4MTQwNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBQbHVtYiBuZXcgdm9sdW1lIGFuZCBtdXRlZCBtZXRob2RzIHRocm91Z2ggV0syIGlwYyBsYXll
ci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXliYWNr
U2Vzc2lvbk1vZGVsQ29udGV4dDo6aW5jcmVhc2VWb2x1bWUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OmRlY3JlYXNlVm9sdW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0Ojp0b2dnbGVNdXRlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6c2V0TXV0ZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnNldE11
dGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Ojpp
bmNyZWFzZVZvbHVtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXJQcm94eTo6ZGVjcmVhc2VWb2x1bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF5YmFja1Nl
c3Npb25NYW5hZ2VyUHJveHk6OnRvZ2dsZU11dGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VDb250ZXh0OjptdXRlZENoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjptdXRlZENoYW5nZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjppbmNyZWFzZVZv
bHVtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OmRlY3Jl
YXNlVm9sdW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6
dG9nZ2xlTXV0ZWQpOgorCiAyMDE3LTA0LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSAvIGdldENsaWVu
dFJlY3RzKCkgc2hvdWxkIHJldHVybiBhIERPTVJlY3QgdHlwZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbC5oCmluZGV4
IDNkZjI1OGYzZjc5ZWQyYTI0OThjNTFlYTIzMjI5ZmIwZDgyZDY3NGUuLjVhODI2ZWUwNjU5NmM3
MDZhMTRkZDMwMjdiMDQ4Njk2ZDYxYzUzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWwuaApAQCAtNTYsNiArNTYs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWlu
dDY0X3QgaW5kZXgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0
aW9uKHVpbnQ2NF90IGluZGV4KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZVBpY3R1cmVJ
blBpY3R1cmUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGluY3JlYXNlVm9sdW1lKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkZWNyZWFzZVZvbHVtZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
dG9nZ2xlTXV0ZWQoKSA9IDA7CiAKICAgICBlbnVtIEV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBl
IHsgVGFyZ2V0VHlwZU5vbmUsIFRhcmdldFR5cGVBaXJQbGF5LCBUYXJnZXRUeXBlVFZPdXQgfTsK
IApAQCAtNzYsNiArNzksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBFeHRlcm5hbFBsYXliYWNr
VGFyZ2V0VHlwZSBleHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSgpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIFN0cmluZyBleHRlcm5hbFBsYXliYWNrTG9jYWxpemVkRGV2aWNlTmFtZSgpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzTXV0ZWQoKSBjb25zdCA9IDA7CiB9OwogCiBj
bGFzcyBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENsaWVudCB7CkBAIC05Miw2ICs5Niw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uc0NoYW5n
ZWQoY29uc3QgVmVjdG9yPE1lZGlhU2VsZWN0aW9uT3B0aW9uPiYgLyogb3B0aW9ucyAqLywgdWlu
dDY0X3QgLyogc2VsZWN0ZWRJbmRleCAqLykgeyB9CiAgICAgdmlydHVhbCB2b2lkIGV4dGVybmFs
UGxheWJhY2tDaGFuZ2VkKGJvb2wgLyogZW5hYmxlZCAqLywgV2ViUGxheWJhY2tTZXNzaW9uTW9k
ZWw6OkV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlLCBjb25zdCBTdHJpbmcmIC8qIGxvY2FsaXpl
ZERldmljZU5hbWUgKi8pIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aXJlbGVzc1ZpZGVvUGxheWJh
Y2tEaXNhYmxlZENoYW5nZWQoYm9vbCkgeyB9CisgICAgdmlydHVhbCB2b2lkIG11dGVkQ2hhbmdl
ZChib29sKSB7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5o
CmluZGV4IGZiMjU3OWNhZjFmNzQwZDBjMzlhMTZlY2M0YjIzNTg5MTU4MDgwMDkuLmE3YWM4MjI3
OGM2ZWIyNzc3NTQ4MThjYTFiYjdhNTBhZDUwMTI5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9k
ZWxNZWRpYUVsZW1lbnQuaApAQCAtNzAsNiArNzAsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KSBmaW5hbDsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRf
dCBpbmRleCkgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB0b2dnbGVQaWN0dXJlSW5Q
aWN0dXJlKCkgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbmNyZWFzZVZvbHVtZSgp
IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVjcmVhc2VWb2x1bWUoKSBmaW5hbDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRvZ2dsZU11dGVkKCkgZmluYWw7CiAKICAgICBkb3Vi
bGUgZHVyYXRpb24oKSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25z
dCBmaW5hbDsKQEAgLTg3LDYgKzkwLDcgQEAgcHVibGljOgogICAgIEV4dGVybmFsUGxheWJhY2tU
YXJnZXRUeXBlIGV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlKCkgY29uc3QgZmluYWw7CiAgICAg
U3RyaW5nIGV4dGVybmFsUGxheWJhY2tMb2NhbGl6ZWREZXZpY2VOYW1lKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0IGZpbmFsOwor
ICAgIGJvb2wgaXNNdXRlZCgpIGNvbnN0IGZpbmFsOwogCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09S
RV9FWFBPUlQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVs
TWVkaWFFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KaW5kZXggYzBkMDUyMWNhNDkwZDQyYjU4MWNi
MmIyZTE1ZWIwMDRhNWMxMzc4Zi4uNTMzMWI2MmM4OGY5M2QzMTY0ODJlMWI4ODVmMmQ5ZDc4ZDk0
NTM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KQEAgLTE1Niw2
ICsxNTYsMTIgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6dXBk
YXRlRm9yRXZlbnROYW1lKGNvbnN0IFdURjo6QXRvbWljU3QKICAgICAgICAgICAgIGNsaWVudC0+
d2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKHdpcmVsZXNzVmlkZW9QbGF5YmFj
a0Rpc2FibGVkKTsKICAgICAgICAgfQogICAgIH0KKworICAgIGlmIChhbGwKKyAgICAgICAgfHwg
ZXZlbnROYW1lID09IGV2ZW50TmFtZXMoKS52b2x1bWVjaGFuZ2VFdmVudCkgeworICAgICAgICBm
b3IgKGF1dG8gY2xpZW50IDogbV9jbGllbnRzKQorICAgICAgICAgICAgY2xpZW50LT5tdXRlZENo
YW5nZWQoaXNNdXRlZCgpKTsKKyAgICB9CiB9CiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVs
TWVkaWFFbGVtZW50OjphZGRDbGllbnQoV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQmIGNs
aWVudCkKIHsKQEAgLTI2MCw2ICsyNjYsMjQgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudDo6dG9nZ2xlUGljdHVyZUluUGljdHVyZSgpCiAgICAgICAgIG1fbWVkaWFF
bGVtZW50LT5lbnRlckZ1bGxzY3JlZW4oTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZVBpY3R1cmVJblBpY3R1cmUpOwogfQogCit2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVs
TWVkaWFFbGVtZW50OjppbmNyZWFzZVZvbHVtZSgpCit7CisgICAgaWYgKG1fbWVkaWFFbGVtZW50
KQorICAgICAgICBtX21lZGlhRWxlbWVudC0+c2V0Vm9sdW1lKGZtaW4oMS4wLCBtX21lZGlhRWxl
bWVudC0+dm9sdW1lKCkgKyAwLjEpKTsKK30KKwordm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudDo6ZGVjcmVhc2VWb2x1bWUoKQoreworICAgIGlmIChtX21lZGlhRWxlbWVu
dCkKKyAgICAgICAgbV9tZWRpYUVsZW1lbnQtPnNldFZvbHVtZShmbWF4KDAuMCwgbV9tZWRpYUVs
ZW1lbnQtPnZvbHVtZSgpIC0gMC4xKSk7Cit9CisKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9k
ZWxNZWRpYUVsZW1lbnQ6OnRvZ2dsZU11dGVkKCkKK3sKKyAgICBpZiAobV9tZWRpYUVsZW1lbnQp
CisgICAgICAgIG1fbWVkaWFFbGVtZW50LT5zZXRNdXRlZCghbV9tZWRpYUVsZW1lbnQtPm11dGVk
KCkpOworfQorCiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Ojp1cGRh
dGVMZWdpYmxlT3B0aW9ucygpCiB7CiAgICAgaWYgKCFtX21lZGlhRWxlbWVudCkKQEAgLTMxMSw2
ICszMzUsNyBAQCBjb25zdCBWZWN0b3I8QXRvbWljU3RyaW5nPiYgV2ViUGxheWJhY2tTZXNzaW9u
TW9kZWxNZWRpYUVsZW1lbnQ6Om9ic2VydmVkRXZlbnROYQogICAgICAgICBldmVudE5hbWVzKCku
dGltZXVwZGF0ZUV2ZW50LAogICAgICAgICBldmVudE5hbWVzKCkuYWRkdHJhY2tFdmVudCwKICAg
ICAgICAgZXZlbnROYW1lcygpLnJlbW92ZXRyYWNrRXZlbnQsCisgICAgICAgIGV2ZW50TmFtZXMo
KS52b2x1bWVjaGFuZ2VFdmVudCwKICAgICAgICAgZXZlbnROYW1lcygpLndlYmtpdGN1cnJlbnRw
bGF5YmFja3RhcmdldGlzd2lyZWxlc3NjaGFuZ2VkRXZlbnQsCiAgICAgfSk7CiAgICAgcmV0dXJu
IG5hbWVzLmdldCgpOwpAQCAtNDY5LDYgKzQ5NCwxMSBAQCBib29sIFdlYlBsYXliYWNrU2Vzc2lv
bk1vZGVsTWVkaWFFbGVtZW50Ojp3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0
CiAgICAgcmV0dXJuIG1fbWVkaWFFbGVtZW50ICYmIG1fbWVkaWFFbGVtZW50LT5tZWRpYVNlc3Np
b24oKS53aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgqbV9tZWRpYUVsZW1lbnQpOwogfQog
Citib29sIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Ojppc011dGVkKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQgPyBtX21lZGlhRWxlbWVudC0+bXV0ZWQo
KSA6IGZhbHNlOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJvbGxlci5oCmluZGV4IGNlMjViNThkNGFjODFjZWQ2
NWI1NDA0NzE4NGJkNzI2ZjdhNTBjMDcuLjUzZWRhNGIwNGFmYTY0YjUyOTM4N2E4M2JjYzFhYjgx
NTk3YjIyZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJBVlBs
YXllckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQVZQ
bGF5ZXJDb250cm9sbGVyLmgKQEAgLTY5LDYgKzY5LDcgQEAgY2xhc3MgV2ViUGxheWJhY2tTZXNz
aW9uSW50ZXJmYWNlQVZLaXQ7CiBAcHJvcGVydHkgQVZQbGF5ZXJDb250cm9sbGVyU3RhdHVzIHN0
YXR1czsKIEBwcm9wZXJ0eSAocmV0YWluKSBBVlZhbHVlVGltaW5nICp0aW1pbmc7CiBAcHJvcGVy
dHkgKHJldGFpbikgTlNBcnJheSAqc2Vla2FibGVUaW1lUmFuZ2VzOworQHByb3BlcnR5IChnZXR0
ZXI9aXNNdXRlZCkgQk9PTCBtdXRlZDsKIAogQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBoYXNN
ZWRpYVNlbGVjdGlvbk9wdGlvbnM7CiBAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGhhc0F1ZGlv
TWVkaWFTZWxlY3Rpb25PcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYkFWUGxheWVyQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJBVlBsYXllckNvbnRyb2xsZXIubW0KaW5kZXggOTJmMGI0YzQ2MDNkMGFjYWEzZjBj
NmU3MjIyNTYzM2QwMGI1NDk3Yi4uZmUzMDdkOThhNDE4ODJhYWNiZGMyZTYyYzcxNjY1YzQ5NzQ2
ZWQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkFWUGxheWVy
Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQVZQbGF5
ZXJDb250cm9sbGVyLm1tCkBAIC00MjQsNiArNDI0LDMxIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogICAgICAgICAgICAgW3NlbGYgc2V0UGxheWluZzpOT107CiAgICAgfQogfQorCistICh2
b2lkKWluY3JlYXNlVm9sdW1lOihpZClzZW5kZXIKK3sKKyAgICBVTlVTRURfUEFSQU0oc2VuZGVy
KTsKKyAgICBpZiAoIXNlbGYuZGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKyAgICBzZWxmLmRl
bGVnYXRlLT5pbmNyZWFzZVZvbHVtZSgpOworfQorCistICh2b2lkKWRlY3JlYXNlVm9sdW1lOihp
ZClzZW5kZXIKK3sKKyAgICBVTlVTRURfUEFSQU0oc2VuZGVyKTsKKyAgICBpZiAoIXNlbGYuZGVs
ZWdhdGUpCisgICAgICAgIHJldHVybjsKKyAgICBzZWxmLmRlbGVnYXRlLT5kZWNyZWFzZVZvbHVt
ZSgpOworfQorCistICh2b2lkKXRvZ2dsZU11dGVkOihpZClzZW5kZXIKK3sKKyAgICBVTlVTRURf
UEFSQU0oc2VuZGVyKTsKKyAgICBpZiAoIXNlbGYuZGVsZWdhdGUpCisgICAgICAgIHJldHVybjsK
KyAgICBzZWxmLmRlbGVnYXRlLT50b2dnbGVNdXRlZCgpOworfQorCiBAZW5kCiAKIEBpbXBsZW1l
bnRhdGlvbiBXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktp
dC5oCmluZGV4IGUxNWE2N2RhZDcxYzVmMWIyNTBiODg5OTRmY2FmODYxMDZlZGM5NjYuLjQxNDgz
OTJkYWJmMjJhY2Y3YWM4MjE5NDhiNTk5ZjFlZTcyNGM0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2VBVktpdC5oCkBAIC04Miw2ICs4Miw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGxlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxNZWRp
YVNlbGVjdGlvbk9wdGlvbj4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJy
aWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXh0ZXJuYWxQbGF5YmFja0NoYW5nZWQoYm9v
bCBlbmFibGVkLCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbDo6RXh0ZXJuYWxQbGF5YmFja1Rhcmdl
dFR5cGUsIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGV2aWNlTmFtZSkgb3ZlcnJpZGU7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZENoYW5nZWQo
Ym9vbCkgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtdXRlZENoYW5nZWQoYm9v
bCkgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViUGxheWJh
Y2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggM2NjNGQ3NzI5ZmFhOTAx
ZDIyNzYyYmM0NzI3ZGJlOGZkZjViMWQyNy4uNTczODliN2UzYWMyODIxMjI2YTRhMTRlNTMzNzI5
NjBlZjBhNDQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlBs
YXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbQpAQCAtMjE4LDYgKzIx
OCwxMSBAQCB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Ojp3aXJlbGVzc1Zp
ZGVvUGxheWJhY2tEaXNhYmxlZENoYW5nZWQoYm9vbAogICAgIFttX3BsYXllckNvbnRyb2xsZXIg
c2V0QWxsb3dzRXh0ZXJuYWxQbGF5YmFjazohZGlzYWJsZWRdOwogfQogCit2b2lkIFdlYlBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjptdXRlZENoYW5nZWQoYm9vbCBtdXRlZCkKK3sKKyAg
ICBbbV9wbGF5ZXJDb250cm9sbGVyIHNldE11dGVkOm11dGVkXTsKK30KKwogdm9pZCBXZWJQbGF5
YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6aW52YWxpZGF0ZSgpCiB7CiAgICAgaWYgKCFtX3Bs
YXliYWNrU2Vzc2lvbk1vZGVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KaW5kZXgg
MTNlMmNjOWFmMGY5YWFkZmQwZjhjMTk5NDdhYzE0MGVlNDY1YTE2OC4uMzliMTEyMmU5NmM3ZDAx
YTM5MDA2MjNlZWMzMjBmODAxMmQ3OWQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0
Lm1tCkBAIC0xNjUsNiArMTY1LDkgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgZXh0ZXJuYWxQbGF5
YmFja0xvY2FsaXplZERldmljZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHdpcmVs
ZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCB0b2dn
bGVQaWN0dXJlSW5QaWN0dXJlKCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBpbmNyZWFzZVZvbHVt
ZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZGVjcmVhc2VWb2x1bWUoKSBvdmVycmlkZTsKKyAgICB2
b2lkIHRvZ2dsZU11dGVkKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBXZWJQbGF5YmFja1Nlc3Npb25N
b2RlbENsaWVudAogICAgIHZvaWQgZHVyYXRpb25DaGFuZ2VkKGRvdWJsZSkgb3ZlcnJpZGU7CkBA
IC0xNzcsNiArMTgwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxlZ2libGVNZWRpYVNlbGVjdGlv
bk9wdGlvbnNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxNZWRpYVNlbGVjdGlvbk9wdGlvbj4mIG9wdGlv
bnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJyaWRlOwogICAgIHZvaWQgZXh0ZXJuYWxQ
bGF5YmFja0NoYW5nZWQoYm9vbCBlbmFibGVkLCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbDo6RXh0
ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUsIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGV2aWNlTmFt
ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZENoYW5n
ZWQoYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBtdXRlZENoYW5nZWQoYm9vbCkgb3ZlcnJpZGU7
CiAKICAgICAvLyBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbAogICAgIHZvaWQgYWRkQ2xpZW50KFdl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50Jikgb3ZlcnJpZGU7CkBAIC0xODgsNiArMTkyLDcg
QEAgcHJpdmF0ZToKICAgICBib29sIGlzVmlzaWJsZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJv
b2wgaGFzVmlkZW8oKSBjb25zdCBvdmVycmlkZTsKICAgICBGbG9hdFNpemUgdmlkZW9EaW1lbnNp
b25zKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBpc011dGVkKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKICAgICBIYXNoU2V0PFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsQ2xpZW50Kj4gbV9wbGF5YmFj
a0NsaWVudHM7CiAgICAgSGFzaFNldDxXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCo+IG1f
ZnVsbHNjcmVlbkNsaWVudHM7CkBAIC00NDEsNiArNDQ2LDIwIEBAIHZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkQ2hh
bmdlZChiCiAgICAgICAgIGNsaWVudC0+d2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFu
Z2VkKGRpc2FibGVkKTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29u
dGV4dDo6bXV0ZWRDaGFuZ2VkKGJvb2wgbXV0ZWQpCit7CisgICAgaWYgKFdlYlRocmVhZElzQ3Vy
cmVudCgpKSB7CisgICAgICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29u
dGV4dD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMsIG11dGVkXSB7CisgICAgICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT5tdXRlZENoYW5nZWQobXV0ZWQpOworICAgICAgICB9KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9wbGF5YmFja0Ns
aWVudHMpCisgICAgICAgIGNsaWVudC0+bXV0ZWRDaGFuZ2VkKG11dGVkKTsKK30KKwogI3ByYWdt
YSBtYXJrIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsCiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlckNvbnRleHQ6OmFkZENsaWVudChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVu
dCYgY2xpZW50KQpAQCAtNTIwLDYgKzUzOSwxMiBAQCBib29sIFdlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJDb250ZXh0OjpoYXNWaWRlbygpIGNvbnN0CiAgICAgcmV0dXJuIG1fZnVsbHNjcmVl
bk1vZGVsID8gbV9mdWxsc2NyZWVuTW9kZWwtPmhhc1ZpZGVvKCkgOiBmYWxzZTsKIH0KIAorYm9v
bCBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6aXNNdXRlZCgpIGNvbnN0Cit7
CisgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CisgICAgcmV0dXJuIG1fcGxheWJhY2tNb2RlbCA/
IG1fcGxheWJhY2tNb2RlbC0+aXNNdXRlZCgpIDogZmFsc2U7Cit9CisKIEZsb2F0U2l6ZSBXZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6dmlkZW9EaW1lbnNpb25zKCkgY29uc3QK
IHsKICAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKQEAgLTU3MCw2ICs1OTUsMzYgQEAgdm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6dG9nZ2xlUGxheVN0YXRlKCkKICAg
ICB9KTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6aW5j
cmVhc2VWb2x1bWUoKQoreworICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOworICAgIFJlZlB0cjxX
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsK
KyAgICBXZWJUaHJlYWRSdW4oW3Byb3RlY3RlZFRoaXMsIHRoaXNdIHsKKyAgICAgICAgaWYgKG1f
cGxheWJhY2tNb2RlbCkKKyAgICAgICAgICAgIG1fcGxheWJhY2tNb2RlbC0+aW5jcmVhc2VWb2x1
bWUoKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29u
dGV4dDo6ZGVjcmVhc2VWb2x1bWUoKQoreworICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOworICAg
IFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dD4gcHJvdGVjdGVkVGhp
cyh0aGlzKTsKKyAgICBXZWJUaHJlYWRSdW4oW3Byb3RlY3RlZFRoaXMsIHRoaXNdIHsKKyAgICAg
ICAgaWYgKG1fcGxheWJhY2tNb2RlbCkKKyAgICAgICAgICAgIG1fcGxheWJhY2tNb2RlbC0+ZGVj
cmVhc2VWb2x1bWUoKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQ29udGV4dDo6dG9nZ2xlTXV0ZWQoKQoreworICAgIEFTU0VSVChpc1VJVGhyZWFkKCkp
OworICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dD4gcHJvdGVj
dGVkVGhpcyh0aGlzKTsKKyAgICBXZWJUaHJlYWRSdW4oW3Byb3RlY3RlZFRoaXMsIHRoaXNdIHsK
KyAgICAgICAgaWYgKG1fcGxheWJhY2tNb2RlbCkKKyAgICAgICAgICAgIG1fcGxheWJhY2tNb2Rl
bC0+dG9nZ2xlTXV0ZWQoKTsKKyAgICB9KTsKK30KKwogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyQ29udGV4dDo6YmVnaW5TY3J1YmJpbmcoKQogewogICAgIEFTU0VSVChpc1VJVGhy
ZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBs
YXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5oCmluZGV4IDlmNTdkNTgzMWM5Zjgw
MGEwNmEzODdmMmU5ZGYxMmRhNmM4ZjhmNDIuLjU3YzA2MTU0MjNmNmRjMTQ1NTI5Y2QyNGEzNTYy
ZGU3MWU5YTFmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5LmgKQEAgLTgxLDYgKzgx
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyhj
b25zdCBWZWN0b3I8V2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25PcHRpb24+JiBvcHRpb25zLCB1aW50
NjRfdCBpbmRleCk7CiAgICAgdm9pZCBzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wsIFdlYlBsYXli
YWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgY29uc3QgU3RyaW5n
Jik7CiAgICAgdm9pZCBzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZChib29sKTsKKyAg
ICB2b2lkIHNldE11dGVkKGJvb2wpOwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBXZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ7CkBAIC0xMDUsNiArMTA2LDkgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QpIGZpbmFsOwogICAgIHZv
aWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90KSBmaW5hbDsKICAgICB2b2lkIHRv
Z2dsZVBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbDsKKyAgICB2b2lkIGluY3JlYXNlVm9sdW1lKCkg
ZmluYWw7CisgICAgdm9pZCBkZWNyZWFzZVZvbHVtZSgpIGZpbmFsOworICAgIHZvaWQgdG9nZ2xl
TXV0ZWQoKSBmaW5hbDsKIAogICAgIGRvdWJsZSBwbGF5YmFja1N0YXJ0ZWRUaW1lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9wbGF5YmFja1N0YXJ0ZWRUaW1lOyB9CiAgICAgZG91YmxlIGR1cmF0
aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9kdXJhdGlvbjsgfQpAQCAtMTIzLDYgKzEyNyw3
IEBAIHByaXZhdGU6CiAgICAgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWw6OkV4dGVybmFsUGxheWJh
Y2tUYXJnZXRUeXBlIGV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9leHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZTsgfQogICAgIFN0cmluZyBleHRlcm5h
bFBsYXliYWNrTG9jYWxpemVkRGV2aWNlTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZXh0
ZXJuYWxQbGF5YmFja0xvY2FsaXplZERldmljZU5hbWU7IH0KICAgICBib29sIHdpcmVsZXNzVmlk
ZW9QbGF5YmFja0Rpc2FibGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV93aXJlbGVzc1ZpZGVv
UGxheWJhY2tEaXNhYmxlZDsgfQorICAgIGJvb2wgaXNNdXRlZCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fbXV0ZWQ7IH0KIAogICAgIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eSogbV9t
YW5hZ2VyOwogICAgIHVpbnQ2NF90IG1fY29udGV4dElkOwpAQCAtMTQ1LDYgKzE1MCw3IEBAIHBy
aXZhdGU6CiAgICAgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWw6OkV4dGVybmFsUGxheWJhY2tUYXJn
ZXRUeXBlIG1fZXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUgeyBXZWJQbGF5YmFja1Nlc3Npb25N
b2RlbDo6VGFyZ2V0VHlwZU5vbmUgfTsKICAgICBTdHJpbmcgbV9leHRlcm5hbFBsYXliYWNrTG9j
YWxpemVkRGV2aWNlTmFtZTsKICAgICBib29sIG1fd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJs
ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CiB9OwogCiBjbGFzcyBX
ZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk+LCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsK
QEAgLTE4OCw2ICsxOTQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0UGxheWJhY2tTdGFydGVk
VGltZSh1aW50NjRfdCBjb250ZXh0SWQsIGRvdWJsZSBwbGF5YmFja1N0YXJ0ZWRUaW1lKTsKICAg
ICB2b2lkIHNldFJhdGUodWludDY0X3QgY29udGV4dElkLCBib29sIGlzUGxheWluZywgZG91Ymxl
IHJhdGUpOwogICAgIHZvaWQgaGFuZGxlQ29udHJvbGxlZEVsZW1lbnRJRFJlc3BvbnNlKHVpbnQ2
NF90LCBTdHJpbmcpIGNvbnN0OworICAgIHZvaWQgc2V0TXV0ZWQodWludDY0X3QgY29udGV4dElk
LCBib29sIG11dGVkKTsKIAogICAgIC8vIE1lc3NhZ2VzIHRvIFdlYlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXIKICAgICB2b2lkIHBsYXkodWludDY0X3QgY29udGV4dElkKTsKQEAgLTIwMyw2ICsyMTAs
OSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBj
b250ZXh0SWQsIHVpbnQ2NF90IGluZGV4KTsKICAgICB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9w
dGlvbih1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQ2NF90IGluZGV4KTsKICAgICB2b2lkIHRvZ2ds
ZVBpY3R1cmVJblBpY3R1cmUodWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIGluY3JlYXNl
Vm9sdW1lKHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBkZWNyZWFzZVZvbHVtZSh1aW50
NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgdG9nZ2xlTXV0ZWQodWludDY0X3QgY29udGV4dElk
KTsKIAogICAgIFdlYlBhZ2VQcm94eSogbV9wYWdlOwogICAgIEhhc2hNYXA8dWludDY0X3QsIE1v
ZGVsSW50ZXJmYWNlVHVwbGU+IG1fY29udGV4dE1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNzaW9u
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGE3ZjE0YmY0ZDRmMWE0ZWUyMzczYWE0MTc1
NTBmNWM3MDFjZDE1NTguLjcxMTgzOGUxNTg4ODgzODlhY2U3NDZiYjlkYjlhY2FkZjgxZThjNjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nl
c3Npb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MzQsNiArMzQsNyBAQCBtZXNzYWdlcyAtPiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkg
ewogICAgIFNldER1cmF0aW9uKHVpbnQ2NF90IGNvbnRleHRJZCwgZG91YmxlIGR1cmF0aW9uKQog
ICAgIFNldFBsYXliYWNrU3RhcnRlZFRpbWUodWludDY0X3QgY29udGV4dElkLCBkb3VibGUgcGxh
eWJhY2tTdGFydGVkVGltZSkKICAgICBTZXRSYXRlKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBp
c1BsYXlpbmcsIGRvdWJsZSByYXRlKQorICAgIFNldE11dGVkKHVpbnQ2NF90IGNvbnRleHRJZCwg
Ym9vbCBtdXRlZCk7CiAgICAgU2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlcldpdGhJRCh1aW50
NjRfdCBjb250ZXh0SWQpCiAgICAgQ2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGxh
eWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1tCmluZGV4IDVjZGI1YWRiZDdmN2RiM2RkMWU5OTdl
NTU2YmU2NzY4MmQ5MzAyMjkuLjVlODQ4NTA5M2EzMzFlOGI3OWMyMWEzYTdiYTcyMzY0ZTUxYWE2
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tbQpAQCAtMTM1LDYgKzEzNSwyNCBA
QCB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6dG9nZ2xlUGljdHVyZUluUGlj
dHVyZSgpCiAgICAgICAgIG1fbWFuYWdlci0+dG9nZ2xlUGljdHVyZUluUGljdHVyZShtX2NvbnRl
eHRJZCk7CiB9CiAKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OjppbmNyZWFz
ZVZvbHVtZSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5pbmNy
ZWFzZVZvbHVtZShtX2NvbnRleHRJZCk7Cit9CisKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9k
ZWxDb250ZXh0OjpkZWNyZWFzZVZvbHVtZSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAg
ICAgbV9tYW5hZ2VyLT5kZWNyZWFzZVZvbHVtZShtX2NvbnRleHRJZCk7Cit9CisKK3ZvaWQgV2Vi
UGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0Ojp0b2dnbGVNdXRlZCgpCit7CisgICAgaWYgKG1f
bWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT50b2dnbGVNdXRlZChtX2NvbnRleHRJZCk7Cit9
CisKIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OjpzZXRQbGF5YmFja1N0YXJ0
ZWRUaW1lKGRvdWJsZSBwbGF5YmFja1N0YXJ0ZWRUaW1lKQogewogICAgIG1fcGxheWJhY2tTdGFy
dGVkVGltZSA9IHBsYXliYWNrU3RhcnRlZFRpbWU7CkBAIC0yMjIsNiArMjQwLDEzIEBAIHZvaWQg
V2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OjpzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tE
aXNhYmxlZChib29sIHdpcmVsCiAgICAgICAgIGNsaWVudC0+d2lyZWxlc3NWaWRlb1BsYXliYWNr
RGlzYWJsZWRDaGFuZ2VkKHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKTsKIH0KIAordm9p
ZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OnNldE11dGVkKGJvb2wgbXV0ZWQpCit7
CisgICAgbV9tdXRlZCA9IG11dGVkOworICAgIGZvciAoYXV0byogY2xpZW50IDogbV9jbGllbnRz
KQorICAgICAgICBjbGllbnQtPm11dGVkQ2hhbmdlZChtdXRlZCk7Cit9CisKICNwcmFnbWEgbWFy
ayAtIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eQogCiBSZWZQdHI8V2ViUGxheWJhY2tT
ZXNzaW9uTWFuYWdlclByb3h5PiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OmNyZWF0
ZShXZWJQYWdlUHJveHkmIHBhZ2UpCkBAIC0zODgsNiArNDEzLDExIEBAIHZvaWQgV2ViUGxheWJh
Y2tTZXNzaW9uTWFuYWdlclByb3h5OjpzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCh1
aW50NjRfdCBjCiAgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS5zZXRXaXJlbGVzc1ZpZGVvUGxh
eWJhY2tEaXNhYmxlZChkaXNhYmxlZCk7CiB9CiAKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFu
YWdlclByb3h5OjpzZXRNdXRlZCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgbXV0ZWQpCit7Cisg
ICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS5zZXRNdXRlZChtdXRlZCk7Cit9CisKIHZvaWQgV2Vi
UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpzZXREdXJhdGlvbih1aW50NjRfdCBjb250ZXh0
SWQsIGRvdWJsZSBkdXJhdGlvbikKIHsKICAgICBlbnN1cmVNb2RlbChjb250ZXh0SWQpLnNldER1
cmF0aW9uKGR1cmF0aW9uKTsKQEAgLTQ4Myw2ICs1MTMsMjEgQEAgdm9pZCBXZWJQbGF5YmFja1Nl
c3Npb25NYW5hZ2VyUHJveHk6OnRvZ2dsZVBpY3R1cmVJblBpY3R1cmUodWludDY0X3QgY29udGV4
dElkKQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdl
cjo6VG9nZ2xlUGljdHVyZUluUGljdHVyZShjb250ZXh0SWQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsK
IH0KIAordm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OmluY3JlYXNlVm9sdW1l
KHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBs
YXliYWNrU2Vzc2lvbk1hbmFnZXI6OkluY3JlYXNlVm9sdW1lKGNvbnRleHRJZCksIG1fcGFnZS0+
cGFnZUlEKCkpOworfQorCit2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6ZGVj
cmVhc2VWb2x1bWUodWludDY0X3QgY29udGV4dElkKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6RGVjcmVhc2VWb2x1bWUoY29udGV4dElk
KSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdl
clByb3h5Ojp0b2dnbGVNdXRlZCh1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpUb2dnbGVNdXRlZChjb250
ZXh0SWQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKwogdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyUHJveHk6OnJlcXVlc3RDb250cm9sbGVkRWxlbWVudElEKCkKIHsKICAgICBpZiAobV9j
b250cm9sc01hbmFnZXJDb250ZXh0SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oCmluZGV4IGRkZmUy
MWM5NjljYmRkMDFlOTVkZDBjNzRlZmU3MDk2Mjc0ODMzNTIuLmIyNTY2Nzk3ZGY1NjljMTQ0ODY2
OGZhM2U3N2QyODU2MGE5OGRhM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oCkBAIC04NSw2ICs4
NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zQ2hh
bmdlZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25PcHRpb24+JiBvcHRpb25z
LCB1aW50NjRfdCBzZWxlY3RlZEluZGV4KSBmaW5hbDsKICAgICB2b2lkIGV4dGVybmFsUGxheWJh
Y2tDaGFuZ2VkKGJvb2wgZW5hYmxlZCwgV2ViQ29yZTo6V2ViUGxheWJhY2tTZXNzaW9uTW9kZWw6
OkV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERldmlj
ZU5hbWUpIGZpbmFsOwogICAgIHZvaWQgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFu
Z2VkKGJvb2wpIGZpbmFsOworICAgIHZvaWQgbXV0ZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOwogCiAg
ICAgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQ29udGV4dChXZWJQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyJiwgdWludDY0X3QgY29udGV4dElkKTsKIApAQCAtMTMxLDYgKzEzMiw3IEBAIHByb3Rl
Y3RlZDoKICAgICB2b2lkIGxlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnNDaGFuZ2VkKHVpbnQ2
NF90IGNvbnRleHRJZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhU2VsZWN0aW9uT3B0aW9u
PiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCk7CiAgICAgdm9pZCBleHRlcm5hbFBs
YXliYWNrQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgZW5hYmxlZCwgV2ViQ29yZTo6
V2ViUGxheWJhY2tTZXNzaW9uTW9kZWw6OkV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlLCBTdHJp
bmcgbG9jYWxpemVkRGV2aWNlTmFtZSk7CiAgICAgdm9pZCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tE
aXNhYmxlZENoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBib29sKTsKKyAgICB2b2lkIG11dGVk
Q2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wpOwogCiAgICAgLy8gTWVzc2FnZXMgZnJv
bSBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkKICAgICB2b2lkIHBsYXkodWludDY0X3Qg
Y29udGV4dElkKTsKQEAgLTE0Nyw2ICsxNDksOSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZWxl
Y3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgY29udGV4dElkLCB1aW50NjRfdCBpbmRleCk7
CiAgICAgdm9pZCBoYW5kbGVDb250cm9sbGVkRWxlbWVudElEUmVxdWVzdCh1aW50NjRfdCBjb250
ZXh0SWQpOwogICAgIHZvaWQgdG9nZ2xlUGljdHVyZUluUGljdHVyZSh1aW50NjRfdCBjb250ZXh0
SWQpOworICAgIHZvaWQgaW5jcmVhc2VWb2x1bWUodWludDY0X3QgY29udGV4dElkKTsKKyAgICB2
b2lkIGRlY3JlYXNlVm9sdW1lKHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCB0b2dnbGVN
dXRlZCh1aW50NjRfdCBjb250ZXh0SWQpOwogCiAgICAgV2ViUGFnZSogbV9wYWdlOwogICAgIEhh
c2hNYXA8V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCosIHVpbnQ2NF90PiBtX21lZGlhRWxlbWVu
dHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXli
YWNrU2Vzc2lvbk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYWZlZGFj
YmNmOWZhMDZlYjliZGVmNGVjY2JmZGUyOWI4ZGZiZTFjMy4uMzFkMTA5YzVmNDcyMjlhZmUyNmY3
YWNmODMzNmVhYmUwYTYyMmI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tZXNz
YWdlcy5pbgpAQCAtMzcsNSArMzcsOCBAQCBtZXNzYWdlcyAtPiBXZWJQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyIHsKICAgICBTZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgY29udGV4dElk
LCB1aW50NjRfdCBpbmRleCkKICAgICBIYW5kbGVDb250cm9sbGVkRWxlbWVudElEUmVxdWVzdCh1
aW50NjRfdCBjb250ZXh0SWQpCiAgICAgVG9nZ2xlUGljdHVyZUluUGljdHVyZSh1aW50NjRfdCBj
b250ZXh0SWQpCisgICAgSW5jcmVhc2VWb2x1bWUodWludDY0X3QgY29udGV4dElkKQorICAgIERl
Y3JlYXNlVm9sdW1lKHVpbnQ2NF90IGNvbnRleHRJZCkKKyAgICBUb2dnbGVNdXRlZCh1aW50NjRf
dCBjb250ZXh0SWQpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbQppbmRleCAxZjRl
ZjMxN2Y1MmZiNjk3MmU2NGE5MTE5ZjliMzc2MWY1OTQ1ZmYyLi4zYTFlNTM1MmYwYjBmYTA5ZDI4
MGRhMWEwM2M5YzJkNWIxOTYyM2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tCkBAIC0xMzcs
NiArMTM3LDEyIEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQ29udGV4dDo6d2ly
ZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKGJvCiAgICAgICAgIG1fbWFuYWdlci0+
d2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKG1fY29udGV4dElkLCBkaXNhYmxl
ZCk7CiB9CiAKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQ29udGV4dDo6bXV0ZWRD
aGFuZ2VkKGJvb2wgbXV0ZWQpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5h
Z2VyLT5tdXRlZENoYW5nZWQobV9jb250ZXh0SWQsIG11dGVkKTsKK30KKwogI3ByYWdtYSBtYXJr
IC0gV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcgogCiBSZWY8V2ViUGxheWJhY2tTZXNzaW9uTWFu
YWdlcj4gV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UpCkBA
IC0zMzYsNiArMzQyLDExIEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6d2lyZWxl
c3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKHVpbnQ2NF90IGNvCiAgICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OlNldFdpcmVsZXNz
VmlkZW9QbGF5YmFja0Rpc2FibGVkKGNvbnRleHRJZCwgZGlzYWJsZWQpKTsKIH0KIAordm9pZCBX
ZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjptdXRlZENoYW5nZWQodWludDY0X3QgY29udGV4dElk
LCBib29sIG11dGVkKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGxheWJhY2tT
ZXNzaW9uTWFuYWdlclByb3h5OjpTZXRNdXRlZChjb250ZXh0SWQsIG11dGVkKSk7Cit9CisKICNw
cmFnbWEgbWFyayBNZXNzYWdlcyBmcm9tIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eToK
IAogdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpwbGF5KHVpbnQ2NF90IGNvbnRleHRJ
ZCkKQEAgLTQyMyw2ICs0MzQsMjQgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjp0
b2dnbGVQaWN0dXJlSW5QaWN0dXJlKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBlbnN1cmVNb2Rl
bChjb250ZXh0SWQpLnRvZ2dsZVBpY3R1cmVJblBpY3R1cmUoKTsKIH0KIAordm9pZCBXZWJQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyOjppbmNyZWFzZVZvbHVtZSh1aW50NjRfdCBjb250ZXh0SWQpCit7
CisgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9yKFByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSk7CisgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS5pbmNyZWFzZVZvbHVtZSgpOworfQorCit2
b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OmRlY3JlYXNlVm9sdW1lKHVpbnQ2NF90IGNv
bnRleHRJZCkKK3sKKyAgICBVc2VyR2VzdHVyZUluZGljYXRvciBpbmRpY2F0b3IoUHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKTsKKyAgICBlbnN1cmVNb2RlbChjb250ZXh0SWQpLmRlY3JlYXNlVm9sdW1l
KCk7Cit9CisKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6dG9nZ2xlTXV0ZWQodWlu
dDY0X3QgY29udGV4dElkKQoreworICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGluZGljYXRvcihQ
cm9jZXNzaW5nVXNlckdlc3R1cmUpOworICAgIGVuc3VyZU1vZGVsKGNvbnRleHRJZCkudG9nZ2xl
TXV0ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9S
TShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9E
RSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308887</attachid>
            <date>2017-05-02 20:50:28 -0700</date>
            <delta_ts>2017-05-03 11:43:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171592-20170502205027.patch</filename>
            <type>text/plain</type>
            <size>27456</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzgyM2Y4ZDc0MGJmZmJi
M2IxNDA2YWFiMDg2OGI3YzI4NGE0MGEwNy4uNmE4YmFmYzhkMjdkMjg0ZTRiNWFhMjNmZDU1MjRk
NzU0MzM1NWU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA1LTAyICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgbXV0ZSBhbmQgaW5j
cmVhc2VWb2x1bWUgYW5kIGRlY3JlYXNlVm9sdW1lIHRvIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNTky
CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzMxODE0MDc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLiBUaGlzIGp1c3Qg
YWRkcyB0aGUgYWJpbGl0eSBmb3IgdWkgdG8gY2hhbmdlIHZvbHVtZSBhbmQgbXV0ZWQuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbC5oOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQ6Om11dGVkQ2hhbmdlZCk6
CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbk1v
ZGVsTWVkaWFFbGVtZW50Ojp1cGRhdGVGb3JFdmVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmluY3JlYXNlVm9sdW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpkZWNy
ZWFzZVZvbHVtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1l
ZGlhRWxlbWVudDo6dG9nZ2xlTXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViUGxheWJhY2tT
ZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6Om9ic2VydmVkRXZlbnROYW1lcyk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6aXNNdXRlZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJvbGxlci5oOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9XZWJBVlBsYXllckNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYkFW
UGxheWVyQ29udHJvbGxlciBpbmNyZWFzZVZvbHVtZTpdKToKKyAgICAgICAgKC1bV2ViQVZQbGF5
ZXJDb250cm9sbGVyIGRlY3JlYXNlVm9sdW1lOl0pOgorICAgICAgICAoLVtXZWJBVlBsYXllckNv
bnRyb2xsZXIgdG9nZ2xlTXV0ZWQ6XSk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlBs
YXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6Om11dGVkQ2hhbmdlZCk6CisgICAgICAgICogcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAg
KFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjptdXRlZENoYW5nZWQpOgorICAg
ICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmlzTXV0ZWQpOgorICAg
ICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmluY3JlYXNlVm9sdW1l
KToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpkZWNyZWFz
ZVZvbHVtZSk6CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6
dG9nZ2xlTXV0ZWQpOgorCiAyMDE3LTA1LTAyICBBbmRyZXcgR29sZCAgPGFnb2xkQGFwcGxlLmNv
bT4KIAogICAgICAgICBUeXBvIGluIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXIu
bW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCA0NjdhNjRhMTZiMjU3YmMzYzE0M2IzOGU1N2I2NGRjYjM0YTQyOGFk
Li5lYWMzM2FjYmI0MTYyZGRjOTNjNjQ3NDk5MTVhYTA2MTI5NzNkNDRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMTctMDUtMDIgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBtdXRlIGFuZCBpbmNyZWFzZVZvbHVtZSBhbmQgZGVjcmVhc2VW
b2x1bWUgdG8gV2ViUGxheWJhY2tTZXNzaW9uTW9kZWwuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE1OTIKKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
MzE4MTQwNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBQbHVtYiBuZXcgdm9sdW1lIGFuZCBtdXRlZCBtZXRob2RzIHRocm91Z2ggV0syIGlwYyBsYXll
ci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXliYWNr
U2Vzc2lvbk1vZGVsQ29udGV4dDo6aW5jcmVhc2VWb2x1bWUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OmRlY3JlYXNlVm9sdW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0Ojp0b2dnbGVNdXRlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6c2V0TXV0ZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnNldE11
dGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Ojpp
bmNyZWFzZVZvbHVtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXJQcm94eTo6ZGVjcmVhc2VWb2x1bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF5YmFja1Nl
c3Npb25NYW5hZ2VyUHJveHk6OnRvZ2dsZU11dGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VDb250ZXh0OjptdXRlZENoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjptdXRlZENoYW5nZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjppbmNyZWFzZVZv
bHVtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OmRlY3Jl
YXNlVm9sdW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6
dG9nZ2xlTXV0ZWQpOgorCiAyMDE3LTA1LTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIER5bmFtaWNhbGx5IGFkZGVkIHBvc2l0aW9uOmZpeGVkIGVs
ZW1lbnQgaXMgaW4gdGhlIHdyb25nIHBsYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWwuaAppbmRleCA3ODg3NDMwZGFi
OWY5ZTYwNDZmMzk2Mzg0YWQ2OGY0ZjRhZTU0ODI1Li5iOTU0NDczYTVkZDVkNzdkZWI4MmI0OTI2
N2UxY2E0ZTc2MWJmZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsLmgKQEAgLTU2LDYgKzU2LDkgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRf
dCBpbmRleCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVQaWN0dXJlSW5QaWN0dXJlKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBpbmNyZWFzZVZvbHVtZSgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGVjcmVhc2VWb2x1bWUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRvZ2dsZU11dGVk
KCkgPSAwOwogCiAgICAgZW51bSBFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSB7IFRhcmdldFR5
cGVOb25lLCBUYXJnZXRUeXBlQWlyUGxheSwgVGFyZ2V0VHlwZVRWT3V0IH07CiAKQEAgLTc2LDYg
Kzc5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgRXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUg
ZXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJp
bmcgZXh0ZXJuYWxQbGF5YmFja0xvY2FsaXplZERldmljZU5hbWUoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCBib29sIHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgYm9vbCBpc011dGVkKCkgY29uc3QgPSAwOwogfTsKIAogY2xhc3MgV2ViUGxh
eWJhY2tTZXNzaW9uTW9kZWxDbGllbnQgewpAQCAtOTQsNiArOTgsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGxlZ2libGVNZWRpYVNlbGVjdGlvbkluZGV4Q2hhbmdlZCh1aW50NjRfdCkg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGV4dGVybmFsUGxheWJhY2tDaGFuZ2VkKGJvb2wgLyogZW5h
YmxlZCAqLywgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWw6OkV4dGVybmFsUGxheWJhY2tUYXJnZXRU
eXBlLCBjb25zdCBTdHJpbmcmIC8qIGxvY2FsaXplZERldmljZU5hbWUgKi8pIHsgfQogICAgIHZp
cnR1YWwgdm9pZCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZENoYW5nZWQoYm9vbCkgeyB9
CisgICAgdmlydHVhbCB2b2lkIG11dGVkQ2hhbmdlZChib29sKSB7IH0KIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1v
ZGVsTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5
YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oCmluZGV4IDYwZjMwYWQzODk0NzAwMjkyOTQ4
MjBlNTZjNjVhMWI0MDhhZGMyOGMuLmRjZDIyY2U0N2U4YWJkY2QxN2NjNDYyZDJmMzE5OTQzZjUy
MDEyNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1dlYlBsYXli
YWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQuaApAQCAtNzAsNiAr
NzAsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZWxlY3RBdWRpb01lZGlh
T3B0aW9uKHVpbnQ2NF90IGluZGV4KSBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
bGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkgZmluYWw7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCB0b2dnbGVQaWN0dXJlSW5QaWN0dXJlKCkgZmluYWw7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBpbmNyZWFzZVZvbHVtZSgpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGVjcmVhc2VWb2x1bWUoKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRv
Z2dsZU11dGVkKCkgZmluYWw7CiAKICAgICBkb3VibGUgZHVyYXRpb24oKSBjb25zdCBmaW5hbDsK
ICAgICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdCBmaW5hbDsKQEAgLTg3LDYgKzkwLDcgQEAg
cHVibGljOgogICAgIEV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlIGV4dGVybmFsUGxheWJhY2tU
YXJnZXRUeXBlKCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIGV4dGVybmFsUGxheWJhY2tMb2Nh
bGl6ZWREZXZpY2VOYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCB3aXJlbGVzc1ZpZGVvUGxh
eWJhY2tEaXNhYmxlZCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNNdXRlZCgpIGNvbnN0IGZp
bmFsOwogCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgV2ViUGxheWJhY2tTZXNzaW9u
TW9kZWxNZWRpYUVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQu
bW0KaW5kZXggNWY5YjVjNDA4ZDcwMzg0MjdlZDY2ZWFhODVmODYxYmIzYjYyMDUxNC4uMDI1Nzk0
NGM1ZDY5YjIzMDY4NTkwODE1YjQ0NzI4NDAyMDU5YWUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9u
TW9kZWxNZWRpYUVsZW1lbnQubW0KQEAgLTE2NSw2ICsxNjUsMTIgQEAgdm9pZCBXZWJQbGF5YmFj
a1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6dXBkYXRlRm9yRXZlbnROYW1lKGNvbnN0IFdURjo6
QXRvbWljU3QKICAgICAvLyB1cGRhdGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMoKSB3aWxsIGFsc28g
dXBkYXRlIHRoZSBzZWxlY3Rpb24gaW5kaWNlcy4KICAgICBpZiAoZXZlbnROYW1lID09IGV2ZW50
TmFtZXMoKS5jaGFuZ2VFdmVudCkKICAgICAgICAgdXBkYXRlTWVkaWFTZWxlY3Rpb25JbmRpY2Vz
KCk7CisKKyAgICBpZiAoYWxsCisgICAgICAgIHx8IGV2ZW50TmFtZSA9PSBldmVudE5hbWVzKCku
dm9sdW1lY2hhbmdlRXZlbnQpIHsKKyAgICAgICAgZm9yIChhdXRvIGNsaWVudCA6IG1fY2xpZW50
cykKKyAgICAgICAgICAgIGNsaWVudC0+bXV0ZWRDaGFuZ2VkKGlzTXV0ZWQoKSk7CisgICAgfQog
fQogdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6YWRkQ2xpZW50KFdl
YlBsYXliYWNrU2Vzc2lvbk1vZGVsQ2xpZW50JiBjbGllbnQpCiB7CkBAIC0yNjksNiArMjc1LDI0
IEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnRvZ2dsZVBpY3R1
cmVJblBpY3R1cmUoKQogICAgICAgICBtX21lZGlhRWxlbWVudC0+ZW50ZXJGdWxsc2NyZWVuKE1l
ZGlhUGxheWVyRW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKTsKIH0K
IAordm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6aW5jcmVhc2VWb2x1
bWUoKQoreworICAgIGlmIChtX21lZGlhRWxlbWVudCkKKyAgICAgICAgbV9tZWRpYUVsZW1lbnQt
PnNldFZvbHVtZShmbWluKDEuMCwgbV9tZWRpYUVsZW1lbnQtPnZvbHVtZSgpICsgMC4xKSk7Cit9
CisKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmRlY3JlYXNlVm9s
dW1lKCkKK3sKKyAgICBpZiAobV9tZWRpYUVsZW1lbnQpCisgICAgICAgIG1fbWVkaWFFbGVtZW50
LT5zZXRWb2x1bWUoZm1heCgwLjAsIG1fbWVkaWFFbGVtZW50LT52b2x1bWUoKSAtIDAuMSkpOwor
fQorCit2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Ojp0b2dnbGVNdXRl
ZCgpCit7CisgICAgaWYgKG1fbWVkaWFFbGVtZW50KQorICAgICAgICBtX21lZGlhRWxlbWVudC0+
c2V0TXV0ZWQoIW1fbWVkaWFFbGVtZW50LT5tdXRlZCgpKTsKK30KKwogdm9pZCBXZWJQbGF5YmFj
a1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6dXBkYXRlTWVkaWFTZWxlY3Rpb25PcHRpb25zKCkK
IHsKICAgICBpZiAoIW1fbWVkaWFFbGVtZW50KQpAQCAtMzMxLDYgKzM1NSw3IEBAIGNvbnN0IFZl
Y3RvcjxBdG9taWNTdHJpbmc+JiBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6
b2JzZXJ2ZWRFdmVudE5hCiAgICAgICAgIGV2ZW50TmFtZXMoKS50aW1ldXBkYXRlRXZlbnQsCiAg
ICAgICAgIGV2ZW50TmFtZXMoKS5hZGR0cmFja0V2ZW50LAogICAgICAgICBldmVudE5hbWVzKCku
cmVtb3ZldHJhY2tFdmVudCwKKyAgICAgICAgZXZlbnROYW1lcygpLnZvbHVtZWNoYW5nZUV2ZW50
LAogICAgICAgICBldmVudE5hbWVzKCkud2Via2l0Y3VycmVudHBsYXliYWNrdGFyZ2V0aXN3aXJl
bGVzc2NoYW5nZWRFdmVudCwKICAgICB9KTsKICAgICByZXR1cm4gbmFtZXMuZ2V0KCk7CkBAIC00
ODksNiArNTE0LDExIEBAIGJvb2wgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6
OndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9tZWRp
YUVsZW1lbnQgJiYgbV9tZWRpYUVsZW1lbnQtPm1lZGlhU2Vzc2lvbigpLndpcmVsZXNzVmlkZW9Q
bGF5YmFja0Rpc2FibGVkKCptX21lZGlhRWxlbWVudCk7CiB9CiAKK2Jvb2wgV2ViUGxheWJhY2tT
ZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmlzTXV0ZWQoKSBjb25zdAoreworICAgIHJldHVybiBt
X21lZGlhRWxlbWVudCA/IG1fbWVkaWFFbGVtZW50LT5tdXRlZCgpIDogZmFsc2U7Cit9CisKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQVZQ
bGF5ZXJDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQVZQbGF5
ZXJDb250cm9sbGVyLmgKaW5kZXggY2UyNWI1OGQ0YWM4MWNlZDY1YjU0MDQ3MTg0YmQ3MjZmN2E1
MGMwNy4uNTNlZGE0YjA0YWZhNjRiNTI5Mzg3YTgzYmNjMWFiODE1OTdiMjJmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJBVlBsYXllckNvbnRyb2xsZXIuaApA
QCAtNjksNiArNjksNyBAQCBjbGFzcyBXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDsK
IEBwcm9wZXJ0eSBBVlBsYXllckNvbnRyb2xsZXJTdGF0dXMgc3RhdHVzOwogQHByb3BlcnR5IChy
ZXRhaW4pIEFWVmFsdWVUaW1pbmcgKnRpbWluZzsKIEBwcm9wZXJ0eSAocmV0YWluKSBOU0FycmF5
ICpzZWVrYWJsZVRpbWVSYW5nZXM7CitAcHJvcGVydHkgKGdldHRlcj1pc011dGVkKSBCT09MIG11
dGVkOwogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGhhc01lZGlhU2VsZWN0aW9uT3B0aW9u
czsKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgaGFzQXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlv
bnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQVZQbGF5ZXJD
b250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29u
dHJvbGxlci5tbQppbmRleCA5MmYwYjRjNDYwM2QwYWNhYTNmMGM2ZTcyMjI1NjMzZDAwYjU0OTdi
Li5mZTMwN2Q5OGE0MTg4MmFhY2JkYzJlNjJjNzE2NjVjNDk3NDZlZDEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQVZQbGF5ZXJDb250cm9sbGVyLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJBVlBsYXllckNvbnRyb2xsZXIubW0KQEAg
LTQyNCw2ICs0MjQsMzEgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgICAgICAgICBb
c2VsZiBzZXRQbGF5aW5nOk5PXTsKICAgICB9CiB9CisKKy0gKHZvaWQpaW5jcmVhc2VWb2x1bWU6
KGlkKXNlbmRlcgoreworICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOworICAgIGlmICghc2VsZi5k
ZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuOworICAgIHNlbGYuZGVsZWdhdGUtPmluY3JlYXNlVm9s
dW1lKCk7Cit9CisKKy0gKHZvaWQpZGVjcmVhc2VWb2x1bWU6KGlkKXNlbmRlcgoreworICAgIFVO
VVNFRF9QQVJBTShzZW5kZXIpOworICAgIGlmICghc2VsZi5kZWxlZ2F0ZSkKKyAgICAgICAgcmV0
dXJuOworICAgIHNlbGYuZGVsZWdhdGUtPmRlY3JlYXNlVm9sdW1lKCk7Cit9CisKKy0gKHZvaWQp
dG9nZ2xlTXV0ZWQ6KGlkKXNlbmRlcgoreworICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOworICAg
IGlmICghc2VsZi5kZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuOworICAgIHNlbGYuZGVsZWdhdGUt
PnRvZ2dsZU11dGVkKCk7Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkFWTWVkaWFT
ZWxlY3Rpb25PcHRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKaW5kZXggZTE1YTY3ZGFk
NzFjNWYxYjI1MGI4ODk5NGZjYWY4NjEwNmVkYzk2Ni4uNDE0ODM5MmRhYmYyMmFjZjdhYzgyMTk0
OGI1OTlmMWVlNzI0YzRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKQEAgLTgyLDYg
KzgyLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbGVnaWJsZU1lZGlhU2Vs
ZWN0aW9uT3B0aW9uc0NoYW5nZWQoY29uc3QgVmVjdG9yPE1lZGlhU2VsZWN0aW9uT3B0aW9uPiYg
b3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBleHRlcm5hbFBsYXliYWNrQ2hhbmdlZChib29sIGVuYWJsZWQsIFdlYlBsYXli
YWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgY29uc3QgU3RyaW5n
JiBsb2NhbGl6ZWREZXZpY2VOYW1lKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkQ2hhbmdlZChib29sKSBvdmVycmlkZTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIG11dGVkQ2hhbmdlZChib29sKSBvdmVycmlkZTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VB
VktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2VBVktpdC5tbQppbmRleCAzY2M0ZDc3MjlmYWE5MDFkMjI3NjJiYzQ3MjdkYmU4ZmRm
NWIxZDI3Li41NzM4OWI3ZTNhYzI4MjEyMjZhNGExNGU1MzM3Mjk2MGVmMGE0NDJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJm
YWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlBsYXliYWNr
U2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tCkBAIC0yMTgsNiArMjE4LDExIEBAIHZvaWQgV2ViUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVk
Q2hhbmdlZChib29sCiAgICAgW21fcGxheWVyQ29udHJvbGxlciBzZXRBbGxvd3NFeHRlcm5hbFBs
YXliYWNrOiFkaXNhYmxlZF07CiB9CiAKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
QVZLaXQ6Om11dGVkQ2hhbmdlZChib29sIG11dGVkKQoreworICAgIFttX3BsYXllckNvbnRyb2xs
ZXIgc2V0TXV0ZWQ6bXV0ZWRdOworfQorCiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFj
ZUFWS2l0OjppbnZhbGlkYXRlKCkKIHsKICAgICBpZiAoIW1fcGxheWJhY2tTZXNzaW9uTW9kZWwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQppbmRleCA0OTk1MTNlMDUzNDVkYzJkNTE5
NmM0NmUxMmFiMDRjZTIzZGFjNTNlLi4xOWU0MGI3OTBiY2UwNmEyMTM4MTAyNTA4OTJhMjk5NjNm
YzEzZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KQEAgLTE2Niw2ICsxNjYs
OSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBleHRlcm5hbFBsYXliYWNrTG9jYWxpemVkRGV2aWNl
TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlz
YWJsZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHRvZ2dsZVBpY3R1cmVJblBpY3R1cmUo
KSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGluY3JlYXNlVm9sdW1lKCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBkZWNyZWFzZVZvbHVtZSgpIG92ZXJyaWRlOworICAgIHZvaWQgdG9nZ2xlTXV0ZWQoKSBv
dmVycmlkZTsKIAogICAgIC8vIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsQ2xpZW50CiAgICAgdm9p
ZCBkdXJhdGlvbkNoYW5nZWQoZG91YmxlKSBvdmVycmlkZTsKQEAgLTE3OCw2ICsxODEsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgbGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uc0NoYW5nZWQoY29u
c3QgVmVjdG9yPE1lZGlhU2VsZWN0aW9uT3B0aW9uPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0
ZWRJbmRleCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBleHRlcm5hbFBsYXliYWNrQ2hhbmdlZChib29s
IGVuYWJsZWQsIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0
VHlwZSwgY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWREZXZpY2VOYW1lKSBvdmVycmlkZTsKICAgICB2
b2lkIHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkQ2hhbmdlZChib29sKSBvdmVycmlkZTsK
KyAgICB2b2lkIG11dGVkQ2hhbmdlZChib29sKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsCiAgICAgdm9pZCBhZGRDbGllbnQoV2ViVmlkZW9GdWxsc2NyZWVuTW9k
ZWxDbGllbnQmKSBvdmVycmlkZTsKQEAgLTE4OSw2ICsxOTMsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgaXNWaXNpYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0
IG92ZXJyaWRlOwogICAgIEZsb2F0U2l6ZSB2aWRlb0RpbWVuc2lvbnMoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICBib29sIGlzTXV0ZWQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEhhc2hTZXQ8V2Vi
UGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQqPiBtX3BsYXliYWNrQ2xpZW50czsKICAgICBIYXNo
U2V0PFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50Kj4gbV9mdWxsc2NyZWVuQ2xpZW50czsK
QEAgLTQ0Miw2ICs0NDcsMjAgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29u
dGV4dDo6d2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKGIKICAgICAgICAgY2xp
ZW50LT53aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZENoYW5nZWQoZGlzYWJsZWQpOwogfQog
Cit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjptdXRlZENoYW5nZWQo
Ym9vbCBtdXRlZCkKK3sKKyAgICBpZiAoV2ViVGhyZWFkSXNDdXJyZW50KCkpIHsKKyAgICAgICAg
UmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0PiBwcm90ZWN0ZWRUaGlz
KHRoaXMpOworICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
LCBbcHJvdGVjdGVkVGhpcywgbXV0ZWRdIHsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm11
dGVkQ2hhbmdlZChtdXRlZCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX3BsYXliYWNrQ2xpZW50cykKKyAgICAgICAgY2xp
ZW50LT5tdXRlZENoYW5nZWQobXV0ZWQpOworfQorCiAjcHJhZ21hIG1hcmsgV2ViVmlkZW9GdWxs
c2NyZWVuTW9kZWwKIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6
YWRkQ2xpZW50KFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50JiBjbGllbnQpCkBAIC01MjEs
NiArNTQwLDEyIEBAIGJvb2wgV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6Omhh
c1ZpZGVvKCkgY29uc3QKICAgICByZXR1cm4gbV9mdWxsc2NyZWVuTW9kZWwgPyBtX2Z1bGxzY3Jl
ZW5Nb2RlbC0+aGFzVmlkZW8oKSA6IGZhbHNlOwogfQogCitib29sIFdlYlZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXJDb250ZXh0Ojppc011dGVkKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNVSVRo
cmVhZCgpKTsKKyAgICByZXR1cm4gbV9wbGF5YmFja01vZGVsID8gbV9wbGF5YmFja01vZGVsLT5p
c011dGVkKCkgOiBmYWxzZTsKK30KKwogRmxvYXRTaXplIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXJDb250ZXh0Ojp2aWRlb0RpbWVuc2lvbnMoKSBjb25zdAogewogICAgIEFTU0VSVChpc1VJ
VGhyZWFkKCkpOwpAQCAtNTcxLDYgKzU5NiwzNiBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJDb250ZXh0Ojp0b2dnbGVQbGF5U3RhdGUoKQogICAgIH0pOwogfQogCit2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjppbmNyZWFzZVZvbHVtZSgpCit7Cisg
ICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CisgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJDb250ZXh0PiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgIFdlYlRocmVhZFJ1bihb
cHJvdGVjdGVkVGhpcywgdGhpc10geworICAgICAgICBpZiAobV9wbGF5YmFja01vZGVsKQorICAg
ICAgICAgICAgbV9wbGF5YmFja01vZGVsLT5pbmNyZWFzZVZvbHVtZSgpOworICAgIH0pOworfQor
Cit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpkZWNyZWFzZVZvbHVt
ZSgpCit7CisgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CisgICAgUmVmUHRyPFdlYlZpZGVvRnVs
bHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0PiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgIFdlYlRo
cmVhZFJ1bihbcHJvdGVjdGVkVGhpcywgdGhpc10geworICAgICAgICBpZiAobV9wbGF5YmFja01v
ZGVsKQorICAgICAgICAgICAgbV9wbGF5YmFja01vZGVsLT5kZWNyZWFzZVZvbHVtZSgpOworICAg
IH0pOworfQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojp0b2dn
bGVNdXRlZCgpCit7CisgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CisgICAgUmVmUHRyPFdlYlZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0PiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAg
IFdlYlRocmVhZFJ1bihbcHJvdGVjdGVkVGhpcywgdGhpc10geworICAgICAgICBpZiAobV9wbGF5
YmFja01vZGVsKQorICAgICAgICAgICAgbV9wbGF5YmFja01vZGVsLT50b2dnbGVNdXRlZCgpOwor
ICAgIH0pOworfQorCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojpi
ZWdpblNjcnViYmluZygpCiB7CiAgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNz
aW9uTWFuYWdlclByb3h5LmgKaW5kZXggYThlOWJhYjNlZmYwN2ZiZWUyMWM5Njk3ZGJkODljMTk3
NGJlMjg2YS4uOWU3ZTlmMTNjYjFmMTEyOGM1MWNkZjVjOTQ4MzI4Y2Q2MzQ4MDBlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaApAQCAtODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25JbmRleCh1aW50NjRfdCBzZWxlY3RlZEluZGV4
KTsKICAgICB2b2lkIHNldEV4dGVybmFsUGxheWJhY2soYm9vbCwgV2ViUGxheWJhY2tTZXNzaW9u
TW9kZWw6OkV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlLCBjb25zdCBTdHJpbmcmKTsKICAgICB2
b2lkIHNldFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKGJvb2wpOworICAgIHZvaWQgc2V0
TXV0ZWQoYm9vbCk7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFdlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsQ29udGV4dDsKQEAgLTEwNyw2ICsxMDgsOSBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCkgZmluYWw7CiAgICAgdm9pZCBzZWxlY3RM
ZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QpIGZpbmFsOwogICAgIHZvaWQgdG9nZ2xlUGljdHVy
ZUluUGljdHVyZSgpIGZpbmFsOworICAgIHZvaWQgaW5jcmVhc2VWb2x1bWUoKSBmaW5hbDsKKyAg
ICB2b2lkIGRlY3JlYXNlVm9sdW1lKCkgZmluYWw7CisgICAgdm9pZCB0b2dnbGVNdXRlZCgpIGZp
bmFsOwogCiAgICAgZG91YmxlIHBsYXliYWNrU3RhcnRlZFRpbWUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX3BsYXliYWNrU3RhcnRlZFRpbWU7IH0KICAgICBkb3VibGUgZHVyYXRpb24oKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2R1cmF0aW9uOyB9CkBAIC0xMjUsNiArMTI5LDcgQEAgcHJpdmF0
ZToKICAgICBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbDo6RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5
cGUgZXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2V4
dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlOyB9CiAgICAgU3RyaW5nIGV4dGVybmFsUGxheWJhY2tM
b2NhbGl6ZWREZXZpY2VOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9leHRlcm5hbFBsYXli
YWNrTG9jYWxpemVkRGV2aWNlTmFtZTsgfQogICAgIGJvb2wgd2lyZWxlc3NWaWRlb1BsYXliYWNr
RGlzYWJsZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3dpcmVsZXNzVmlkZW9QbGF5YmFja0Rp
c2FibGVkOyB9CisgICAgYm9vbCBpc011dGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9tdXRl
ZDsgfQogCiAgICAgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5KiBtX21hbmFnZXI7CiAg
ICAgdWludDY0X3QgbV9jb250ZXh0SWQ7CkBAIC0xNDcsNiArMTUyLDcgQEAgcHJpdmF0ZToKICAg
ICBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbDo6RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUgbV9l
eHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSB7IFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpUYXJn
ZXRUeXBlTm9uZSB9OwogICAgIFN0cmluZyBtX2V4dGVybmFsUGxheWJhY2tMb2NhbGl6ZWREZXZp
Y2VOYW1lOwogICAgIGJvb2wgbV93aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCB7IGZhbHNl
IH07CisgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKIH07CiAKIGNsYXNzIFdlYlBsYXliYWNr
U2Vzc2lvbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlBsYXliYWNrU2Vzc2lv
bk1hbmFnZXJQcm94eT4sIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewpAQCAtMTkyLDYg
KzE5OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRQbGF5YmFja1N0YXJ0ZWRUaW1lKHVpbnQ2
NF90IGNvbnRleHRJZCwgZG91YmxlIHBsYXliYWNrU3RhcnRlZFRpbWUpOwogICAgIHZvaWQgc2V0
UmF0ZSh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgaXNQbGF5aW5nLCBkb3VibGUgcmF0ZSk7CiAg
ICAgdm9pZCBoYW5kbGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2UodWludDY0X3QsIFN0cmlu
ZykgY29uc3Q7CisgICAgdm9pZCBzZXRNdXRlZCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgbXV0
ZWQpOwogCiAgICAgLy8gTWVzc2FnZXMgdG8gV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcgogICAg
IHZvaWQgcGxheSh1aW50NjRfdCBjb250ZXh0SWQpOwpAQCAtMjA3LDYgKzIxNCw5IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGNvbnRleHRJZCwg
dWludDY0X3QgaW5kZXgpOwogICAgIHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2
NF90IGNvbnRleHRJZCwgdWludDY0X3QgaW5kZXgpOwogICAgIHZvaWQgdG9nZ2xlUGljdHVyZUlu
UGljdHVyZSh1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgaW5jcmVhc2VWb2x1bWUodWlu
dDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIGRlY3JlYXNlVm9sdW1lKHVpbnQ2NF90IGNvbnRl
eHRJZCk7CisgICAgdm9pZCB0b2dnbGVNdXRlZCh1aW50NjRfdCBjb250ZXh0SWQpOwogCiAgICAg
V2ViUGFnZVByb3h5KiBtX3BhZ2U7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgTW9kZWxJbnRlcmZh
Y2VUdXBsZT4gbV9jb250ZXh0TWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggYmMyZDM0ZmE2MzUzYzY1MmI0ODNlZGQxZWJmYjE1NDUyODU1
YzI5My4uOWExMjk4Nzc4MTJkNDFlMTY4Mzk3MWQ1ZWZlMGQxMWVhZTYyZjhmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNiw2ICszNiw3
IEBAIG1lc3NhZ2VzIC0+IFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eSB7CiAgICAgU2V0
RHVyYXRpb24odWludDY0X3QgY29udGV4dElkLCBkb3VibGUgZHVyYXRpb24pCiAgICAgU2V0UGxh
eWJhY2tTdGFydGVkVGltZSh1aW50NjRfdCBjb250ZXh0SWQsIGRvdWJsZSBwbGF5YmFja1N0YXJ0
ZWRUaW1lKQogICAgIFNldFJhdGUodWludDY0X3QgY29udGV4dElkLCBib29sIGlzUGxheWluZywg
ZG91YmxlIHJhdGUpCisgICAgU2V0TXV0ZWQodWludDY0X3QgY29udGV4dElkLCBib29sIG11dGVk
KTsKICAgICBTZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyV2l0aElEKHVpbnQ2NF90IGNvbnRl
eHRJZCkKICAgICBDbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQ
cm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyUHJveHkubW0KaW5kZXggZGZmZGM2M2ZhYzMwZjg5ZDFjYWExNDhhYjA4MjI5YzAy
ZWZlNWRhMS4uNzA0MzVkYjMwNjZmYmIzNWFjMmMwMGQ2ODc0OGRkOWJkN2I5MTBlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGxh
eWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1tCkBAIC0xMzUsNiArMTM1LDI0IEBAIHZvaWQgV2Vi
UGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0Ojp0b2dnbGVQaWN0dXJlSW5QaWN0dXJlKCkKICAg
ICAgICAgbV9tYW5hZ2VyLT50b2dnbGVQaWN0dXJlSW5QaWN0dXJlKG1fY29udGV4dElkKTsKIH0K
IAordm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OmluY3JlYXNlVm9sdW1lKCkK
K3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPmluY3JlYXNlVm9sdW1l
KG1fY29udGV4dElkKTsKK30KKwordm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6
OmRlY3JlYXNlVm9sdW1lKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFn
ZXItPmRlY3JlYXNlVm9sdW1lKG1fY29udGV4dElkKTsKK30KKwordm9pZCBXZWJQbGF5YmFja1Nl
c3Npb25Nb2RlbENvbnRleHQ6OnRvZ2dsZU11dGVkKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQor
ICAgICAgICBtX21hbmFnZXItPnRvZ2dsZU11dGVkKG1fY29udGV4dElkKTsKK30KKwogdm9pZCBX
ZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OnNldFBsYXliYWNrU3RhcnRlZFRpbWUoZG91
YmxlIHBsYXliYWNrU3RhcnRlZFRpbWUpCiB7CiAgICAgbV9wbGF5YmFja1N0YXJ0ZWRUaW1lID0g
cGxheWJhY2tTdGFydGVkVGltZTsKQEAgLTIzOCw2ICsyNTYsMTMgQEAgdm9pZCBXZWJQbGF5YmFj
a1Nlc3Npb25Nb2RlbENvbnRleHQ6OnNldFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKGJv
b2wgd2lyZWwKICAgICAgICAgY2xpZW50LT53aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZENo
YW5nZWQod2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQpOwogfQogCit2b2lkIFdlYlBsYXli
YWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3sKKyAgICBtX211
dGVkID0gbXV0ZWQ7CisgICAgZm9yIChhdXRvKiBjbGllbnQgOiBtX2NsaWVudHMpCisgICAgICAg
IGNsaWVudC0+bXV0ZWRDaGFuZ2VkKG11dGVkKTsKK30KKwogI3ByYWdtYSBtYXJrIC0gV2ViUGxh
eWJhY2tTZXNzaW9uTWFuYWdlclByb3h5CiAKIFJlZlB0cjxXZWJQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyUHJveHk+IFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYlBhZ2VQ
cm94eSYgcGFnZSkKQEAgLTQxNCw2ICs0MzksMTEgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyUHJveHk6OnNldFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKHVpbnQ2NF90IGMK
ICAgICBlbnN1cmVNb2RlbChjb250ZXh0SWQpLnNldFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2Fi
bGVkKGRpc2FibGVkKTsKIH0KIAordm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6
OnNldE11dGVkKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBtdXRlZCkKK3sKKyAgICBlbnN1cmVN
b2RlbChjb250ZXh0SWQpLnNldE11dGVkKG11dGVkKTsKK30KKwogdm9pZCBXZWJQbGF5YmFja1Nl
c3Npb25NYW5hZ2VyUHJveHk6OnNldER1cmF0aW9uKHVpbnQ2NF90IGNvbnRleHRJZCwgZG91Ymxl
IGR1cmF0aW9uKQogewogICAgIGVuc3VyZU1vZGVsKGNvbnRleHRJZCkuc2V0RHVyYXRpb24oZHVy
YXRpb24pOwpAQCAtNTA5LDYgKzUzOSwyMSBAQCB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXJQcm94eTo6dG9nZ2xlUGljdHVyZUluUGljdHVyZSh1aW50NjRfdCBjb250ZXh0SWQpCiAgICAg
bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpUb2dnbGVQ
aWN0dXJlSW5QaWN0dXJlKGNvbnRleHRJZCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCit2b2lk
IFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6aW5jcmVhc2VWb2x1bWUodWludDY0X3Qg
Y29udGV4dElkKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGxheWJhY2tTZXNz
aW9uTWFuYWdlcjo6SW5jcmVhc2VWb2x1bWUoY29udGV4dElkKSwgbV9wYWdlLT5wYWdlSUQoKSk7
Cit9CisKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpkZWNyZWFzZVZvbHVt
ZSh1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
bGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpEZWNyZWFzZVZvbHVtZShjb250ZXh0SWQpLCBtX3BhZ2Ut
PnBhZ2VJRCgpKTsKK30KKwordm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnRv
Z2dsZU11dGVkKHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OlRvZ2dsZU11dGVkKGNvbnRleHRJZCksIG1f
cGFnZS0+cGFnZUlEKCkpOworfQorCiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94
eTo6cmVxdWVzdENvbnRyb2xsZWRFbGVtZW50SUQoKQogewogICAgIGlmIChtX2NvbnRyb2xzTWFu
YWdlckNvbnRleHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29j
b2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgKaW5kZXggNzE4NThlMWVjYjU3MTNi
ZTA1OGU3MzEyMWJlMGI2ZWVhNTkyMTk5MC4uNTkyMzhiOGIxN2JmODVkNmZmZmY3ZWEzNzFjNDlh
YjUwNTRjOTJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgKQEAgLTg3LDYgKzg3LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGxlZ2libGVNZWRpYVNlbGVjdGlvbkluZGV4Q2hhbmdlZCh1aW50NjRf
dCkgZmluYWw7CiAgICAgdm9pZCBleHRlcm5hbFBsYXliYWNrQ2hhbmdlZChib29sIGVuYWJsZWQs
IFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0
VHlwZSwgY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWREZXZpY2VOYW1lKSBmaW5hbDsKICAgICB2b2lk
IHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkQ2hhbmdlZChib29sKSBmaW5hbDsKKyAgICB2
b2lkIG11dGVkQ2hhbmdlZChib29sKSBmaW5hbDsKIAogICAgIFdlYlBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZUNvbnRleHQoV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlciYsIHVpbnQ2NF90IGNvbnRl
eHRJZCk7CiAKQEAgLTEzNSw2ICsxMzYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBsZWdpYmxl
TWVkaWFTZWxlY3Rpb25JbmRleENoYW5nZWQodWludDY0X3QgY29udGV4dElkLCB1aW50NjRfdCBz
ZWxlY3RlZEluZGV4KTsKICAgICB2b2lkIGV4dGVybmFsUGxheWJhY2tDaGFuZ2VkKHVpbnQ2NF90
IGNvbnRleHRJZCwgYm9vbCBlbmFibGVkLCBXZWJDb3JlOjpXZWJQbGF5YmFja1Nlc3Npb25Nb2Rl
bDo6RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUsIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1l
KTsKICAgICB2b2lkIHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkQ2hhbmdlZCh1aW50NjRf
dCBjb250ZXh0SWQsIGJvb2wpOworICAgIHZvaWQgbXV0ZWRDaGFuZ2VkKHVpbnQ2NF90IGNvbnRl
eHRJZCwgYm9vbCk7CiAKICAgICAvLyBNZXNzYWdlcyBmcm9tIFdlYlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXJQcm94eQogICAgIHZvaWQgcGxheSh1aW50NjRfdCBjb250ZXh0SWQpOwpAQCAtMTUxLDYg
KzE1Myw5IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1
aW50NjRfdCBjb250ZXh0SWQsIHVpbnQ2NF90IGluZGV4KTsKICAgICB2b2lkIGhhbmRsZUNvbnRy
b2xsZWRFbGVtZW50SURSZXF1ZXN0KHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCB0b2dn
bGVQaWN0dXJlSW5QaWN0dXJlKHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBpbmNyZWFz
ZVZvbHVtZSh1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgZGVjcmVhc2VWb2x1bWUodWlu
dDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIHRvZ2dsZU11dGVkKHVpbnQ2NF90IGNvbnRleHRJ
ZCk7CiAKICAgICBXZWJQYWdlKiBtX3BhZ2U7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50KiwgdWludDY0X3Q+IG1fbWVkaWFFbGVtZW50czsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNz
aW9uTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBhZmVkYWNiY2Y5ZmEwNmViOWJkZWY0ZWNjYmZk
ZTI5YjhkZmJlMWMzLi4zMWQxMDljNWY0NzIyOWFmZTI2ZjdhY2Y4MzM2ZWFiZTBhNjIyYjhkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vz
c2lvbk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zNyw1ICszNyw4
IEBAIG1lc3NhZ2VzIC0+IFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIgewogICAgIFNlbGVjdExl
Z2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQ2NF90IGluZGV4KQogICAg
IEhhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXF1ZXN0KHVpbnQ2NF90IGNvbnRleHRJZCkKICAg
ICBUb2dnbGVQaWN0dXJlSW5QaWN0dXJlKHVpbnQ2NF90IGNvbnRleHRJZCkKKyAgICBJbmNyZWFz
ZVZvbHVtZSh1aW50NjRfdCBjb250ZXh0SWQpCisgICAgRGVjcmVhc2VWb2x1bWUodWludDY0X3Qg
Y29udGV4dElkKQorICAgIFRvZ2dsZU11dGVkKHVpbnQ2NF90IGNvbnRleHRJZCkKIH0KICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
bGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tCmluZGV4IGM5NjEyMDcyODMzNmY1MzczNmUzMTc4NTcz
NTQ0M2M1OGQwOGNmMGYuLjc1MzNkMWMyYTUzMjFmMDc0MmNlMTkzNDRlMzYwNGIzMmE5MTIyNzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tT
ZXNzaW9uTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dl
YlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0KQEAgLTE0OSw2ICsxNDksMTIgQEAgdm9pZCBXZWJQ
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2VDb250ZXh0Ojp3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNh
YmxlZENoYW5nZWQoYm8KICAgICAgICAgbV9tYW5hZ2VyLT53aXJlbGVzc1ZpZGVvUGxheWJhY2tE
aXNhYmxlZENoYW5nZWQobV9jb250ZXh0SWQsIGRpc2FibGVkKTsKIH0KIAordm9pZCBXZWJQbGF5
YmFja1Nlc3Npb25JbnRlcmZhY2VDb250ZXh0OjptdXRlZENoYW5nZWQoYm9vbCBtdXRlZCkKK3sK
KyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPm11dGVkQ2hhbmdlZChtX2Nv
bnRleHRJZCwgbXV0ZWQpOworfQorCiAjcHJhZ21hIG1hcmsgLSBXZWJQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyCiAKIFJlZjxXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyPiBXZWJQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSkKQEAgLTM1OCw2ICszNjQsMTEgQEAgdm9p
ZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjp3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxl
ZENoYW5nZWQodWludDY0X3QgY28KICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBsYXli
YWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6U2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQo
Y29udGV4dElkLCBkaXNhYmxlZCkpOwogfQogCit2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXI6Om11dGVkQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgbXV0ZWQpCit7CisgICAg
bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OlNl
dE11dGVkKGNvbnRleHRJZCwgbXV0ZWQpKTsKK30KKwogI3ByYWdtYSBtYXJrIE1lc3NhZ2VzIGZy
b20gV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OgogCiB2b2lkIFdlYlBsYXliYWNrU2Vz
c2lvbk1hbmFnZXI6OnBsYXkodWludDY0X3QgY29udGV4dElkKQpAQCAtNDQ1LDYgKzQ1NiwyNCBA
QCB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OnRvZ2dsZVBpY3R1cmVJblBpY3R1cmUo
dWludDY0X3QgY29udGV4dElkKQogICAgIGVuc3VyZU1vZGVsKGNvbnRleHRJZCkudG9nZ2xlUGlj
dHVyZUluUGljdHVyZSgpOwogfQogCit2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6Omlu
Y3JlYXNlVm9sdW1lKHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKKyAgICBVc2VyR2VzdHVyZUluZGlj
YXRvciBpbmRpY2F0b3IoUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKKyAgICBlbnN1cmVNb2RlbChj
b250ZXh0SWQpLmluY3JlYXNlVm9sdW1lKCk7Cit9CisKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9u
TWFuYWdlcjo6ZGVjcmVhc2VWb2x1bWUodWludDY0X3QgY29udGV4dElkKQoreworICAgIFVzZXJH
ZXN0dXJlSW5kaWNhdG9yIGluZGljYXRvcihQcm9jZXNzaW5nVXNlckdlc3R1cmUpOworICAgIGVu
c3VyZU1vZGVsKGNvbnRleHRJZCkuZGVjcmVhc2VWb2x1bWUoKTsKK30KKwordm9pZCBXZWJQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyOjp0b2dnbGVNdXRlZCh1aW50NjRfdCBjb250ZXh0SWQpCit7Cisg
ICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9yKFByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7
CisgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS50b2dnbGVNdXRlZCgpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1B
QykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkK
</data>
<flag name="review"
          id="330053"
          type_id="1"
          status="-"
          setter="jeremyj-wk"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308990</attachid>
            <date>2017-05-03 17:10:33 -0700</date>
            <delta_ts>2017-05-04 14:12:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171592-20170503171033.patch</filename>
            <type>text/plain</type>
            <size>26709</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzgyM2Y4ZDc0MGJmZmJi
M2IxNDA2YWFiMDg2OGI3YzI4NGE0MGEwNy4uYzY4ODNjNmViOTk0NjgyM2Q5NGQ0OWJmZGQ2Y2U0
NzVlMGFlZWI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE3LTA1LTAzICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgbXV0ZSBhbmQgaW5j
cmVhc2VWb2x1bWUgYW5kIGRlY3JlYXNlVm9sdW1lIHRvIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNTky
CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzMxODE0MDc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLiBUaGlzIGp1c3Qg
YWRkcyB0aGUgYWJpbGl0eSBmb3IgdWkgdG8gY2hhbmdlIHZvbHVtZSBhbmQgbXV0ZWQuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbC5oOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQ6Om11dGVkQ2hhbmdlZCk6
CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbk1v
ZGVsTWVkaWFFbGVtZW50Ojp1cGRhdGVGb3JFdmVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnRvZ2dsZU11dGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpvYnNlcnZl
ZEV2ZW50TmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViUGxheWJhY2tTZXNzaW9uTW9kZWxN
ZWRpYUVsZW1lbnQ6OmlzTXV0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJBVlBsYXll
ckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViQVZQbGF5ZXJDb250cm9s
bGVyLm1tOgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgZGVhbGxvY10pOgorICAg
ICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgdm9sdW1lQ29udHJvbGxlcl0pOgorICAgICAg
ICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgaW5jcmVhc2VWb2x1bWU6XSk6CisgICAgICAgICgt
W1dlYkFWUGxheWVyQ29udHJvbGxlciBkZWNyZWFzZVZvbHVtZTpdKToKKyAgICAgICAgKC1bV2Vi
QVZQbGF5ZXJDb250cm9sbGVyIHRvZ2dsZU11dGVkOl0pOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjptdXRlZENoYW5nZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW06
CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6bXV0ZWRDaGFu
Z2VkKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojppc011
dGVkKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojp0b2dn
bGVNdXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oOgor
CiAyMDE3LTA1LTAyICBBbmRyZXcgR29sZCAgPGFnb2xkQGFwcGxlLmNvbT4KIAogICAgICAgICBU
eXBvIGluIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXIubW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA0NjdhNjRhMTZiMjU3YmMzYzE0M2IzOGU1N2I2NGRjYjM0YTQyOGFkLi5iYTQ0MWY3YzJiMzgx
YzVhYTRhZjRlODAzNzhiZTY2OTA3YzUzNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAK
KzIwMTctMDUtMDMgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBtdXRlIGFuZCBpbmNyZWFzZVZvbHVtZSBhbmQgZGVjcmVhc2VWb2x1bWUgdG8gV2ViUGxh
eWJhY2tTZXNzaW9uTW9kZWwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzE1OTIKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMzE4MTQwNzQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQbHVtYiB0aHJvdWdo
IG11dGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dl
YlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxh
eWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0Ojp0b2dnbGVNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6c2V0TXV0ZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnNldE11dGVkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Ojp0b2dnbGVNdXRlZCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFu
YWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQ29u
dGV4dDo6bXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9u
TWFuYWdlcjo6bXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxheWJhY2tTZXNz
aW9uTWFuYWdlcjo6dG9nZ2xlTXV0ZWQpOgorCiAyMDE3LTA1LTAyICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIER5bmFtaWNhbGx5IGFkZGVkIHBvc2l0
aW9uOmZpeGVkIGVsZW1lbnQgaXMgaW4gdGhlIHdyb25nIHBsYWNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWwuaAppbmRl
eCA3ODg3NDMwZGFiOWY5ZTYwNDZmMzk2Mzg0YWQ2OGY0ZjRhZTU0ODI1Li42OGZhYjYyZTJkNzgz
Yzk3Yjg3OGM5ZDcxMGNlMjgzMmM4ZWNlZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsLmgKQEAgLTU2LDYgKzU2
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVp
bnQ2NF90IGluZGV4KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9w
dGlvbih1aW50NjRfdCBpbmRleCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVQaWN0dXJl
SW5QaWN0dXJlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVNdXRlZCgpID0gMDsKIAog
ICAgIGVudW0gRXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUgeyBUYXJnZXRUeXBlTm9uZSwgVGFy
Z2V0VHlwZUFpclBsYXksIFRhcmdldFR5cGVUVk91dCB9OwogCkBAIC03Niw2ICs3Nyw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIEV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlIGV4dGVybmFsUGxh
eWJhY2tUYXJnZXRUeXBlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGV4dGVybmFs
UGxheWJhY2tMb2NhbGl6ZWREZXZpY2VOYW1lKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNNdXRlZCgpIGNvbnN0ID0gMDsKIH07CiAKIGNsYXNzIFdlYlBsYXliYWNrU2Vzc2lv
bk1vZGVsQ2xpZW50IHsKQEAgLTk0LDYgKzk2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBsZWdpYmxlTWVkaWFTZWxlY3Rpb25JbmRleENoYW5nZWQodWludDY0X3QpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBleHRlcm5hbFBsYXliYWNrQ2hhbmdlZChib29sIC8qIGVuYWJsZWQgKi8sIFdl
YlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgY29uc3Qg
U3RyaW5nJiAvKiBsb2NhbGl6ZWREZXZpY2VOYW1lICovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
d2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKGJvb2wpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBtdXRlZENoYW5nZWQoYm9vbCkgeyB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9u
TW9kZWxNZWRpYUVsZW1lbnQuaAppbmRleCA2MGYzMGFkMzg5NDcwMDI5Mjk0ODIwZTU2YzY1YTFi
NDA4YWRjMjhjLi4xOGQxMWQ3MTVhMTVjNWE4OGY2MTc3MWU5ZGNjZWFmNWQxZmJmNjEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1dl
YlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50LmgKQEAgLTcwLDYgKzcwLDcgQEAgcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50
NjRfdCBpbmRleCkgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZWxlY3RMZWdpYmxl
TWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgdG9nZ2xlUGljdHVyZUluUGljdHVyZSgpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgdG9nZ2xlTXV0ZWQoKSBmaW5hbDsKIAogICAgIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0IGZp
bmFsOwogICAgIGRvdWJsZSBjdXJyZW50VGltZSgpIGNvbnN0IGZpbmFsOwpAQCAtODcsNiArODgs
NyBAQCBwdWJsaWM6CiAgICAgRXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUgZXh0ZXJuYWxQbGF5
YmFja1RhcmdldFR5cGUoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgZXh0ZXJuYWxQbGF5YmFj
a0xvY2FsaXplZERldmljZU5hbWUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHdpcmVsZXNzVmlk
ZW9QbGF5YmFja0Rpc2FibGVkKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBpc011dGVkKCkgY29u
c3QgZmluYWw7CiAKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBXZWJQbGF5YmFja1Nl
c3Npb25Nb2RlbE1lZGlhRWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudC5tbQppbmRleCA1ZjliNWM0MDhkNzAzODQyN2VkNjZlYWE4NWY4NjFiYjNiNjIwNTE0Li5j
NjYwNmYxZDBmYmFiMjA1YTdjNzgxMTRiMmI5NzQ5NTlhMmFhOTk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nl
c3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQpAQCAtMTY1LDYgKzE2NSwxMiBAQCB2b2lkIFdlYlBs
YXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Ojp1cGRhdGVGb3JFdmVudE5hbWUoY29uc3Qg
V1RGOjpBdG9taWNTdAogICAgIC8vIHVwZGF0ZU1lZGlhU2VsZWN0aW9uT3B0aW9ucygpIHdpbGwg
YWxzbyB1cGRhdGUgdGhlIHNlbGVjdGlvbiBpbmRpY2VzLgogICAgIGlmIChldmVudE5hbWUgPT0g
ZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50KQogICAgICAgICB1cGRhdGVNZWRpYVNlbGVjdGlvbklu
ZGljZXMoKTsKKworICAgIGlmIChhbGwKKyAgICAgICAgfHwgZXZlbnROYW1lID09IGV2ZW50TmFt
ZXMoKS52b2x1bWVjaGFuZ2VFdmVudCkgeworICAgICAgICBmb3IgKGF1dG8gY2xpZW50IDogbV9j
bGllbnRzKQorICAgICAgICAgICAgY2xpZW50LT5tdXRlZENoYW5nZWQoaXNNdXRlZCgpKTsKKyAg
ICB9CiB9CiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjphZGRDbGll
bnQoV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQmIGNsaWVudCkKIHsKQEAgLTI2OSw2ICsy
NzUsMTIgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6dG9nZ2xl
UGljdHVyZUluUGljdHVyZSgpCiAgICAgICAgIG1fbWVkaWFFbGVtZW50LT5lbnRlckZ1bGxzY3Jl
ZW4oTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUp
OwogfQogCit2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Ojp0b2dnbGVN
dXRlZCgpCit7CisgICAgaWYgKG1fbWVkaWFFbGVtZW50KQorICAgICAgICBtX21lZGlhRWxlbWVu
dC0+c2V0TXV0ZWQoIW1fbWVkaWFFbGVtZW50LT5tdXRlZCgpKTsKK30KKwogdm9pZCBXZWJQbGF5
YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6dXBkYXRlTWVkaWFTZWxlY3Rpb25PcHRpb25z
KCkKIHsKICAgICBpZiAoIW1fbWVkaWFFbGVtZW50KQpAQCAtMzMxLDYgKzM0Myw3IEBAIGNvbnN0
IFZlY3RvcjxBdG9taWNTdHJpbmc+JiBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVu
dDo6b2JzZXJ2ZWRFdmVudE5hCiAgICAgICAgIGV2ZW50TmFtZXMoKS50aW1ldXBkYXRlRXZlbnQs
CiAgICAgICAgIGV2ZW50TmFtZXMoKS5hZGR0cmFja0V2ZW50LAogICAgICAgICBldmVudE5hbWVz
KCkucmVtb3ZldHJhY2tFdmVudCwKKyAgICAgICAgZXZlbnROYW1lcygpLnZvbHVtZWNoYW5nZUV2
ZW50LAogICAgICAgICBldmVudE5hbWVzKCkud2Via2l0Y3VycmVudHBsYXliYWNrdGFyZ2V0aXN3
aXJlbGVzc2NoYW5nZWRFdmVudCwKICAgICB9KTsKICAgICByZXR1cm4gbmFtZXMuZ2V0KCk7CkBA
IC00ODksNiArNTAyLDExIEBAIGJvb2wgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1l
bnQ6OndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9t
ZWRpYUVsZW1lbnQgJiYgbV9tZWRpYUVsZW1lbnQtPm1lZGlhU2Vzc2lvbigpLndpcmVsZXNzVmlk
ZW9QbGF5YmFja0Rpc2FibGVkKCptX21lZGlhRWxlbWVudCk7CiB9CiAKK2Jvb2wgV2ViUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmlzTXV0ZWQoKSBjb25zdAoreworICAgIHJldHVy
biBtX21lZGlhRWxlbWVudCA/IG1fbWVkaWFFbGVtZW50LT5tdXRlZCgpIDogZmFsc2U7Cit9CisK
IH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
QVZQbGF5ZXJDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQVZQ
bGF5ZXJDb250cm9sbGVyLmgKaW5kZXggY2UyNWI1OGQ0YWM4MWNlZDY1YjU0MDQ3MTg0YmQ3MjZm
N2E1MGMwNy4uYWM5YjU0NzVjZjM4MDJkM2Y3N2FmZGFiYjVmMGYyOGZiYTY0ZDk4NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJBVlBsYXllckNvbnRyb2xsZXIu
aApAQCAtMzYsMTAgKzM2LDEzIEBAIGNsYXNzIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFW
S2l0OwogQHByb3BlcnR5IChyZXRhaW4pIE5TU3RyaW5nICpsb2NhbGl6ZWREaXNwbGF5TmFtZTsK
IEBlbmQKIAorQGNsYXNzIE1QVm9sdW1lQ29udHJvbGxlcjsKKwogQGludGVyZmFjZSBXZWJBVlBs
YXllckNvbnRyb2xsZXIgOiBOU09iamVjdCB7CiAgICAgV2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlv
biAqX2N1cnJlbnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uOwogICAgIFdlYkFWTWVkaWFTZWxl
Y3Rpb25PcHRpb24gKl9jdXJyZW50TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uOwogICAgIEJP
T0wgX3BpY3R1cmVJblBpY3R1cmVJbnRlcnJ1cHRlZDsKKyAgICBNUFZvbHVtZUNvbnRyb2xsZXIq
IF92b2x1bWVDb250cm9sbGVyOwogfQogCiBAcHJvcGVydHkgKHJldGFpbikgQVZQbGF5ZXJDb250
cm9sbGVyKiBwbGF5ZXJDb250cm9sbGVyUHJveHk7CkBAIC02OSw2ICs3Miw3IEBAIGNsYXNzIFdl
YlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OwogQHByb3BlcnR5IEFWUGxheWVyQ29udHJv
bGxlclN0YXR1cyBzdGF0dXM7CiBAcHJvcGVydHkgKHJldGFpbikgQVZWYWx1ZVRpbWluZyAqdGlt
aW5nOwogQHByb3BlcnR5IChyZXRhaW4pIE5TQXJyYXkgKnNlZWthYmxlVGltZVJhbmdlczsKK0Bw
cm9wZXJ0eSAoZ2V0dGVyPWlzTXV0ZWQpIEJPT0wgbXV0ZWQ7CiAKIEBwcm9wZXJ0eSAocmVhZG9u
bHkpIEJPT0wgaGFzTWVkaWFTZWxlY3Rpb25PcHRpb25zOwogQHByb3BlcnR5IChyZWFkb25seSkg
Qk9PTCBoYXNBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJBVlBsYXllckNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViQVZQbGF5ZXJDb250cm9sbGVyLm1tCmluZGV4IDkyZjBiNGM0
NjAzZDBhY2FhM2YwYzZlNzIyMjU2MzNkMDBiNTQ5N2IuLjRhNDM1YjIyNWMxNTgzZjk0ZmFmZTNj
YTFiOTAyYjRmZjg3OWNjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJBVlBsYXllckNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYkFWUGxheWVyQ29udHJvbGxlci5tbQpAQCAtMzEsNiArMzEsNyBAQAogCiAjaW1wb3J0
ICJBVktpdFNQSS5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiTWVkaWFQbGF5ZXJT
UEkuaCIKICNpbXBvcnQgIlRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIldlYlBsYXliYWNrU2Vzc2lv
bkludGVyZmFjZUFWS2l0LmgiCiAjaW1wb3J0ICJXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbC5oIgpA
QCAtNDMsNiArNDQsOSBAQAogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVktpdCkKIFNP
RlRfTElOS19DTEFTU19PUFRJT05BTChBVktpdCwgQVZQbGF5ZXJDb250cm9sbGVyKQogCitTT0ZU
X0xJTktfRlJBTUVXT1JLX09QVElPTkFMKE1lZGlhUGxheWVyKQorU09GVF9MSU5LX0NMQVNTX09Q
VElPTkFMKE1lZGlhUGxheWVyLCBNUFZvbHVtZUNvbnRyb2xsZXIpCisKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBAaW1wbGVtZW50YXRpb24gV2ViQVZQbGF5ZXJDb250cm9sbGVyCkBAIC03
MSw2ICs3NSw3IEBAIC0gKHZvaWQpZGVhbGxvYwogICAgIFtfY3VycmVudEF1ZGlvTWVkaWFTZWxl
Y3Rpb25PcHRpb24gcmVsZWFzZV07CiAgICAgW19jdXJyZW50TGVnaWJsZU1lZGlhU2VsZWN0aW9u
T3B0aW9uIHJlbGVhc2VdOwogICAgIFtfZXh0ZXJuYWxQbGF5YmFja0FpclBsYXlEZXZpY2VMb2Nh
bGl6ZWROYW1lIHJlbGVhc2VdOworICAgIFtfdm9sdW1lQ29udHJvbGxlciByZWxlYXNlXTsKICAg
ICBbc3VwZXIgZGVhbGxvY107CiB9CiAKQEAgLTQyNCw2ICs0MjksMzMgQEAgLSAodm9pZClzZXRQ
aWN0dXJlSW5QaWN0dXJlSW50ZXJydXB0ZWQ6KEJPT0wpcGljdHVyZUluUGljdHVyZUludGVycnVw
dGVkCiAgICAgICAgICAgICBbc2VsZiBzZXRQbGF5aW5nOk5PXTsKICAgICB9CiB9CisKKy0oTVBW
b2x1bWVDb250cm9sbGVyICopdm9sdW1lQ29udHJvbGxlciB7CisgICAgaWYgKCFfdm9sdW1lQ29u
dHJvbGxlcikKKyAgICAgICAgX3ZvbHVtZUNvbnRyb2xsZXIgPSBbYWxsb2NNUFZvbHVtZUNvbnRy
b2xsZXJJbnN0YW5jZSgpIGluaXRdOworICAgIHJldHVybiBfdm9sdW1lQ29udHJvbGxlcjsKK30K
KworLSAodm9pZClpbmNyZWFzZVZvbHVtZTooaWQpc2VuZGVyCit7CisgICAgVU5VU0VEX1BBUkFN
KHNlbmRlcik7CisgICAgW3NlbGYudm9sdW1lQ29udHJvbGxlciBzZXRWb2x1bWVWYWx1ZTpmbWlu
KDEuMCwgW3NlbGYudm9sdW1lQ29udHJvbGxlciB2b2x1bWVWYWx1ZV0gKyAwLjEpXTsKK30KKwor
LSAodm9pZClkZWNyZWFzZVZvbHVtZTooaWQpc2VuZGVyCit7CisgICAgVU5VU0VEX1BBUkFNKHNl
bmRlcik7CisgICAgW3NlbGYudm9sdW1lQ29udHJvbGxlciBzZXRWb2x1bWVWYWx1ZTpmbWF4KDAu
MCwgW3NlbGYudm9sdW1lQ29udHJvbGxlciB2b2x1bWVWYWx1ZV0gLSAwLjEpXTsKK30KKworLSAo
dm9pZCl0b2dnbGVNdXRlZDooaWQpc2VuZGVyCit7CisgICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7
CisgICAgaWYgKCFzZWxmLmRlbGVnYXRlKQorICAgICAgICByZXR1cm47CisgICAgc2VsZi5kZWxl
Z2F0ZS0+dG9nZ2xlTXV0ZWQoKTsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViQVZN
ZWRpYVNlbGVjdGlvbk9wdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQuaAppbmRleCBlMTVh
NjdkYWQ3MWM1ZjFiMjUwYjg4OTk0ZmNhZjg2MTA2ZWRjOTY2Li40MTQ4MzkyZGFiZjIyYWNmN2Fj
ODIxOTQ4YjU5OWYxZWU3MjRjNGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQuaApAQCAt
ODIsNiArODIsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBsZWdpYmxlTWVk
aWFTZWxlY3Rpb25PcHRpb25zQ2hhbmdlZChjb25zdCBWZWN0b3I8TWVkaWFTZWxlY3Rpb25PcHRp
b24+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3RlZEluZGV4KSBvdmVycmlkZTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGV4dGVybmFsUGxheWJhY2tDaGFuZ2VkKGJvb2wgZW5hYmxlZCwgV2Vi
UGxheWJhY2tTZXNzaW9uTW9kZWw6OkV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlLCBjb25zdCBT
dHJpbmcmIGxvY2FsaXplZERldmljZU5hbWUpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKGJvb2wpIG92ZXJyaWRl
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbXV0ZWRDaGFuZ2VkKGJvb2wpIG92ZXJyaWRlOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlBsYXliYWNrU2Vzc2lvbkludGVy
ZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlBsYXliYWNrU2Vz
c2lvbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IDNjYzRkNzcyOWZhYTkwMWQyMjc2MmJjNDcyN2Ri
ZThmZGY1YjFkMjcuLjU3Mzg5YjdlM2FjMjgyMTIyNmE0YTE0ZTUzMzcyOTYwZWYwYTQ0MmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KQEAgLTIxOCw2ICsyMTgsMTEgQEAgdm9pZCBX
ZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6d2lyZWxlc3NWaWRlb1BsYXliYWNrRGlz
YWJsZWRDaGFuZ2VkKGJvb2wKICAgICBbbV9wbGF5ZXJDb250cm9sbGVyIHNldEFsbG93c0V4dGVy
bmFsUGxheWJhY2s6IWRpc2FibGVkXTsKIH0KIAordm9pZCBXZWJQbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VBVktpdDo6bXV0ZWRDaGFuZ2VkKGJvb2wgbXV0ZWQpCit7CisgICAgW21fcGxheWVyQ29u
dHJvbGxlciBzZXRNdXRlZDptdXRlZF07Cit9CisKIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlQVZLaXQ6OmludmFsaWRhdGUoKQogewogICAgIGlmICghbV9wbGF5YmFja1Nlc3Npb25N
b2RlbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCmluZGV4IDQ5OTUxM2UwNTM0NWRj
MmQ1MTk2YzQ2ZTEyYWIwNGNlMjNkYWM1M2UuLmY3MDYwMmFhMzBkYTlmOTkxODRiMTZlYzk5YmI1
ZDc0ZTk2NTY3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpAQCAtMTY2LDYg
KzE2Niw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGV4dGVybmFsUGxheWJhY2tMb2NhbGl6ZWRE
ZXZpY2VOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCB3aXJlbGVzc1ZpZGVvUGxheWJh
Y2tEaXNhYmxlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgdG9nZ2xlUGljdHVyZUluUGlj
dHVyZSgpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgdG9nZ2xlTXV0ZWQoKSBvdmVycmlkZTsKIAog
ICAgIC8vIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsQ2xpZW50CiAgICAgdm9pZCBkdXJhdGlvbkNo
YW5nZWQoZG91YmxlKSBvdmVycmlkZTsKQEAgLTE3OCw2ICsxNzksNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgbGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uc0NoYW5nZWQoY29uc3QgVmVjdG9yPE1l
ZGlhU2VsZWN0aW9uT3B0aW9uPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBleHRlcm5hbFBsYXliYWNrQ2hhbmdlZChib29sIGVuYWJsZWQsIFdl
YlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgY29uc3Qg
U3RyaW5nJiBsb2NhbGl6ZWREZXZpY2VOYW1lKSBvdmVycmlkZTsKICAgICB2b2lkIHdpcmVsZXNz
VmlkZW9QbGF5YmFja0Rpc2FibGVkQ2hhbmdlZChib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIG11
dGVkQ2hhbmdlZChib29sKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsCiAgICAgdm9pZCBhZGRDbGllbnQoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQmKSBv
dmVycmlkZTsKQEAgLTE4OSw2ICsxOTEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNWaXNpYmxl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIEZsb2F0U2l6ZSB2aWRlb0RpbWVuc2lvbnMoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29s
IGlzTXV0ZWQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEhhc2hTZXQ8V2ViUGxheWJhY2tTZXNz
aW9uTW9kZWxDbGllbnQqPiBtX3BsYXliYWNrQ2xpZW50czsKICAgICBIYXNoU2V0PFdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsQ2xpZW50Kj4gbV9mdWxsc2NyZWVuQ2xpZW50czsKQEAgLTQ0Miw2ICs0
NDUsMjAgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6d2lyZWxl
c3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKGIKICAgICAgICAgY2xpZW50LT53aXJlbGVz
c1ZpZGVvUGxheWJhY2tEaXNhYmxlZENoYW5nZWQoZGlzYWJsZWQpOwogfQogCit2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjptdXRlZENoYW5nZWQoYm9vbCBtdXRlZCkK
K3sKKyAgICBpZiAoV2ViVGhyZWFkSXNDdXJyZW50KCkpIHsKKyAgICAgICAgUmVmUHRyPFdlYlZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0PiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAg
ICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVk
VGhpcywgbXV0ZWRdIHsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm11dGVkQ2hhbmdlZCht
dXRlZCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yIChh
dXRvJiBjbGllbnQgOiBtX3BsYXliYWNrQ2xpZW50cykKKyAgICAgICAgY2xpZW50LT5tdXRlZENo
YW5nZWQobXV0ZWQpOworfQorCiAjcHJhZ21hIG1hcmsgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwK
IAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6YWRkQ2xpZW50KFdl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50JiBjbGllbnQpCkBAIC01MjEsNiArNTM4LDEyIEBA
IGJvb2wgV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6Omhhc1ZpZGVvKCkgY29u
c3QKICAgICByZXR1cm4gbV9mdWxsc2NyZWVuTW9kZWwgPyBtX2Z1bGxzY3JlZW5Nb2RlbC0+aGFz
VmlkZW8oKSA6IGZhbHNlOwogfQogCitib29sIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJD
b250ZXh0Ojppc011dGVkKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKKyAg
ICByZXR1cm4gbV9wbGF5YmFja01vZGVsID8gbV9wbGF5YmFja01vZGVsLT5pc011dGVkKCkgOiBm
YWxzZTsKK30KKwogRmxvYXRTaXplIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0
Ojp2aWRlb0RpbWVuc2lvbnMoKSBjb25zdAogewogICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOwpA
QCAtNTcxLDYgKzU5NCwxNiBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250
ZXh0Ojp0b2dnbGVQbGF5U3RhdGUoKQogICAgIH0pOwogfQogCit2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJDb250ZXh0Ojp0b2dnbGVNdXRlZCgpCit7CisgICAgQVNTRVJUKGlzVUlU
aHJlYWQoKSk7CisgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0
PiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgIFdlYlRocmVhZFJ1bihbcHJvdGVjdGVkVGhpcywg
dGhpc10geworICAgICAgICBpZiAobV9wbGF5YmFja01vZGVsKQorICAgICAgICAgICAgbV9wbGF5
YmFja01vZGVsLT50b2dnbGVNdXRlZCgpOworICAgIH0pOworfQorCiB2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpiZWdpblNjcnViYmluZygpCiB7CiAgICAgQVNTRVJU
KGlzVUlUaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkv
aW9zL01lZGlhUGxheWVyU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL01l
ZGlhUGxheWVyU1BJLmgKaW5kZXggNjVhMDE0NDQ3YzlkNzFjNTdhZGEyNTQ0YzRiNTQzMjc4NDI4
YmEwYS4uYzVkOWNiMGEyZjJiNjc5NzJhZDk1MDRlZTAzNDczOTczMDQ2ZTY2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3MvTWVkaWFQbGF5ZXJTUEkuaApAQCAtMzUs
NiArMzUsNyBAQAogI2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBBVlJvdXRpbmdDb250cm9sbGVyLmg+
CiAjaW1wb3J0IDxNZWRpYVBsYXllci9NUEFWUm91dGluZ1NoZWV0Lmg+CiAjaW1wb3J0IDxNZWRp
YVBsYXllci9NUEF1ZGlvVmlkZW9Sb3V0aW5nUG9wb3ZlckNvbnRyb2xsZXIuaD4KKyNpbXBvcnQg
PE1lZGlhUGxheWVyL01QVm9sdW1lQ29udHJvbGxlci5oPgogCiAjZWxzZQogCkBAIC04OCw2ICs4
OSwxNCBAQCB0eXBlZGVmIE5TSW50ZWdlciBNUFJvdXRlRGlzY292ZXJ5TW9kZTsKIC0gKHZvaWQp
ZGlzbWlzczsKIEBlbmQKIAorQGludGVyZmFjZSBNUFZvbHVtZUNvbnRyb2xsZXIgOiBOU09iamVj
dAorQGVuZAorCitAaW50ZXJmYWNlIE1QVm9sdW1lQ29udHJvbGxlciAoKQorQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBmbG9hdCB2b2x1bWVWYWx1ZTsKKy0gKGZsb2F0KXNldFZvbHVt
ZVZhbHVlOihmbG9hdCl2b2x1bWVWYWx1ZTsKK0BlbmQKKwogI2VuZGlmCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lv
bk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXli
YWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5oCmluZGV4IGE4ZTliYWIzZWZmMDdmYmVlMjFjOTY5N2Ri
ZDg5YzE5NzRiZTI4NmEuLjkwNDFjZWMyMGFjZjUyZWMxZjhiOGNlZDk4N2Q5ODE1NDlhNWI4ZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nl
c3Npb25NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5LmgKQEAgLTgzLDYgKzgzLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uSW5kZXgodWludDY0X3Qgc2VsZWN0
ZWRJbmRleCk7CiAgICAgdm9pZCBzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wsIFdlYlBsYXliYWNr
U2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgY29uc3QgU3RyaW5nJik7
CiAgICAgdm9pZCBzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZChib29sKTsKKyAgICB2
b2lkIHNldE11dGVkKGJvb2wpOwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBXZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ7CkBAIC0xMDcsNiArMTA4LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QpIGZpbmFsOwogICAgIHZvaWQg
c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90KSBmaW5hbDsKICAgICB2b2lkIHRvZ2ds
ZVBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbDsKKyAgICB2b2lkIHRvZ2dsZU11dGVkKCkgZmluYWw7
CiAKICAgICBkb3VibGUgcGxheWJhY2tTdGFydGVkVGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fcGxheWJhY2tTdGFydGVkVGltZTsgfQogICAgIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fZHVyYXRpb247IH0KQEAgLTEyNSw2ICsxMjcsNyBAQCBwcml2YXRlOgog
ICAgIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSBl
eHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZXh0ZXJu
YWxQbGF5YmFja1RhcmdldFR5cGU7IH0KICAgICBTdHJpbmcgZXh0ZXJuYWxQbGF5YmFja0xvY2Fs
aXplZERldmljZU5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2V4dGVybmFsUGxheWJhY2tM
b2NhbGl6ZWREZXZpY2VOYW1lOyB9CiAgICAgYm9vbCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNh
YmxlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJs
ZWQ7IH0KKyAgICBib29sIGlzTXV0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX211dGVkOyB9
CiAKICAgICBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKICAgICB1
aW50NjRfdCBtX2NvbnRleHRJZDsKQEAgLTE0Nyw2ICsxNTAsNyBAQCBwcml2YXRlOgogICAgIFdl
YlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSBtX2V4dGVy
bmFsUGxheWJhY2tUYXJnZXRUeXBlIHsgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWw6OlRhcmdldFR5
cGVOb25lIH07CiAgICAgU3RyaW5nIG1fZXh0ZXJuYWxQbGF5YmFja0xvY2FsaXplZERldmljZU5h
bWU7CiAgICAgYm9vbCBtX3dpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkIHsgZmFsc2UgfTsK
KyAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogfTsKIAogY2xhc3MgV2ViUGxheWJhY2tTZXNz
aW9uTWFuYWdlclByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViUGxheWJhY2tTZXNzaW9uTWFu
YWdlclByb3h5PiwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CkBAIC0xOTIsNiArMTk2
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFBsYXliYWNrU3RhcnRlZFRpbWUodWludDY0X3Qg
Y29udGV4dElkLCBkb3VibGUgcGxheWJhY2tTdGFydGVkVGltZSk7CiAgICAgdm9pZCBzZXRSYXRl
KHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBpc1BsYXlpbmcsIGRvdWJsZSByYXRlKTsKICAgICB2
b2lkIGhhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNwb25zZSh1aW50NjRfdCwgU3RyaW5nKSBj
b25zdDsKKyAgICB2b2lkIHNldE11dGVkKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBtdXRlZCk7
CiAKICAgICAvLyBNZXNzYWdlcyB0byBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyCiAgICAgdm9p
ZCBwbGF5KHVpbnQ2NF90IGNvbnRleHRJZCk7CkBAIC0yMDcsNiArMjEyLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgY29udGV4dElkLCB1aW50
NjRfdCBpbmRleCk7CiAgICAgdm9pZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3Qg
Y29udGV4dElkLCB1aW50NjRfdCBpbmRleCk7CiAgICAgdm9pZCB0b2dnbGVQaWN0dXJlSW5QaWN0
dXJlKHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCB0b2dnbGVNdXRlZCh1aW50NjRfdCBj
b250ZXh0SWQpOwogCiAgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CiAgICAgSGFzaE1hcDx1aW50
NjRfdCwgTW9kZWxJbnRlcmZhY2VUdXBsZT4gbV9jb250ZXh0TWFwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYmMyZDM0ZmE2MzUzYzY1MmI0
ODNlZGQxZWJmYjE1NDUyODU1YzI5My4uOWExMjk4Nzc4MTJkNDFlMTY4Mzk3MWQ1ZWZlMGQxMWVh
ZTYyZjhmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBs
YXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0zNiw2ICszNiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXJQcm94eSB7CiAgICAgU2V0RHVyYXRpb24odWludDY0X3QgY29udGV4dElkLCBkb3VibGUgZHVy
YXRpb24pCiAgICAgU2V0UGxheWJhY2tTdGFydGVkVGltZSh1aW50NjRfdCBjb250ZXh0SWQsIGRv
dWJsZSBwbGF5YmFja1N0YXJ0ZWRUaW1lKQogICAgIFNldFJhdGUodWludDY0X3QgY29udGV4dElk
LCBib29sIGlzUGxheWluZywgZG91YmxlIHJhdGUpCisgICAgU2V0TXV0ZWQodWludDY0X3QgY29u
dGV4dElkLCBib29sIG11dGVkKTsKICAgICBTZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyV2l0
aElEKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBDbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2Vy
KCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXli
YWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubW0KaW5kZXggZGZmZGM2M2ZhYzMwZjg5
ZDFjYWExNDhhYjA4MjI5YzAyZWZlNWRhMS4uOTAyNDBmM2ZmOTk0NmVjODJkMmQyZWFmNWM5NTlh
Y2Q3MzRlM2EwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dl
YlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1tCkBAIC0xMzUsNiAr
MTM1LDEyIEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0Ojp0b2dnbGVQaWN0
dXJlSW5QaWN0dXJlKCkKICAgICAgICAgbV9tYW5hZ2VyLT50b2dnbGVQaWN0dXJlSW5QaWN0dXJl
KG1fY29udGV4dElkKTsKIH0KIAordm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6
OnRvZ2dsZU11dGVkKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXIt
PnRvZ2dsZU11dGVkKG1fY29udGV4dElkKTsKK30KKwogdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25N
b2RlbENvbnRleHQ6OnNldFBsYXliYWNrU3RhcnRlZFRpbWUoZG91YmxlIHBsYXliYWNrU3RhcnRl
ZFRpbWUpCiB7CiAgICAgbV9wbGF5YmFja1N0YXJ0ZWRUaW1lID0gcGxheWJhY2tTdGFydGVkVGlt
ZTsKQEAgLTIzOCw2ICsyNDQsMTMgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRl
eHQ6OnNldFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKGJvb2wgd2lyZWwKICAgICAgICAg
Y2xpZW50LT53aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZENoYW5nZWQod2lyZWxlc3NWaWRl
b1BsYXliYWNrRGlzYWJsZWQpOwogfQogCit2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsQ29u
dGV4dDo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3sKKyAgICBtX211dGVkID0gbXV0ZWQ7CisgICAg
Zm9yIChhdXRvKiBjbGllbnQgOiBtX2NsaWVudHMpCisgICAgICAgIGNsaWVudC0+bXV0ZWRDaGFu
Z2VkKG11dGVkKTsKK30KKwogI3ByYWdtYSBtYXJrIC0gV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdl
clByb3h5CiAKIFJlZlB0cjxXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk+IFdlYlBsYXli
YWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSkKQEAgLTQx
NCw2ICs0MjcsMTEgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnNldFdp
cmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKHVpbnQ2NF90IGMKICAgICBlbnN1cmVNb2RlbChj
b250ZXh0SWQpLnNldFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKGRpc2FibGVkKTsKIH0K
IAordm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnNldE11dGVkKHVpbnQ2NF90
IGNvbnRleHRJZCwgYm9vbCBtdXRlZCkKK3sKKyAgICBlbnN1cmVNb2RlbChjb250ZXh0SWQpLnNl
dE11dGVkKG11dGVkKTsKK30KKwogdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6
OnNldER1cmF0aW9uKHVpbnQ2NF90IGNvbnRleHRJZCwgZG91YmxlIGR1cmF0aW9uKQogewogICAg
IGVuc3VyZU1vZGVsKGNvbnRleHRJZCkuc2V0RHVyYXRpb24oZHVyYXRpb24pOwpAQCAtNTA5LDYg
KzUyNywxMSBAQCB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6dG9nZ2xlUGlj
dHVyZUluUGljdHVyZSh1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgbV9wYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpUb2dnbGVQaWN0dXJlSW5QaWN0dXJlKGNv
bnRleHRJZCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCit2b2lkIFdlYlBsYXliYWNrU2Vzc2lv
bk1hbmFnZXJQcm94eTo6dG9nZ2xlTXV0ZWQodWludDY0X3QgY29udGV4dElkKQoreworICAgIG1f
cGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6VG9nZ2xlTXV0
ZWQoY29udGV4dElkKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKIHZvaWQgV2ViUGxheWJhY2tT
ZXNzaW9uTWFuYWdlclByb3h5OjpyZXF1ZXN0Q29udHJvbGxlZEVsZW1lbnRJRCgpCiB7CiAgICAg
aWYgKG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaAppbmRl
eCA3MTg1OGUxZWNiNTcxM2JlMDU4ZTczMTIxYmUwYjZlZWE1OTIxOTkwLi5hZjNjYTcyOTcwZTU5
ZDFkM2FiOWU3YjdjNjE1MjI1YjQ2ODExMWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaApAQCAt
ODcsNiArODcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbGVnaWJsZU1lZGlhU2VsZWN0aW9uSW5k
ZXhDaGFuZ2VkKHVpbnQ2NF90KSBmaW5hbDsKICAgICB2b2lkIGV4dGVybmFsUGxheWJhY2tDaGFu
Z2VkKGJvb2wgZW5hYmxlZCwgV2ViQ29yZTo6V2ViUGxheWJhY2tTZXNzaW9uTW9kZWw6OkV4dGVy
bmFsUGxheWJhY2tUYXJnZXRUeXBlLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERldmljZU5hbWUp
IGZpbmFsOwogICAgIHZvaWQgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKGJv
b2wpIGZpbmFsOworICAgIHZvaWQgbXV0ZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOwogCiAgICAgV2Vi
UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQ29udGV4dChXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
JiwgdWludDY0X3QgY29udGV4dElkKTsKIApAQCAtMTM1LDYgKzEzNiw3IEBAIHByb3RlY3RlZDoK
ICAgICB2b2lkIGxlZ2libGVNZWRpYVNlbGVjdGlvbkluZGV4Q2hhbmdlZCh1aW50NjRfdCBjb250
ZXh0SWQsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpOwogICAgIHZvaWQgZXh0ZXJuYWxQbGF5YmFj
a0NoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBib29sIGVuYWJsZWQsIFdlYkNvcmU6OldlYlBs
YXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgU3RyaW5nIGxv
Y2FsaXplZERldmljZU5hbWUpOwogICAgIHZvaWQgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJs
ZWRDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCk7CisgICAgdm9pZCBtdXRlZENoYW5n
ZWQodWludDY0X3QgY29udGV4dElkLCBib29sKTsKIAogICAgIC8vIE1lc3NhZ2VzIGZyb20gV2Vi
UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5CiAgICAgdm9pZCBwbGF5KHVpbnQ2NF90IGNvbnRl
eHRJZCk7CkBAIC0xNTEsNiArMTUzLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2VsZWN0TGVn
aWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDY0X3QgaW5kZXgpOwogICAg
IHZvaWQgaGFuZGxlQ29udHJvbGxlZEVsZW1lbnRJRFJlcXVlc3QodWludDY0X3QgY29udGV4dElk
KTsKICAgICB2b2lkIHRvZ2dsZVBpY3R1cmVJblBpY3R1cmUodWludDY0X3QgY29udGV4dElkKTsK
KyAgICB2b2lkIHRvZ2dsZU11dGVkKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAKICAgICBXZWJQYWdl
KiBtX3BhZ2U7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50KiwgdWludDY0
X3Q+IG1fbWVkaWFFbGVtZW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tZXNzYWdl
cy5pbgppbmRleCBhZmVkYWNiY2Y5ZmEwNmViOWJkZWY0ZWNjYmZkZTI5YjhkZmJlMWMzLi40Mjkx
ZWFhZGMwYWVhOWNiZDk2NzRlNjBkMzg1MjQ5YjYxZjdkNTdhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nl
c3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zNyw1ICszNyw2IEBAIG1lc3NhZ2VzIC0+IFdl
YlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIgewogICAgIFNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1
aW50NjRfdCBjb250ZXh0SWQsIHVpbnQ2NF90IGluZGV4KQogICAgIEhhbmRsZUNvbnRyb2xsZWRF
bGVtZW50SURSZXF1ZXN0KHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBUb2dnbGVQaWN0dXJlSW5Q
aWN0dXJlKHVpbnQ2NF90IGNvbnRleHRJZCkKKyAgICBUb2dnbGVNdXRlZCh1aW50NjRfdCBjb250
ZXh0SWQpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbQppbmRleCBjOTYxMjA3Mjgz
MzZmNTM3MzZlMzE3ODU3MzU0NDNjNThkMDhjZjBmLi4yOGM3ZWU5YzgwNzliODhmMmNjNmJjYTli
MjlhNWM0YWRlMTY0MzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tCkBAIC0xNDksNiArMTQ5
LDEyIEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQ29udGV4dDo6d2lyZWxlc3NW
aWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKGJvCiAgICAgICAgIG1fbWFuYWdlci0+d2lyZWxl
c3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKG1fY29udGV4dElkLCBkaXNhYmxlZCk7CiB9
CiAKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQ29udGV4dDo6bXV0ZWRDaGFuZ2Vk
KGJvb2wgbXV0ZWQpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5t
dXRlZENoYW5nZWQobV9jb250ZXh0SWQsIG11dGVkKTsKK30KKwogI3ByYWdtYSBtYXJrIC0gV2Vi
UGxheWJhY2tTZXNzaW9uTWFuYWdlcgogCiBSZWY8V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcj4g
V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UpCkBAIC0zNTgs
NiArMzY0LDExIEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6d2lyZWxlc3NWaWRl
b1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKHVpbnQ2NF90IGNvCiAgICAgbV9wYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OlNldFdpcmVsZXNzVmlkZW9Q
bGF5YmFja0Rpc2FibGVkKGNvbnRleHRJZCwgZGlzYWJsZWQpKTsKIH0KIAordm9pZCBXZWJQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyOjptdXRlZENoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBib29s
IG11dGVkKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGxheWJhY2tTZXNzaW9u
TWFuYWdlclByb3h5OjpTZXRNdXRlZChjb250ZXh0SWQsIG11dGVkKSk7Cit9CisKICNwcmFnbWEg
bWFyayBNZXNzYWdlcyBmcm9tIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eToKIAogdm9p
ZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpwbGF5KHVpbnQ2NF90IGNvbnRleHRJZCkKQEAg
LTQ0NSw2ICs0NTYsMTIgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjp0b2dnbGVQ
aWN0dXJlSW5QaWN0dXJlKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBlbnN1cmVNb2RlbChjb250
ZXh0SWQpLnRvZ2dsZVBpY3R1cmVJblBpY3R1cmUoKTsKIH0KIAordm9pZCBXZWJQbGF5YmFja1Nl
c3Npb25NYW5hZ2VyOjp0b2dnbGVNdXRlZCh1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgVXNl
ckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9yKFByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7CisgICAg
ZW5zdXJlTW9kZWwoY29udGV4dElkKS50b2dnbGVNdXRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309100</attachid>
            <date>2017-05-04 14:12:39 -0700</date>
            <delta_ts>2017-05-04 14:18:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171592-20170504141238.patch</filename>
            <type>text/plain</type>
            <size>23877</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzgyM2Y4ZDc0MGJmZmJi
M2IxNDA2YWFiMDg2OGI3YzI4NGE0MGEwNy4uNzE1MThiYjU2MDY2NTE1ZDg1OTc4ZWQ5YWE5MWNk
ZjcwMDA0NjVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE3LTA1LTAzICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgbXV0ZWQgdG8gV2Vi
UGxheWJhY2tTZXNzaW9uTW9kZWwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzE1OTIKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMzE4MTQwNzQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBiZWhhdmlv
ciBjaGFuZ2UuIFRoaXMganVzdCBhZGRzIHRoZSBhYmlsaXR5IGZvciBVSSB0byBtdXRlLgorCisg
ICAgICAgICogcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWwuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVsQ2xpZW50OjptdXRlZENoYW5nZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9k
ZWxNZWRpYUVsZW1lbnQubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJQbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudDo6dXBkYXRlRm9yRXZlbnROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Ojp0b2dnbGVNdXRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6b2JzZXJ2
ZWRFdmVudE5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVs
TWVkaWFFbGVtZW50Ojppc011dGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViQVZQbGF5
ZXJDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJv
bGxlci5tbToKKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIHRvZ2dsZU11dGVkOl0p
OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktp
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VB
VktpdC5tbToKKyAgICAgICAgKFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFW
S2l0OjptdXRlZENoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQVZLaXQubW06CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQ29udGV4dDo6bXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXJDb250ZXh0Ojppc011dGVkKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXJDb250ZXh0Ojp0b2dnbGVNdXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vc3Bp
L2lvcy9NZWRpYVBsYXllclNQSS5oOgorCiAyMDE3LTA1LTAyICBBbmRyZXcgR29sZCAgPGFnb2xk
QGFwcGxlLmNvbT4KIAogICAgICAgICBUeXBvIGluIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmlj
ZU1hbmFnZXIubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0NjdhNjRhMTZiMjU3YmMzYzE0M2IzOGU1N2I2NGRj
YjM0YTQyOGFkLi5iYTQ0MWY3YzJiMzgxYzVhYTRhZjRlODAzNzhiZTY2OTA3YzUzNTY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTctMDUtMDMgIEplcmVteSBKb25lcyAgPGplcmVt
eWpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBtdXRlIGFuZCBpbmNyZWFzZVZvbHVtZSBhbmQg
ZGVjcmVhc2VWb2x1bWUgdG8gV2ViUGxheWJhY2tTZXNzaW9uTW9kZWwuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE1OTIKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vMzE4MTQwNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQbHVtYiB0aHJvdWdoIG11dGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0Ojp0b2dnbGVN
dXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6
c2V0TXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJv
eHk6OnNldE11dGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdl
clByb3h5Ojp0b2dnbGVNdXRlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlQ29udGV4dDo6bXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6bXV0ZWRDaGFuZ2VkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6dG9nZ2xlTXV0ZWQpOgorCiAyMDE3
LTA1LTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IER5bmFtaWNhbGx5IGFkZGVkIHBvc2l0aW9uOmZpeGVkIGVsZW1lbnQgaXMgaW4gdGhlIHdyb25n
IHBsYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5
YmFja1Nlc3Npb25Nb2RlbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxh
eWJhY2tTZXNzaW9uTW9kZWwuaAppbmRleCA3ODg3NDMwZGFiOWY5ZTYwNDZmMzk2Mzg0YWQ2OGY0
ZjRhZTU0ODI1Li42OGZhYjYyZTJkNzgzYzk3Yjg3OGM5ZDcxMGNlMjgzMmM4ZWNlZGU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25N
b2RlbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vz
c2lvbk1vZGVsLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBz
ZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCB0b2dnbGVQaWN0dXJlSW5QaWN0dXJlKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB0b2dnbGVNdXRlZCgpID0gMDsKIAogICAgIGVudW0gRXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5
cGUgeyBUYXJnZXRUeXBlTm9uZSwgVGFyZ2V0VHlwZUFpclBsYXksIFRhcmdldFR5cGVUVk91dCB9
OwogCkBAIC03Niw2ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEV4dGVybmFsUGxheWJh
Y2tUYXJnZXRUeXBlIGV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgU3RyaW5nIGV4dGVybmFsUGxheWJhY2tMb2NhbGl6ZWREZXZpY2VOYW1lKCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNdXRlZCgpIGNvbnN0ID0gMDsKIH07CiAK
IGNsYXNzIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsQ2xpZW50IHsKQEAgLTk0LDYgKzk2LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsZWdpYmxlTWVkaWFTZWxlY3Rpb25JbmRleENoYW5n
ZWQodWludDY0X3QpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBleHRlcm5hbFBsYXliYWNrQ2hhbmdl
ZChib29sIC8qIGVuYWJsZWQgKi8sIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBs
YXliYWNrVGFyZ2V0VHlwZSwgY29uc3QgU3RyaW5nJiAvKiBsb2NhbGl6ZWREZXZpY2VOYW1lICov
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFu
Z2VkKGJvb2wpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBtdXRlZENoYW5nZWQoYm9vbCkgeyB9CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5
YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQuaAppbmRleCA2MGYzMGFk
Mzg5NDcwMDI5Mjk0ODIwZTU2YzY1YTFiNDA4YWRjMjhjLi4xOGQxMWQ3MTVhMTVjNWE4OGY2MTc3
MWU5ZGNjZWFmNWQxZmJmNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50
LmgKQEAgLTcwLDYgKzcwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Vs
ZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkgZmluYWw7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpIGZpbmFs
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdG9nZ2xlUGljdHVyZUluUGljdHVyZSgpIGZpbmFs
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdG9nZ2xlTXV0ZWQoKSBmaW5hbDsKIAogICAgIGRv
dWJsZSBkdXJhdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBjdXJyZW50VGltZSgpIGNv
bnN0IGZpbmFsOwpAQCAtODcsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgRXh0ZXJuYWxQbGF5YmFj
a1RhcmdldFR5cGUgZXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUoKSBjb25zdCBmaW5hbDsKICAg
ICBTdHJpbmcgZXh0ZXJuYWxQbGF5YmFja0xvY2FsaXplZERldmljZU5hbWUoKSBjb25zdCBmaW5h
bDsKICAgICBib29sIHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkgY29uc3QgZmluYWw7
CisgICAgYm9vbCBpc011dGVkKCkgY29uc3QgZmluYWw7CiAKIHByb3RlY3RlZDoKICAgICBXRUJD
T1JFX0VYUE9SVCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9k
ZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5
YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQppbmRleCA1ZjliNWM0MDhkNzAzODQyN2Vk
NjZlYWE4NWY4NjFiYjNiNjIwNTE0Li5jNjYwNmYxZDBmYmFiMjA1YTdjNzgxMTRiMmI5NzQ5NTlh
MmFhOTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5
YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQpAQCAtMTY1
LDYgKzE2NSwxMiBAQCB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Ojp1
cGRhdGVGb3JFdmVudE5hbWUoY29uc3QgV1RGOjpBdG9taWNTdAogICAgIC8vIHVwZGF0ZU1lZGlh
U2VsZWN0aW9uT3B0aW9ucygpIHdpbGwgYWxzbyB1cGRhdGUgdGhlIHNlbGVjdGlvbiBpbmRpY2Vz
LgogICAgIGlmIChldmVudE5hbWUgPT0gZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50KQogICAgICAg
ICB1cGRhdGVNZWRpYVNlbGVjdGlvbkluZGljZXMoKTsKKworICAgIGlmIChhbGwKKyAgICAgICAg
fHwgZXZlbnROYW1lID09IGV2ZW50TmFtZXMoKS52b2x1bWVjaGFuZ2VFdmVudCkgeworICAgICAg
ICBmb3IgKGF1dG8gY2xpZW50IDogbV9jbGllbnRzKQorICAgICAgICAgICAgY2xpZW50LT5tdXRl
ZENoYW5nZWQoaXNNdXRlZCgpKTsKKyAgICB9CiB9CiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1v
ZGVsTWVkaWFFbGVtZW50OjphZGRDbGllbnQoV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQm
IGNsaWVudCkKIHsKQEAgLTI2OSw2ICsyNzUsMTIgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudDo6dG9nZ2xlUGljdHVyZUluUGljdHVyZSgpCiAgICAgICAgIG1fbWVk
aWFFbGVtZW50LT5lbnRlckZ1bGxzY3JlZW4oTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpOwogfQogCit2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1v
ZGVsTWVkaWFFbGVtZW50Ojp0b2dnbGVNdXRlZCgpCit7CisgICAgaWYgKG1fbWVkaWFFbGVtZW50
KQorICAgICAgICBtX21lZGlhRWxlbWVudC0+c2V0TXV0ZWQoIW1fbWVkaWFFbGVtZW50LT5tdXRl
ZCgpKTsKK30KKwogdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6dXBk
YXRlTWVkaWFTZWxlY3Rpb25PcHRpb25zKCkKIHsKICAgICBpZiAoIW1fbWVkaWFFbGVtZW50KQpA
QCAtMzMxLDYgKzM0Myw3IEBAIGNvbnN0IFZlY3RvcjxBdG9taWNTdHJpbmc+JiBXZWJQbGF5YmFj
a1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6b2JzZXJ2ZWRFdmVudE5hCiAgICAgICAgIGV2ZW50
TmFtZXMoKS50aW1ldXBkYXRlRXZlbnQsCiAgICAgICAgIGV2ZW50TmFtZXMoKS5hZGR0cmFja0V2
ZW50LAogICAgICAgICBldmVudE5hbWVzKCkucmVtb3ZldHJhY2tFdmVudCwKKyAgICAgICAgZXZl
bnROYW1lcygpLnZvbHVtZWNoYW5nZUV2ZW50LAogICAgICAgICBldmVudE5hbWVzKCkud2Via2l0
Y3VycmVudHBsYXliYWNrdGFyZ2V0aXN3aXJlbGVzc2NoYW5nZWRFdmVudCwKICAgICB9KTsKICAg
ICByZXR1cm4gbmFtZXMuZ2V0KCk7CkBAIC00ODksNiArNTAyLDExIEBAIGJvb2wgV2ViUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVk
KCkgY29uc3QKICAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQgJiYgbV9tZWRpYUVsZW1lbnQtPm1l
ZGlhU2Vzc2lvbigpLndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCptX21lZGlhRWxlbWVu
dCk7CiB9CiAKK2Jvb2wgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmlzTXV0
ZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX21lZGlhRWxlbWVudCA/IG1fbWVkaWFFbGVtZW50
LT5tdXRlZCgpIDogZmFsc2U7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQVZQbGF5ZXJDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViQVZQbGF5ZXJDb250cm9sbGVyLmgKaW5kZXggY2UyNWI1OGQ0
YWM4MWNlZDY1YjU0MDQ3MTg0YmQ3MjZmN2E1MGMwNy4uNTNlZGE0YjA0YWZhNjRiNTI5Mzg3YTgz
YmNjMWFiODE1OTdiMjJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYkFWUGxheWVyQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJBVlBsYXllckNvbnRyb2xsZXIuaApAQCAtNjksNiArNjksNyBAQCBjbGFzcyBXZWJQbGF5
YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDsKIEBwcm9wZXJ0eSBBVlBsYXllckNvbnRyb2xsZXJT
dGF0dXMgc3RhdHVzOwogQHByb3BlcnR5IChyZXRhaW4pIEFWVmFsdWVUaW1pbmcgKnRpbWluZzsK
IEBwcm9wZXJ0eSAocmV0YWluKSBOU0FycmF5ICpzZWVrYWJsZVRpbWVSYW5nZXM7CitAcHJvcGVy
dHkgKGdldHRlcj1pc011dGVkKSBCT09MIG11dGVkOwogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBC
T09MIGhhc01lZGlhU2VsZWN0aW9uT3B0aW9uczsKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wg
aGFzQXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViQVZQbGF5ZXJDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJvbGxlci5tbQppbmRleCA5MmYwYjRjNDYwM2Qw
YWNhYTNmMGM2ZTcyMjI1NjMzZDAwYjU0OTdiLi41NzdmMzEwOWY4NjExYTViN2VjZTE0NGI3OWZl
OGVjMDIwOGU0MjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
QVZQbGF5ZXJDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJBVlBsYXllckNvbnRyb2xsZXIubW0KQEAgLTQyNCw2ICs0MjQsMTUgQEAgLSAodm9pZClzZXRQ
aWN0dXJlSW5QaWN0dXJlSW50ZXJydXB0ZWQ6KEJPT0wpcGljdHVyZUluUGljdHVyZUludGVycnVw
dGVkCiAgICAgICAgICAgICBbc2VsZiBzZXRQbGF5aW5nOk5PXTsKICAgICB9CiB9CisKKy0gKHZv
aWQpdG9nZ2xlTXV0ZWQ6KGlkKXNlbmRlcgoreworICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOwor
ICAgIGlmICghc2VsZi5kZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuOworICAgIHNlbGYuZGVsZWdh
dGUtPnRvZ2dsZU11dGVkKCk7Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkFWTWVk
aWFTZWxlY3Rpb25PcHRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKaW5kZXggZTE1YTY3
ZGFkNzFjNWYxYjI1MGI4ODk5NGZjYWY4NjEwNmVkYzk2Ni4uNDE0ODM5MmRhYmYyMmFjZjdhYzgy
MTk0OGI1OTlmMWVlNzI0YzRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKQEAgLTgy
LDYgKzgyLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbGVnaWJsZU1lZGlh
U2VsZWN0aW9uT3B0aW9uc0NoYW5nZWQoY29uc3QgVmVjdG9yPE1lZGlhU2VsZWN0aW9uT3B0aW9u
PiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBleHRlcm5hbFBsYXliYWNrQ2hhbmdlZChib29sIGVuYWJsZWQsIFdlYlBs
YXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgY29uc3QgU3Ry
aW5nJiBsb2NhbGl6ZWREZXZpY2VOYW1lKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkQ2hhbmdlZChib29sKSBvdmVycmlkZTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG11dGVkQ2hhbmdlZChib29sKSBvdmVycmlkZTsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VBVktpdC5tbQppbmRleCAzY2M0ZDc3MjlmYWE5MDFkMjI3NjJiYzQ3MjdkYmU4
ZmRmNWIxZDI3Li41NzM4OWI3ZTNhYzI4MjEyMjZhNGExNGU1MzM3Mjk2MGVmMGE0NDJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViUGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tCkBAIC0yMTgsNiArMjE4LDExIEBAIHZvaWQgV2Vi
UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2Fi
bGVkQ2hhbmdlZChib29sCiAgICAgW21fcGxheWVyQ29udHJvbGxlciBzZXRBbGxvd3NFeHRlcm5h
bFBsYXliYWNrOiFkaXNhYmxlZF07CiB9CiAKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJm
YWNlQVZLaXQ6Om11dGVkQ2hhbmdlZChib29sIG11dGVkKQoreworICAgIFttX3BsYXllckNvbnRy
b2xsZXIgc2V0TXV0ZWQ6bXV0ZWRdOworfQorCiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbkludGVy
ZmFjZUFWS2l0OjppbnZhbGlkYXRlKCkKIHsKICAgICBpZiAoIW1fcGxheWJhY2tTZXNzaW9uTW9k
ZWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQppbmRleCA0OTk1MTNlMDUzNDVkYzJk
NTE5NmM0NmUxMmFiMDRjZTIzZGFjNTNlLi5mNzA2MDJhYTMwZGE5Zjk5MTg0YjE2ZWM5OWJiNWQ3
NGU5NjU2N2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KQEAgLTE2Niw2ICsx
NjYsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBleHRlcm5hbFBsYXliYWNrTG9jYWxpemVkRGV2
aWNlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgd2lyZWxlc3NWaWRlb1BsYXliYWNr
RGlzYWJsZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHRvZ2dsZVBpY3R1cmVJblBpY3R1
cmUoKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIHRvZ2dsZU11dGVkKCkgb3ZlcnJpZGU7CiAKICAg
ICAvLyBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENsaWVudAogICAgIHZvaWQgZHVyYXRpb25DaGFu
Z2VkKGRvdWJsZSkgb3ZlcnJpZGU7CkBAIC0xNzgsNiArMTc5LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGxlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxNZWRp
YVNlbGVjdGlvbk9wdGlvbj4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJy
aWRlOwogICAgIHZvaWQgZXh0ZXJuYWxQbGF5YmFja0NoYW5nZWQoYm9vbCBlbmFibGVkLCBXZWJQ
bGF5YmFja1Nlc3Npb25Nb2RlbDo6RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUsIGNvbnN0IFN0
cmluZyYgbG9jYWxpemVkRGV2aWNlTmFtZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aXJlbGVzc1Zp
ZGVvUGxheWJhY2tEaXNhYmxlZENoYW5nZWQoYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBtdXRl
ZENoYW5nZWQoYm9vbCkgb3ZlcnJpZGU7CiAKICAgICAvLyBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bAogICAgIHZvaWQgYWRkQ2xpZW50KFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50Jikgb3Zl
cnJpZGU7CkBAIC0xODksNiArMTkxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzVmlzaWJsZSgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaGFzVmlkZW8oKSBjb25zdCBvdmVycmlkZTsKICAg
ICBGbG9hdFNpemUgdmlkZW9EaW1lbnNpb25zKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBp
c011dGVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBIYXNoU2V0PFdlYlBsYXliYWNrU2Vzc2lv
bk1vZGVsQ2xpZW50Kj4gbV9wbGF5YmFja0NsaWVudHM7CiAgICAgSGFzaFNldDxXZWJWaWRlb0Z1
bGxzY3JlZW5Nb2RlbENsaWVudCo+IG1fZnVsbHNjcmVlbkNsaWVudHM7CkBAIC00NDIsNiArNDQ1
LDIwIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OndpcmVsZXNz
VmlkZW9QbGF5YmFja0Rpc2FibGVkQ2hhbmdlZChiCiAgICAgICAgIGNsaWVudC0+d2lyZWxlc3NW
aWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKGRpc2FibGVkKTsKIH0KIAordm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6bXV0ZWRDaGFuZ2VkKGJvb2wgbXV0ZWQpCit7
CisgICAgaWYgKFdlYlRocmVhZElzQ3VycmVudCgpKSB7CisgICAgICAgIFJlZlB0cjxXZWJWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICAg
ICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRo
aXMsIG11dGVkXSB7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tdXRlZENoYW5nZWQobXV0
ZWQpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvciAoYXV0
byYgY2xpZW50IDogbV9wbGF5YmFja0NsaWVudHMpCisgICAgICAgIGNsaWVudC0+bXV0ZWRDaGFu
Z2VkKG11dGVkKTsKK30KKwogI3ByYWdtYSBtYXJrIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsCiAK
IHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmFkZENsaWVudChXZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCYgY2xpZW50KQpAQCAtNTIxLDYgKzUzOCwxMiBAQCBi
b29sIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpoYXNWaWRlbygpIGNvbnN0
CiAgICAgcmV0dXJuIG1fZnVsbHNjcmVlbk1vZGVsID8gbV9mdWxsc2NyZWVuTW9kZWwtPmhhc1Zp
ZGVvKCkgOiBmYWxzZTsKIH0KIAorYm9vbCBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29u
dGV4dDo6aXNNdXRlZCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CisgICAg
cmV0dXJuIG1fcGxheWJhY2tNb2RlbCA/IG1fcGxheWJhY2tNb2RlbC0+aXNNdXRlZCgpIDogZmFs
c2U7Cit9CisKIEZsb2F0U2l6ZSBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6
dmlkZW9EaW1lbnNpb25zKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKQEAg
LTU3MSw2ICs1OTQsMTYgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4
dDo6dG9nZ2xlUGxheVN0YXRlKCkKICAgICB9KTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyQ29udGV4dDo6dG9nZ2xlTXV0ZWQoKQoreworICAgIEFTU0VSVChpc1VJVGhy
ZWFkKCkpOworICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dD4g
cHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICBXZWJUaHJlYWRSdW4oW3Byb3RlY3RlZFRoaXMsIHRo
aXNdIHsKKyAgICAgICAgaWYgKG1fcGxheWJhY2tNb2RlbCkKKyAgICAgICAgICAgIG1fcGxheWJh
Y2tNb2RlbC0+dG9nZ2xlTXV0ZWQoKTsKKyAgICB9KTsKK30KKwogdm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQ29udGV4dDo6YmVnaW5TY3J1YmJpbmcoKQogewogICAgIEFTU0VSVChp
c1VJVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5oCmluZGV4IGE4ZTliYWIz
ZWZmMDdmYmVlMjFjOTY5N2RiZDg5YzE5NzRiZTI4NmEuLjkwNDFjZWMyMGFjZjUyZWMxZjhiOGNl
ZDk4N2Q5ODE1NDlhNWI4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5LmgKQEAgLTgz
LDYgKzgzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uSW5k
ZXgodWludDY0X3Qgc2VsZWN0ZWRJbmRleCk7CiAgICAgdm9pZCBzZXRFeHRlcm5hbFBsYXliYWNr
KGJvb2wsIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlw
ZSwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNh
YmxlZChib29sKTsKKyAgICB2b2lkIHNldE11dGVkKGJvb2wpOwogCiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ7CkBAIC0xMDcsNiArMTA4
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3Qp
IGZpbmFsOwogICAgIHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90KSBmaW5h
bDsKICAgICB2b2lkIHRvZ2dsZVBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbDsKKyAgICB2b2lkIHRv
Z2dsZU11dGVkKCkgZmluYWw7CiAKICAgICBkb3VibGUgcGxheWJhY2tTdGFydGVkVGltZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fcGxheWJhY2tTdGFydGVkVGltZTsgfQogICAgIGRvdWJsZSBk
dXJhdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZHVyYXRpb247IH0KQEAgLTEyNSw2ICsx
MjcsNyBAQCBwcml2YXRlOgogICAgIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBs
YXliYWNrVGFyZ2V0VHlwZSBleHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fZXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGU7IH0KICAgICBTdHJpbmcgZXh0
ZXJuYWxQbGF5YmFja0xvY2FsaXplZERldmljZU5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2V4dGVybmFsUGxheWJhY2tMb2NhbGl6ZWREZXZpY2VOYW1lOyB9CiAgICAgYm9vbCB3aXJlbGVz
c1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fd2lyZWxlc3NW
aWRlb1BsYXliYWNrRGlzYWJsZWQ7IH0KKyAgICBib29sIGlzTXV0ZWQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX211dGVkOyB9CiAKICAgICBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkq
IG1fbWFuYWdlcjsKICAgICB1aW50NjRfdCBtX2NvbnRleHRJZDsKQEAgLTE0Nyw2ICsxNTAsNyBA
QCBwcml2YXRlOgogICAgIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNr
VGFyZ2V0VHlwZSBtX2V4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlIHsgV2ViUGxheWJhY2tTZXNz
aW9uTW9kZWw6OlRhcmdldFR5cGVOb25lIH07CiAgICAgU3RyaW5nIG1fZXh0ZXJuYWxQbGF5YmFj
a0xvY2FsaXplZERldmljZU5hbWU7CiAgICAgYm9vbCBtX3dpcmVsZXNzVmlkZW9QbGF5YmFja0Rp
c2FibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogfTsKIAogY2xh
c3MgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8V2Vi
UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5PiwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciB7CkBAIC0xOTIsNiArMTk2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFBsYXliYWNrU3Rh
cnRlZFRpbWUodWludDY0X3QgY29udGV4dElkLCBkb3VibGUgcGxheWJhY2tTdGFydGVkVGltZSk7
CiAgICAgdm9pZCBzZXRSYXRlKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBpc1BsYXlpbmcsIGRv
dWJsZSByYXRlKTsKICAgICB2b2lkIGhhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNwb25zZSh1
aW50NjRfdCwgU3RyaW5nKSBjb25zdDsKKyAgICB2b2lkIHNldE11dGVkKHVpbnQ2NF90IGNvbnRl
eHRJZCwgYm9vbCBtdXRlZCk7CiAKICAgICAvLyBNZXNzYWdlcyB0byBXZWJQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyCiAgICAgdm9pZCBwbGF5KHVpbnQ2NF90IGNvbnRleHRJZCk7CkBAIC0yMDcsNiAr
MjEyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0
X3QgY29udGV4dElkLCB1aW50NjRfdCBpbmRleCk7CiAgICAgdm9pZCBzZWxlY3RMZWdpYmxlTWVk
aWFPcHRpb24odWludDY0X3QgY29udGV4dElkLCB1aW50NjRfdCBpbmRleCk7CiAgICAgdm9pZCB0
b2dnbGVQaWN0dXJlSW5QaWN0dXJlKHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCB0b2dn
bGVNdXRlZCh1aW50NjRfdCBjb250ZXh0SWQpOwogCiAgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7
CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgTW9kZWxJbnRlcmZhY2VUdXBsZT4gbV9jb250ZXh0TWFw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNr
U2Vzc2lvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
YmMyZDM0ZmE2MzUzYzY1MmI0ODNlZGQxZWJmYjE1NDUyODU1YzI5My4uOWExMjk4Nzc4MTJkNDFl
MTY4Mzk3MWQ1ZWZlMGQxMWVhZTYyZjhmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNiw2ICszNiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBs
YXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eSB7CiAgICAgU2V0RHVyYXRpb24odWludDY0X3QgY29u
dGV4dElkLCBkb3VibGUgZHVyYXRpb24pCiAgICAgU2V0UGxheWJhY2tTdGFydGVkVGltZSh1aW50
NjRfdCBjb250ZXh0SWQsIGRvdWJsZSBwbGF5YmFja1N0YXJ0ZWRUaW1lKQogICAgIFNldFJhdGUo
dWludDY0X3QgY29udGV4dElkLCBib29sIGlzUGxheWluZywgZG91YmxlIHJhdGUpCisgICAgU2V0
TXV0ZWQodWludDY0X3QgY29udGV4dElkLCBib29sIG11dGVkKTsKICAgICBTZXRVcFBsYXliYWNr
Q29udHJvbHNNYW5hZ2VyV2l0aElEKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBDbGVhclBsYXli
YWNrQ29udHJvbHNNYW5hZ2VyKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubW0KaW5k
ZXggZGZmZGM2M2ZhYzMwZjg5ZDFjYWExNDhhYjA4MjI5YzAyZWZlNWRhMS4uOTAyNDBmM2ZmOTk0
NmVjODJkMmQyZWFmNWM5NTlhY2Q3MzRlM2EwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclBy
b3h5Lm1tCkBAIC0xMzUsNiArMTM1LDEyIEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxD
b250ZXh0Ojp0b2dnbGVQaWN0dXJlSW5QaWN0dXJlKCkKICAgICAgICAgbV9tYW5hZ2VyLT50b2dn
bGVQaWN0dXJlSW5QaWN0dXJlKG1fY29udGV4dElkKTsKIH0KIAordm9pZCBXZWJQbGF5YmFja1Nl
c3Npb25Nb2RlbENvbnRleHQ6OnRvZ2dsZU11dGVkKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQor
ICAgICAgICBtX21hbmFnZXItPnRvZ2dsZU11dGVkKG1fY29udGV4dElkKTsKK30KKwogdm9pZCBX
ZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OnNldFBsYXliYWNrU3RhcnRlZFRpbWUoZG91
YmxlIHBsYXliYWNrU3RhcnRlZFRpbWUpCiB7CiAgICAgbV9wbGF5YmFja1N0YXJ0ZWRUaW1lID0g
cGxheWJhY2tTdGFydGVkVGltZTsKQEAgLTIzOCw2ICsyNDQsMTMgQEAgdm9pZCBXZWJQbGF5YmFj
a1Nlc3Npb25Nb2RlbENvbnRleHQ6OnNldFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKGJv
b2wgd2lyZWwKICAgICAgICAgY2xpZW50LT53aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZENo
YW5nZWQod2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQpOwogfQogCit2b2lkIFdlYlBsYXli
YWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3sKKyAgICBtX211
dGVkID0gbXV0ZWQ7CisgICAgZm9yIChhdXRvKiBjbGllbnQgOiBtX2NsaWVudHMpCisgICAgICAg
IGNsaWVudC0+bXV0ZWRDaGFuZ2VkKG11dGVkKTsKK30KKwogI3ByYWdtYSBtYXJrIC0gV2ViUGxh
eWJhY2tTZXNzaW9uTWFuYWdlclByb3h5CiAKIFJlZlB0cjxXZWJQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyUHJveHk+IFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYlBhZ2VQ
cm94eSYgcGFnZSkKQEAgLTQxNCw2ICs0MjcsMTEgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyUHJveHk6OnNldFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKHVpbnQ2NF90IGMK
ICAgICBlbnN1cmVNb2RlbChjb250ZXh0SWQpLnNldFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2Fi
bGVkKGRpc2FibGVkKTsKIH0KIAordm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6
OnNldE11dGVkKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBtdXRlZCkKK3sKKyAgICBlbnN1cmVN
b2RlbChjb250ZXh0SWQpLnNldE11dGVkKG11dGVkKTsKK30KKwogdm9pZCBXZWJQbGF5YmFja1Nl
c3Npb25NYW5hZ2VyUHJveHk6OnNldER1cmF0aW9uKHVpbnQ2NF90IGNvbnRleHRJZCwgZG91Ymxl
IGR1cmF0aW9uKQogewogICAgIGVuc3VyZU1vZGVsKGNvbnRleHRJZCkuc2V0RHVyYXRpb24oZHVy
YXRpb24pOwpAQCAtNTA5LDYgKzUyNywxMSBAQCB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXJQcm94eTo6dG9nZ2xlUGljdHVyZUluUGljdHVyZSh1aW50NjRfdCBjb250ZXh0SWQpCiAgICAg
bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpUb2dnbGVQ
aWN0dXJlSW5QaWN0dXJlKGNvbnRleHRJZCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCit2b2lk
IFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6dG9nZ2xlTXV0ZWQodWludDY0X3QgY29u
dGV4dElkKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGxheWJhY2tTZXNzaW9u
TWFuYWdlcjo6VG9nZ2xlTXV0ZWQoY29udGV4dElkKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisK
IHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpyZXF1ZXN0Q29udHJvbGxlZEVs
ZW1lbnRJRCgpCiB7CiAgICAgaWYgKG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vz
c2lvbk1hbmFnZXIuaAppbmRleCA3MTg1OGUxZWNiNTcxM2JlMDU4ZTczMTIxYmUwYjZlZWE1OTIx
OTkwLi5hZjNjYTcyOTcwZTU5ZDFkM2FiOWU3YjdjNjE1MjI1YjQ2ODExMWE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vz
c2lvbk1hbmFnZXIuaApAQCAtODcsNiArODcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbGVnaWJs
ZU1lZGlhU2VsZWN0aW9uSW5kZXhDaGFuZ2VkKHVpbnQ2NF90KSBmaW5hbDsKICAgICB2b2lkIGV4
dGVybmFsUGxheWJhY2tDaGFuZ2VkKGJvb2wgZW5hYmxlZCwgV2ViQ29yZTo6V2ViUGxheWJhY2tT
ZXNzaW9uTW9kZWw6OkV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlLCBjb25zdCBTdHJpbmcmIGxv
Y2FsaXplZERldmljZU5hbWUpIGZpbmFsOwogICAgIHZvaWQgd2lyZWxlc3NWaWRlb1BsYXliYWNr
RGlzYWJsZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOworICAgIHZvaWQgbXV0ZWRDaGFuZ2VkKGJvb2wp
IGZpbmFsOwogCiAgICAgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQ29udGV4dChXZWJQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyJiwgdWludDY0X3QgY29udGV4dElkKTsKIApAQCAtMTM1LDYgKzEz
Niw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGxlZ2libGVNZWRpYVNlbGVjdGlvbkluZGV4Q2hh
bmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpOwogICAgIHZv
aWQgZXh0ZXJuYWxQbGF5YmFja0NoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBib29sIGVuYWJs
ZWQsIFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFy
Z2V0VHlwZSwgU3RyaW5nIGxvY2FsaXplZERldmljZU5hbWUpOwogICAgIHZvaWQgd2lyZWxlc3NW
aWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCk7Cisg
ICAgdm9pZCBtdXRlZENoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBib29sKTsKIAogICAgIC8v
IE1lc3NhZ2VzIGZyb20gV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5CiAgICAgdm9pZCBw
bGF5KHVpbnQ2NF90IGNvbnRleHRJZCk7CkBAIC0xNTEsNiArMTUzLDcgQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGNvbnRleHRJZCwgdWlu
dDY0X3QgaW5kZXgpOwogICAgIHZvaWQgaGFuZGxlQ29udHJvbGxlZEVsZW1lbnRJRFJlcXVlc3Qo
dWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIHRvZ2dsZVBpY3R1cmVJblBpY3R1cmUodWlu
dDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIHRvZ2dsZU11dGVkKHVpbnQ2NF90IGNvbnRleHRJ
ZCk7CiAKICAgICBXZWJQYWdlKiBtX3BhZ2U7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50KiwgdWludDY0X3Q+IG1fbWVkaWFFbGVtZW50czsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNz
aW9uTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBhZmVkYWNiY2Y5ZmEwNmViOWJkZWY0ZWNjYmZk
ZTI5YjhkZmJlMWMzLi40MjkxZWFhZGMwYWVhOWNiZDk2NzRlNjBkMzg1MjQ5YjYxZjdkNTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vz
c2lvbk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zNyw1ICszNyw2
IEBAIG1lc3NhZ2VzIC0+IFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIgewogICAgIFNlbGVjdExl
Z2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQ2NF90IGluZGV4KQogICAg
IEhhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXF1ZXN0KHVpbnQ2NF90IGNvbnRleHRJZCkKICAg
ICBUb2dnbGVQaWN0dXJlSW5QaWN0dXJlKHVpbnQ2NF90IGNvbnRleHRJZCkKKyAgICBUb2dnbGVN
dXRlZCh1aW50NjRfdCBjb250ZXh0SWQpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5t
bQppbmRleCBjOTYxMjA3MjgzMzZmNTM3MzZlMzE3ODU3MzU0NDNjNThkMDhjZjBmLi4yOGM3ZWU5
YzgwNzliODhmMmNjNmJjYTliMjlhNWM0YWRlMTY0MzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0KKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
Lm1tCkBAIC0xNDksNiArMTQ5LDEyIEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
Q29udGV4dDo6d2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKGJvCiAgICAgICAg
IG1fbWFuYWdlci0+d2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKG1fY29udGV4
dElkLCBkaXNhYmxlZCk7CiB9CiAKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQ29u
dGV4dDo6bXV0ZWRDaGFuZ2VkKGJvb2wgbXV0ZWQpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAg
ICAgICAgbV9tYW5hZ2VyLT5tdXRlZENoYW5nZWQobV9jb250ZXh0SWQsIG11dGVkKTsKK30KKwog
I3ByYWdtYSBtYXJrIC0gV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcgogCiBSZWY8V2ViUGxheWJh
Y2tTZXNzaW9uTWFuYWdlcj4gV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6Y3JlYXRlKFdlYlBh
Z2UmIHBhZ2UpCkBAIC0zNTgsNiArMzY0LDExIEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFu
YWdlcjo6d2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKHVpbnQ2NF90IGNvCiAg
ICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6
OlNldFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKGNvbnRleHRJZCwgZGlzYWJsZWQpKTsK
IH0KIAordm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjptdXRlZENoYW5nZWQodWludDY0
X3QgY29udGV4dElkLCBib29sIG11dGVkKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpTZXRNdXRlZChjb250ZXh0SWQsIG11dGVk
KSk7Cit9CisKICNwcmFnbWEgbWFyayBNZXNzYWdlcyBmcm9tIFdlYlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXJQcm94eToKIAogdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpwbGF5KHVpbnQ2
NF90IGNvbnRleHRJZCkKQEAgLTQ0NSw2ICs0NTYsMTIgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyOjp0b2dnbGVQaWN0dXJlSW5QaWN0dXJlKHVpbnQ2NF90IGNvbnRleHRJZCkKICAg
ICBlbnN1cmVNb2RlbChjb250ZXh0SWQpLnRvZ2dsZVBpY3R1cmVJblBpY3R1cmUoKTsKIH0KIAor
dm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjp0b2dnbGVNdXRlZCh1aW50NjRfdCBjb250
ZXh0SWQpCit7CisgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9yKFByb2Nlc3NpbmdV
c2VyR2VzdHVyZSk7CisgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS50b2dnbGVNdXRlZCgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykgfHwg
KFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309102</attachid>
            <date>2017-05-04 14:18:34 -0700</date>
            <delta_ts>2017-05-04 16:18:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171592-20170504141834.patch</filename>
            <type>text/plain</type>
            <size>23839</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzgyM2Y4ZDc0MGJmZmJi
M2IxNDA2YWFiMDg2OGI3YzI4NGE0MGEwNy4uNzE1MThiYjU2MDY2NTE1ZDg1OTc4ZWQ5YWE5MWNk
ZjcwMDA0NjVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE3LTA1LTAzICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgbXV0ZWQgdG8gV2Vi
UGxheWJhY2tTZXNzaW9uTW9kZWwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzE1OTIKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMzE4MTQwNzQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBiZWhhdmlv
ciBjaGFuZ2UuIFRoaXMganVzdCBhZGRzIHRoZSBhYmlsaXR5IGZvciBVSSB0byBtdXRlLgorCisg
ICAgICAgICogcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWwuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVsQ2xpZW50OjptdXRlZENoYW5nZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9k
ZWxNZWRpYUVsZW1lbnQubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJQbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudDo6dXBkYXRlRm9yRXZlbnROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Ojp0b2dnbGVNdXRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6b2JzZXJ2
ZWRFdmVudE5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVs
TWVkaWFFbGVtZW50Ojppc011dGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViQVZQbGF5
ZXJDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJv
bGxlci5tbToKKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIHRvZ2dsZU11dGVkOl0p
OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktp
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VB
VktpdC5tbToKKyAgICAgICAgKFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFW
S2l0OjptdXRlZENoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQVZLaXQubW06CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQ29udGV4dDo6bXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXJDb250ZXh0Ojppc011dGVkKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXJDb250ZXh0Ojp0b2dnbGVNdXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vc3Bp
L2lvcy9NZWRpYVBsYXllclNQSS5oOgorCiAyMDE3LTA1LTAyICBBbmRyZXcgR29sZCAgPGFnb2xk
QGFwcGxlLmNvbT4KIAogICAgICAgICBUeXBvIGluIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmlj
ZU1hbmFnZXIubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0NjdhNjRhMTZiMjU3YmMzYzE0M2IzOGU1N2I2NGRj
YjM0YTQyOGFkLi4yOTQyMmVkZTY0OWU2ODAxZmI4Mjk2Njg4YTM1OTIzYjg2MTIyYmE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTctMDUtMDMgIEplcmVteSBKb25lcyAgPGplcmVt
eWpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBtdXRlIHRvIFdlYlBsYXliYWNrU2Vzc2lvbk1v
ZGVsLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcx
NTkyCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzMxODE0MDc0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGx1bWIgdGhyb3VnaCBtdXRlZC4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXliYWNrU2Vzc2lvbk1v
ZGVsQ29udGV4dDo6dG9nZ2xlTXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF5YmFja1Nl
c3Npb25Nb2RlbENvbnRleHQ6OnNldE11dGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxheWJh
Y2tTZXNzaW9uTWFuYWdlclByb3h5OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBs
YXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6dG9nZ2xlTXV0ZWQpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUNvbnRleHQ6Om11dGVkQ2hh
bmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6Om11dGVk
Q2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OnRv
Z2dsZU11dGVkKToKKwogMjAxNy0wNS0wMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KIAogICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBwb3NpdGlvbjpmaXhlZCBlbGVt
ZW50IGlzIGluIHRoZSB3cm9uZyBwbGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsLmgKaW5kZXggNzg4NzQzMGRhYjlm
OWU2MDQ2ZjM5NjM4NGFkNjhmNGY0YWU1NDgyNS4uNjhmYWI2MmUyZDc4M2M5N2I4NzhjOWQ3MTBj
ZTI4MzJjOGVjZWRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
V2ViUGxheWJhY2tTZXNzaW9uTW9kZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbC5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3Qg
aW5kZXgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlUGljdHVyZUluUGljdHVyZSgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlTXV0ZWQoKSA9IDA7CiAKICAgICBlbnVtIEV4dGVy
bmFsUGxheWJhY2tUYXJnZXRUeXBlIHsgVGFyZ2V0VHlwZU5vbmUsIFRhcmdldFR5cGVBaXJQbGF5
LCBUYXJnZXRUeXBlVFZPdXQgfTsKIApAQCAtNzYsNiArNzcsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSBleHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlw
ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBleHRlcm5hbFBsYXliYWNrTG9jYWxp
emVkRGV2aWNlTmFtZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgd2lyZWxlc3NWaWRl
b1BsYXliYWNrRGlzYWJsZWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzTXV0ZWQo
KSBjb25zdCA9IDA7CiB9OwogCiBjbGFzcyBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENsaWVudCB7
CkBAIC05NCw2ICs5Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbGVnaWJsZU1lZGlh
U2VsZWN0aW9uSW5kZXhDaGFuZ2VkKHVpbnQ2NF90KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZXh0
ZXJuYWxQbGF5YmFja0NoYW5nZWQoYm9vbCAvKiBlbmFibGVkICovLCBXZWJQbGF5YmFja1Nlc3Np
b25Nb2RlbDo6RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUsIGNvbnN0IFN0cmluZyYgLyogbG9j
YWxpemVkRGV2aWNlTmFtZSAqLykgeyB9CiAgICAgdmlydHVhbCB2b2lkIHdpcmVsZXNzVmlkZW9Q
bGF5YmFja0Rpc2FibGVkQ2hhbmdlZChib29sKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbXV0ZWRD
aGFuZ2VkKGJvb2wpIHsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVt
ZW50LmgKaW5kZXggNjBmMzBhZDM4OTQ3MDAyOTI5NDgyMGU1NmM2NWExYjQwOGFkYzI4Yy4uMThk
MTFkNzE1YTE1YzVhODhmNjE3NzFlOWRjY2VhZjVkMWZiZjYxMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Np
b25Nb2RlbE1lZGlhRWxlbWVudC5oCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpIGZp
bmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVp
bnQ2NF90IGluZGV4KSBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRvZ2dsZVBpY3R1
cmVJblBpY3R1cmUoKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRvZ2dsZU11dGVk
KCkgZmluYWw7CiAKICAgICBkb3VibGUgZHVyYXRpb24oKSBjb25zdCBmaW5hbDsKICAgICBkb3Vi
bGUgY3VycmVudFRpbWUoKSBjb25zdCBmaW5hbDsKQEAgLTg3LDYgKzg4LDcgQEAgcHVibGljOgog
ICAgIEV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlIGV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBl
KCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIGV4dGVybmFsUGxheWJhY2tMb2NhbGl6ZWREZXZp
Y2VOYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNh
YmxlZCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNNdXRlZCgpIGNvbnN0IGZpbmFsOwogCiBw
cm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRp
YUVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1dl
YlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KaW5kZXgg
NWY5YjVjNDA4ZDcwMzg0MjdlZDY2ZWFhODVmODYxYmIzYjYyMDUxNC4uYzY2MDZmMWQwZmJhYjIw
NWE3Yzc4MTE0YjJiOTc0OTU5YTJhYTk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRp
YUVsZW1lbnQubW0KQEAgLTE2NSw2ICsxNjUsMTIgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudDo6dXBkYXRlRm9yRXZlbnROYW1lKGNvbnN0IFdURjo6QXRvbWljU3QK
ICAgICAvLyB1cGRhdGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMoKSB3aWxsIGFsc28gdXBkYXRlIHRo
ZSBzZWxlY3Rpb24gaW5kaWNlcy4KICAgICBpZiAoZXZlbnROYW1lID09IGV2ZW50TmFtZXMoKS5j
aGFuZ2VFdmVudCkKICAgICAgICAgdXBkYXRlTWVkaWFTZWxlY3Rpb25JbmRpY2VzKCk7CisKKyAg
ICBpZiAoYWxsCisgICAgICAgIHx8IGV2ZW50TmFtZSA9PSBldmVudE5hbWVzKCkudm9sdW1lY2hh
bmdlRXZlbnQpIHsKKyAgICAgICAgZm9yIChhdXRvIGNsaWVudCA6IG1fY2xpZW50cykKKyAgICAg
ICAgICAgIGNsaWVudC0+bXV0ZWRDaGFuZ2VkKGlzTXV0ZWQoKSk7CisgICAgfQogfQogdm9pZCBX
ZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6YWRkQ2xpZW50KFdlYlBsYXliYWNr
U2Vzc2lvbk1vZGVsQ2xpZW50JiBjbGllbnQpCiB7CkBAIC0yNjksNiArMjc1LDEyIEBAIHZvaWQg
V2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnRvZ2dsZVBpY3R1cmVJblBpY3R1
cmUoKQogICAgICAgICBtX21lZGlhRWxlbWVudC0+ZW50ZXJGdWxsc2NyZWVuKE1lZGlhUGxheWVy
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKTsKIH0KIAordm9pZCBX
ZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6dG9nZ2xlTXV0ZWQoKQoreworICAg
IGlmIChtX21lZGlhRWxlbWVudCkKKyAgICAgICAgbV9tZWRpYUVsZW1lbnQtPnNldE11dGVkKCFt
X21lZGlhRWxlbWVudC0+bXV0ZWQoKSk7Cit9CisKIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9k
ZWxNZWRpYUVsZW1lbnQ6OnVwZGF0ZU1lZGlhU2VsZWN0aW9uT3B0aW9ucygpCiB7CiAgICAgaWYg
KCFtX21lZGlhRWxlbWVudCkKQEAgLTMzMSw2ICszNDMsNyBAQCBjb25zdCBWZWN0b3I8QXRvbWlj
U3RyaW5nPiYgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6Om9ic2VydmVkRXZl
bnROYQogICAgICAgICBldmVudE5hbWVzKCkudGltZXVwZGF0ZUV2ZW50LAogICAgICAgICBldmVu
dE5hbWVzKCkuYWRkdHJhY2tFdmVudCwKICAgICAgICAgZXZlbnROYW1lcygpLnJlbW92ZXRyYWNr
RXZlbnQsCisgICAgICAgIGV2ZW50TmFtZXMoKS52b2x1bWVjaGFuZ2VFdmVudCwKICAgICAgICAg
ZXZlbnROYW1lcygpLndlYmtpdGN1cnJlbnRwbGF5YmFja3RhcmdldGlzd2lyZWxlc3NjaGFuZ2Vk
RXZlbnQsCiAgICAgfSk7CiAgICAgcmV0dXJuIG5hbWVzLmdldCgpOwpAQCAtNDg5LDYgKzUwMiwx
MSBAQCBib29sIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Ojp3aXJlbGVzc1Zp
ZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbWVkaWFFbGVtZW50ICYm
IG1fbWVkaWFFbGVtZW50LT5tZWRpYVNlc3Npb24oKS53aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNh
YmxlZCgqbV9tZWRpYUVsZW1lbnQpOwogfQogCitib29sIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVs
TWVkaWFFbGVtZW50Ojppc011dGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tZWRpYUVsZW1l
bnQgPyBtX21lZGlhRWxlbWVudC0+bXV0ZWQoKSA6IGZhbHNlOworfQorCiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJvbGxl
ci5oCmluZGV4IGNlMjViNThkNGFjODFjZWQ2NWI1NDA0NzE4NGJkNzI2ZjdhNTBjMDcuLjUzZWRh
NGIwNGFmYTY0YjUyOTM4N2E4M2JjYzFhYjgxNTk3YjIyZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJBVlBsYXllckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQVZQbGF5ZXJDb250cm9sbGVyLmgKQEAgLTY5LDYgKzY5
LDcgQEAgY2xhc3MgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ7CiBAcHJvcGVydHkg
QVZQbGF5ZXJDb250cm9sbGVyU3RhdHVzIHN0YXR1czsKIEBwcm9wZXJ0eSAocmV0YWluKSBBVlZh
bHVlVGltaW5nICp0aW1pbmc7CiBAcHJvcGVydHkgKHJldGFpbikgTlNBcnJheSAqc2Vla2FibGVU
aW1lUmFuZ2VzOworQHByb3BlcnR5IChnZXR0ZXI9aXNNdXRlZCkgQk9PTCBtdXRlZDsKIAogQHBy
b3BlcnR5IChyZWFkb25seSkgQk9PTCBoYXNNZWRpYVNlbGVjdGlvbk9wdGlvbnM7CiBAcHJvcGVy
dHkgKHJlYWRvbmx5KSBCT09MIGhhc0F1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJvbGxlci5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJBVlBsYXllckNvbnRyb2xsZXIubW0K
aW5kZXggOTJmMGI0YzQ2MDNkMGFjYWEzZjBjNmU3MjIyNTYzM2QwMGI1NDk3Yi4uNTc3ZjMxMDlm
ODYxMWE1YjdlY2UxNDRiNzlmZThlYzAyMDhlNDI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViQVZQbGF5ZXJDb250cm9sbGVyLm1tCkBAIC00MjQsNiArNDI0
LDE1IEBAIC0gKHZvaWQpc2V0UGljdHVyZUluUGljdHVyZUludGVycnVwdGVkOihCT09MKXBpY3R1
cmVJblBpY3R1cmVJbnRlcnJ1cHRlZAogICAgICAgICAgICAgW3NlbGYgc2V0UGxheWluZzpOT107
CiAgICAgfQogfQorCistICh2b2lkKXRvZ2dsZU11dGVkOihpZClzZW5kZXIKK3sKKyAgICBVTlVT
RURfUEFSQU0oc2VuZGVyKTsKKyAgICBpZiAoIXNlbGYuZGVsZWdhdGUpCisgICAgICAgIHJldHVy
bjsKKyAgICBzZWxmLmRlbGVnYXRlLT50b2dnbGVNdXRlZCgpOworfQorCiBAZW5kCiAKIEBpbXBs
ZW1lbnRhdGlvbiBXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VB
VktpdC5oCmluZGV4IGUxNWE2N2RhZDcxYzVmMWIyNTBiODg5OTRmY2FmODYxMDZlZGM5NjYuLjQx
NDgzOTJkYWJmMjJhY2Y3YWM4MjE5NDhiNTk5ZjFlZTcyNGM0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VBVktpdC5oCkBAIC04Miw2ICs4Miw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGxlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxN
ZWRpYVNlbGVjdGlvbk9wdGlvbj4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92
ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXh0ZXJuYWxQbGF5YmFja0NoYW5nZWQo
Ym9vbCBlbmFibGVkLCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbDo6RXh0ZXJuYWxQbGF5YmFja1Rh
cmdldFR5cGUsIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGV2aWNlTmFtZSkgb3ZlcnJpZGU7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZENoYW5n
ZWQoYm9vbCkgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtdXRlZENoYW5nZWQo
Ym9vbCkgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggM2NjNGQ3NzI5ZmFh
OTAxZDIyNzYyYmM0NzI3ZGJlOGZkZjViMWQyNy4uNTczODliN2UzYWMyODIxMjI2YTRhMTRlNTMz
NzI5NjBlZjBhNDQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbQpAQCAtMjE4LDYg
KzIxOCwxMSBAQCB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Ojp3aXJlbGVz
c1ZpZGVvUGxheWJhY2tEaXNhYmxlZENoYW5nZWQoYm9vbAogICAgIFttX3BsYXllckNvbnRyb2xs
ZXIgc2V0QWxsb3dzRXh0ZXJuYWxQbGF5YmFjazohZGlzYWJsZWRdOwogfQogCit2b2lkIFdlYlBs
YXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjptdXRlZENoYW5nZWQoYm9vbCBtdXRlZCkKK3sK
KyAgICBbbV9wbGF5ZXJDb250cm9sbGVyIHNldE11dGVkOm11dGVkXTsKK30KKwogdm9pZCBXZWJQ
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6aW52YWxpZGF0ZSgpCiB7CiAgICAgaWYgKCFt
X3BsYXliYWNrU2Vzc2lvbk1vZGVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KaW5k
ZXggNDk5NTEzZTA1MzQ1ZGMyZDUxOTZjNDZlMTJhYjA0Y2UyM2RhYzUzZS4uZjcwNjAyYWEzMGRh
OWY5OTE4NGIxNmVjOTliYjVkNzRlOTY1NjdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFW
S2l0Lm1tCkBAIC0xNjYsNiArMTY2LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgZXh0ZXJuYWxQ
bGF5YmFja0xvY2FsaXplZERldmljZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHdp
cmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCB0
b2dnbGVQaWN0dXJlSW5QaWN0dXJlKCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCB0b2dnbGVNdXRl
ZCgpIG92ZXJyaWRlOwogCiAgICAgLy8gV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQKICAg
ICB2b2lkIGR1cmF0aW9uQ2hhbmdlZChkb3VibGUpIG92ZXJyaWRlOwpAQCAtMTc4LDYgKzE3OSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zQ2hhbmdl
ZChjb25zdCBWZWN0b3I8TWVkaWFTZWxlY3Rpb25PcHRpb24+JiBvcHRpb25zLCB1aW50NjRfdCBz
ZWxlY3RlZEluZGV4KSBvdmVycmlkZTsKICAgICB2b2lkIGV4dGVybmFsUGxheWJhY2tDaGFuZ2Vk
KGJvb2wgZW5hYmxlZCwgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWw6OkV4dGVybmFsUGxheWJhY2tU
YXJnZXRUeXBlLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERldmljZU5hbWUpIG92ZXJyaWRlOwog
ICAgIHZvaWQgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKGJvb2wpIG92ZXJy
aWRlOworICAgIHZvaWQgbXV0ZWRDaGFuZ2VkKGJvb2wpIG92ZXJyaWRlOwogCiAgICAgLy8gV2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWwKICAgICB2b2lkIGFkZENsaWVudChXZWJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbENsaWVudCYpIG92ZXJyaWRlOwpAQCAtMTg5LDYgKzE5MSw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBpc1Zpc2libGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGhhc1ZpZGVvKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgRmxvYXRTaXplIHZpZGVvRGltZW5zaW9ucygpIGNvbnN0IG92
ZXJyaWRlOworICAgIGJvb2wgaXNNdXRlZCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgSGFzaFNl
dDxXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENsaWVudCo+IG1fcGxheWJhY2tDbGllbnRzOwogICAg
IEhhc2hTZXQ8V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQqPiBtX2Z1bGxzY3JlZW5DbGll
bnRzOwpAQCAtNDQyLDYgKzQ0NSwyMCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJDb250ZXh0Ojp3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZENoYW5nZWQoYgogICAgICAg
ICBjbGllbnQtPndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkQ2hhbmdlZChkaXNhYmxlZCk7
CiB9CiAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6Om11dGVkQ2hh
bmdlZChib29sIG11dGVkKQoreworICAgIGlmIChXZWJUaHJlYWRJc0N1cnJlbnQoKSkgeworICAg
ICAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ+IHByb3RlY3Rl
ZFRoaXModGhpcyk7CisgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1
ZXVlKCksIFtwcm90ZWN0ZWRUaGlzLCBtdXRlZF0geworICAgICAgICAgICAgcHJvdGVjdGVkVGhp
cy0+bXV0ZWRDaGFuZ2VkKG11dGVkKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fcGxheWJhY2tDbGllbnRzKQorICAgICAg
ICBjbGllbnQtPm11dGVkQ2hhbmdlZChtdXRlZCk7Cit9CisKICNwcmFnbWEgbWFyayBXZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbAogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250
ZXh0OjphZGRDbGllbnQoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQmIGNsaWVudCkKQEAg
LTUyMSw2ICs1MzgsMTIgQEAgYm9vbCBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4
dDo6aGFzVmlkZW8oKSBjb25zdAogICAgIHJldHVybiBtX2Z1bGxzY3JlZW5Nb2RlbCA/IG1fZnVs
bHNjcmVlbk1vZGVsLT5oYXNWaWRlbygpIDogZmFsc2U7CiB9CiAKK2Jvb2wgV2ViVmlkZW9GdWxs
c2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmlzTXV0ZWQoKSBjb25zdAoreworICAgIEFTU0VSVChp
c1VJVGhyZWFkKCkpOworICAgIHJldHVybiBtX3BsYXliYWNrTW9kZWwgPyBtX3BsYXliYWNrTW9k
ZWwtPmlzTXV0ZWQoKSA6IGZhbHNlOworfQorCiBGbG9hdFNpemUgV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlckNvbnRleHQ6OnZpZGVvRGltZW5zaW9ucygpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGlzVUlUaHJlYWQoKSk7CkBAIC01NzEsNiArNTk0LDE2IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckNvbnRleHQ6OnRvZ2dsZVBsYXlTdGF0ZSgpCiAgICAgfSk7CiB9CiAKK3Zv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OnRvZ2dsZU11dGVkKCkKK3sK
KyAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKKyAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlckNvbnRleHQ+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgV2ViVGhyZWFkUnVu
KFtwcm90ZWN0ZWRUaGlzLCB0aGlzXSB7CisgICAgICAgIGlmIChtX3BsYXliYWNrTW9kZWwpCisg
ICAgICAgICAgICBtX3BsYXliYWNrTW9kZWwtPnRvZ2dsZU11dGVkKCk7CisgICAgfSk7Cit9CisK
IHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmJlZ2luU2NydWJiaW5n
KCkKIHsKICAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJv
eHkuaAppbmRleCBhOGU5YmFiM2VmZjA3ZmJlZTIxYzk2OTdkYmQ4OWMxOTc0YmUyODZhLi45MDQx
Y2VjMjBhY2Y1MmVjMWY4YjhjZWQ5ODdkOTgxNTQ5YTViOGVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXJQcm94eS5oCkBAIC04Myw2ICs4Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExlZ2li
bGVNZWRpYVNlbGVjdGlvbkluZGV4KHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpOwogICAgIHZvaWQg
c2V0RXh0ZXJuYWxQbGF5YmFjayhib29sLCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbDo6RXh0ZXJu
YWxQbGF5YmFja1RhcmdldFR5cGUsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0V2lyZWxl
c3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoYm9vbCk7CisgICAgdm9pZCBzZXRNdXRlZChib29sKTsK
IAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxDb250
ZXh0OwpAQCAtMTA3LDYgKzEwOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZWxlY3RBdWRpb01l
ZGlhT3B0aW9uKHVpbnQ2NF90KSBmaW5hbDsKICAgICB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9w
dGlvbih1aW50NjRfdCkgZmluYWw7CiAgICAgdm9pZCB0b2dnbGVQaWN0dXJlSW5QaWN0dXJlKCkg
ZmluYWw7CisgICAgdm9pZCB0b2dnbGVNdXRlZCgpIGZpbmFsOwogCiAgICAgZG91YmxlIHBsYXli
YWNrU3RhcnRlZFRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3BsYXliYWNrU3RhcnRlZFRp
bWU7IH0KICAgICBkb3VibGUgZHVyYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2R1cmF0
aW9uOyB9CkBAIC0xMjUsNiArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJQbGF5YmFja1Nlc3Np
b25Nb2RlbDo6RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUgZXh0ZXJuYWxQbGF5YmFja1Rhcmdl
dFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2V4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBl
OyB9CiAgICAgU3RyaW5nIGV4dGVybmFsUGxheWJhY2tMb2NhbGl6ZWREZXZpY2VOYW1lKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9leHRlcm5hbFBsYXliYWNrTG9jYWxpemVkRGV2aWNlTmFtZTsg
fQogICAgIGJvb2wgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3dpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkOyB9CisgICAgYm9vbCBpc011
dGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9tdXRlZDsgfQogCiAgICAgV2ViUGxheWJhY2tT
ZXNzaW9uTWFuYWdlclByb3h5KiBtX21hbmFnZXI7CiAgICAgdWludDY0X3QgbV9jb250ZXh0SWQ7
CkBAIC0xNDcsNiArMTUwLDcgQEAgcHJpdmF0ZToKICAgICBXZWJQbGF5YmFja1Nlc3Npb25Nb2Rl
bDo6RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUgbV9leHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlw
ZSB7IFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpUYXJnZXRUeXBlTm9uZSB9OwogICAgIFN0cmlu
ZyBtX2V4dGVybmFsUGxheWJhY2tMb2NhbGl6ZWREZXZpY2VOYW1lOwogICAgIGJvb2wgbV93aXJl
bGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX211dGVkIHsg
ZmFsc2UgfTsKIH07CiAKIGNsYXNzIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eSA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eT4sIHByaXZhdGUg
SVBDOjpNZXNzYWdlUmVjZWl2ZXIgewpAQCAtMTkyLDYgKzE5Niw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzZXRQbGF5YmFja1N0YXJ0ZWRUaW1lKHVpbnQ2NF90IGNvbnRleHRJZCwgZG91YmxlIHBs
YXliYWNrU3RhcnRlZFRpbWUpOwogICAgIHZvaWQgc2V0UmF0ZSh1aW50NjRfdCBjb250ZXh0SWQs
IGJvb2wgaXNQbGF5aW5nLCBkb3VibGUgcmF0ZSk7CiAgICAgdm9pZCBoYW5kbGVDb250cm9sbGVk
RWxlbWVudElEUmVzcG9uc2UodWludDY0X3QsIFN0cmluZykgY29uc3Q7CisgICAgdm9pZCBzZXRN
dXRlZCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgbXV0ZWQpOwogCiAgICAgLy8gTWVzc2FnZXMg
dG8gV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcgogICAgIHZvaWQgcGxheSh1aW50NjRfdCBjb250
ZXh0SWQpOwpAQCAtMjA3LDYgKzIxMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZWxlY3RBdWRp
b01lZGlhT3B0aW9uKHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDY0X3QgaW5kZXgpOwogICAgIHZv
aWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDY0X3Qg
aW5kZXgpOwogICAgIHZvaWQgdG9nZ2xlUGljdHVyZUluUGljdHVyZSh1aW50NjRfdCBjb250ZXh0
SWQpOworICAgIHZvaWQgdG9nZ2xlTXV0ZWQodWludDY0X3QgY29udGV4dElkKTsKIAogICAgIFdl
YlBhZ2VQcm94eSogbV9wYWdlOwogICAgIEhhc2hNYXA8dWludDY0X3QsIE1vZGVsSW50ZXJmYWNl
VHVwbGU+IG1fY29udGV4dE1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IGJjMmQzNGZhNjM1M2M2NTJiNDgzZWRkMWViZmIxNTQ1Mjg1NWMy
OTMuLjlhMTI5ODc3ODEyZDQxZTE2ODM5NzFkNWVmZTBkMTFlYWU2MmY4ZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dl
YlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzYsNiArMzYsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkgewogICAgIFNldER1
cmF0aW9uKHVpbnQ2NF90IGNvbnRleHRJZCwgZG91YmxlIGR1cmF0aW9uKQogICAgIFNldFBsYXli
YWNrU3RhcnRlZFRpbWUodWludDY0X3QgY29udGV4dElkLCBkb3VibGUgcGxheWJhY2tTdGFydGVk
VGltZSkKICAgICBTZXRSYXRlKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBpc1BsYXlpbmcsIGRv
dWJsZSByYXRlKQorICAgIFNldE11dGVkKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBtdXRlZCk7
CiAgICAgU2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlcldpdGhJRCh1aW50NjRfdCBjb250ZXh0
SWQpCiAgICAgQ2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigpCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJv
eHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNzaW9u
TWFuYWdlclByb3h5Lm1tCmluZGV4IGRmZmRjNjNmYWMzMGY4OWQxY2FhMTQ4YWIwODIyOWMwMmVm
ZTVkYTEuLjkwMjQwZjNmZjk5NDZlYzgyZDJkMmVhZjVjOTU5YWNkNzM0ZTNhMGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXli
YWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tbQpAQCAtMTM1LDYgKzEzNSwxMiBAQCB2b2lkIFdlYlBs
YXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6dG9nZ2xlUGljdHVyZUluUGljdHVyZSgpCiAgICAg
ICAgIG1fbWFuYWdlci0+dG9nZ2xlUGljdHVyZUluUGljdHVyZShtX2NvbnRleHRJZCk7CiB9CiAK
K3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0Ojp0b2dnbGVNdXRlZCgpCit7Cisg
ICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT50b2dnbGVNdXRlZChtX2NvbnRl
eHRJZCk7Cit9CisKIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OjpzZXRQbGF5
YmFja1N0YXJ0ZWRUaW1lKGRvdWJsZSBwbGF5YmFja1N0YXJ0ZWRUaW1lKQogewogICAgIG1fcGxh
eWJhY2tTdGFydGVkVGltZSA9IHBsYXliYWNrU3RhcnRlZFRpbWU7CkBAIC0yMzgsNiArMjQ0LDEz
IEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OjpzZXRXaXJlbGVzc1ZpZGVv
UGxheWJhY2tEaXNhYmxlZChib29sIHdpcmVsCiAgICAgICAgIGNsaWVudC0+d2lyZWxlc3NWaWRl
b1BsYXliYWNrRGlzYWJsZWRDaGFuZ2VkKHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKTsK
IH0KIAordm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OnNldE11dGVkKGJvb2wg
bXV0ZWQpCit7CisgICAgbV9tdXRlZCA9IG11dGVkOworICAgIGZvciAoYXV0byogY2xpZW50IDog
bV9jbGllbnRzKQorICAgICAgICBjbGllbnQtPm11dGVkQ2hhbmdlZChtdXRlZCk7Cit9CisKICNw
cmFnbWEgbWFyayAtIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eQogCiBSZWZQdHI8V2Vi
UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5PiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJv
eHk6OmNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UpCkBAIC00MTQsNiArNDI3LDExIEBAIHZvaWQg
V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tE
aXNhYmxlZCh1aW50NjRfdCBjCiAgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS5zZXRXaXJlbGVz
c1ZpZGVvUGxheWJhY2tEaXNhYmxlZChkaXNhYmxlZCk7CiB9CiAKK3ZvaWQgV2ViUGxheWJhY2tT
ZXNzaW9uTWFuYWdlclByb3h5OjpzZXRNdXRlZCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgbXV0
ZWQpCit7CisgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS5zZXRNdXRlZChtdXRlZCk7Cit9CisK
IHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpzZXREdXJhdGlvbih1aW50NjRf
dCBjb250ZXh0SWQsIGRvdWJsZSBkdXJhdGlvbikKIHsKICAgICBlbnN1cmVNb2RlbChjb250ZXh0
SWQpLnNldER1cmF0aW9uKGR1cmF0aW9uKTsKQEAgLTUwOSw2ICs1MjcsMTEgQEAgdm9pZCBXZWJQ
bGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnRvZ2dsZVBpY3R1cmVJblBpY3R1cmUodWludDY0
X3QgY29udGV4dElkKQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGxheWJhY2tTZXNz
aW9uTWFuYWdlcjo6VG9nZ2xlUGljdHVyZUluUGljdHVyZShjb250ZXh0SWQpLCBtX3BhZ2UtPnBh
Z2VJRCgpKTsKIH0KIAordm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnRvZ2ds
ZU11dGVkKHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6
OldlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OlRvZ2dsZU11dGVkKGNvbnRleHRJZCksIG1fcGFn
ZS0+cGFnZUlEKCkpOworfQorCiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6
cmVxdWVzdENvbnRyb2xsZWRFbGVtZW50SUQoKQogewogICAgIGlmIChtX2NvbnRyb2xzTWFuYWdl
ckNvbnRleHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2Ev
V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgKaW5kZXggNzE4NThlMWVjYjU3MTNiZTA1
OGU3MzEyMWJlMGI2ZWVhNTkyMTk5MC4uYWYzY2E3Mjk3MGU1OWQxZDNhYjllN2I3YzYxNTIyNWI0
NjgxMTFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
bGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgKQEAgLTg3LDYgKzg3LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGxlZ2libGVNZWRpYVNlbGVjdGlvbkluZGV4Q2hhbmdlZCh1aW50NjRfdCkg
ZmluYWw7CiAgICAgdm9pZCBleHRlcm5hbFBsYXliYWNrQ2hhbmdlZChib29sIGVuYWJsZWQsIFdl
YkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlw
ZSwgY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWREZXZpY2VOYW1lKSBmaW5hbDsKICAgICB2b2lkIHdp
cmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkQ2hhbmdlZChib29sKSBmaW5hbDsKKyAgICB2b2lk
IG11dGVkQ2hhbmdlZChib29sKSBmaW5hbDsKIAogICAgIFdlYlBsYXliYWNrU2Vzc2lvbkludGVy
ZmFjZUNvbnRleHQoV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlciYsIHVpbnQ2NF90IGNvbnRleHRJ
ZCk7CiAKQEAgLTEzNSw2ICsxMzYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBsZWdpYmxlTWVk
aWFTZWxlY3Rpb25JbmRleENoYW5nZWQodWludDY0X3QgY29udGV4dElkLCB1aW50NjRfdCBzZWxl
Y3RlZEluZGV4KTsKICAgICB2b2lkIGV4dGVybmFsUGxheWJhY2tDaGFuZ2VkKHVpbnQ2NF90IGNv
bnRleHRJZCwgYm9vbCBlbmFibGVkLCBXZWJDb3JlOjpXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbDo6
RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUsIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKTsK
ICAgICB2b2lkIHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkQ2hhbmdlZCh1aW50NjRfdCBj
b250ZXh0SWQsIGJvb2wpOworICAgIHZvaWQgbXV0ZWRDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJ
ZCwgYm9vbCk7CiAKICAgICAvLyBNZXNzYWdlcyBmcm9tIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXJQcm94eQogICAgIHZvaWQgcGxheSh1aW50NjRfdCBjb250ZXh0SWQpOwpAQCAtMTUxLDYgKzE1
Myw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50
NjRfdCBjb250ZXh0SWQsIHVpbnQ2NF90IGluZGV4KTsKICAgICB2b2lkIGhhbmRsZUNvbnRyb2xs
ZWRFbGVtZW50SURSZXF1ZXN0KHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCB0b2dnbGVQ
aWN0dXJlSW5QaWN0dXJlKHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCB0b2dnbGVNdXRl
ZCh1aW50NjRfdCBjb250ZXh0SWQpOwogCiAgICAgV2ViUGFnZSogbV9wYWdlOwogICAgIEhhc2hN
YXA8V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCosIHVpbnQ2NF90PiBtX21lZGlhRWxlbWVudHM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNr
U2Vzc2lvbk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYWZlZGFjYmNm
OWZhMDZlYjliZGVmNGVjY2JmZGUyOWI4ZGZiZTFjMy4uNDI5MWVhYWRjMGFlYTljYmQ5Njc0ZTYw
ZDM4NTI0OWI2MWY3ZDU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tZXNzYWdl
cy5pbgpAQCAtMzcsNSArMzcsNiBAQCBtZXNzYWdlcyAtPiBXZWJQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyIHsKICAgICBTZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgY29udGV4dElkLCB1
aW50NjRfdCBpbmRleCkKICAgICBIYW5kbGVDb250cm9sbGVkRWxlbWVudElEUmVxdWVzdCh1aW50
NjRfdCBjb250ZXh0SWQpCiAgICAgVG9nZ2xlUGljdHVyZUluUGljdHVyZSh1aW50NjRfdCBjb250
ZXh0SWQpCisgICAgVG9nZ2xlTXV0ZWQodWludDY0X3QgY29udGV4dElkKQogfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vz
c2lvbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXli
YWNrU2Vzc2lvbk1hbmFnZXIubW0KaW5kZXggYzk2MTIwNzI4MzM2ZjUzNzM2ZTMxNzg1NzM1NDQz
YzU4ZDA4Y2YwZi4uMjhjN2VlOWM4MDc5Yjg4ZjJjYzZiY2E5YjI5YTVjNGFkZTE2NDM0OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxh
eWJhY2tTZXNzaW9uTWFuYWdlci5tbQpAQCAtMTQ5LDYgKzE0OSwxMiBAQCB2b2lkIFdlYlBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZUNvbnRleHQ6OndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVk
Q2hhbmdlZChibwogICAgICAgICBtX21hbmFnZXItPndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2Fi
bGVkQ2hhbmdlZChtX2NvbnRleHRJZCwgZGlzYWJsZWQpOwogfQogCit2b2lkIFdlYlBsYXliYWNr
U2Vzc2lvbkludGVyZmFjZUNvbnRleHQ6Om11dGVkQ2hhbmdlZChib29sIG11dGVkKQoreworICAg
IGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+bXV0ZWRDaGFuZ2VkKG1fY29udGV4
dElkLCBtdXRlZCk7Cit9CisKICNwcmFnbWEgbWFyayAtIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXIKIAogUmVmPFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI+IFdlYlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXI6OmNyZWF0ZShXZWJQYWdlJiBwYWdlKQpAQCAtMzU4LDYgKzM2NCwxMSBAQCB2b2lkIFdl
YlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkQ2hh
bmdlZCh1aW50NjRfdCBjbwogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGxheWJhY2tT
ZXNzaW9uTWFuYWdlclByb3h5OjpTZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZChjb250
ZXh0SWQsIGRpc2FibGVkKSk7CiB9CiAKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6
bXV0ZWRDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBtdXRlZCkKK3sKKyAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6U2V0TXV0
ZWQoY29udGV4dElkLCBtdXRlZCkpOworfQorCiAjcHJhZ21hIG1hcmsgTWVzc2FnZXMgZnJvbSBX
ZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6CiAKIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9u
TWFuYWdlcjo6cGxheSh1aW50NjRfdCBjb250ZXh0SWQpCkBAIC00NDUsNiArNDU2LDEyIEBAIHZv
aWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6dG9nZ2xlUGljdHVyZUluUGljdHVyZSh1aW50
NjRfdCBjb250ZXh0SWQpCiAgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS50b2dnbGVQaWN0dXJl
SW5QaWN0dXJlKCk7CiB9CiAKK3ZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6dG9nZ2xl
TXV0ZWQodWludDY0X3QgY29udGV4dElkKQoreworICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGlu
ZGljYXRvcihQcm9jZXNzaW5nVXNlckdlc3R1cmUpOworICAgIGVuc3VyZU1vZGVsKGNvbnRleHRJ
ZCkudG9nZ2xlTXV0ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAv
LyBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>