<?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>132396</bug_id>
          
          <creation_ts>2014-04-30 12:43:46 -0700</creation_ts>
          <short_desc>Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO</short_desc>
          <delta_ts>2014-05-01 10:33:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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>
          
          <blocked>132432</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>jeremyj-wk</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kling</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1005473</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-30 12:43:46 -0700</bug_when>
    <thetext>Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005477</commentid>
    <comment_count>1</comment_count>
      <attachid>230511</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-30 12:47:50 -0700</bug_when>
    <thetext>Created attachment 230511
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005489</commentid>
    <comment_count>2</comment_count>
      <attachid>230511</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-04-30 13:20:59 -0700</bug_when>
    <thetext>Comment on attachment 230511
Patch

NLOC FTW!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005500</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-30 13:51:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/16774201&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005634</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-30 19:20:16 -0700</bug_when>
    <thetext>https://trac.webkit.org/r168079</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230511</attachid>
            <date>2014-04-30 12:47:50 -0700</date>
            <delta_ts>2014-04-30 13:20:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132396-20140430124758.patch</filename>
            <type>text/plain</type>
            <size>114790</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
Y2E4MTg1N2E5NWQyMjQ1MjUxMTE4NGJlYjdlN2NiYjE3MTA1MjM0Li4xYTdmYTc1YjhlMmE2ODM2
YjFlNDZiOGMwNGMyODNlZGJjM2M3NTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNC0wNC0zMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1JfVklERU8KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjM5NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBFTkFC
TEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTyBhbmQgcmVsYXRlZCBjb2RlLgorCisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTQtMDQtMjkgIE9s
aXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBEb24ndCBob2xkIG9uIHRv
IHBhcmFtZXRlckJpbmRpbmdOb2RlcyBmb3JldmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZmNzJkN2U0MGFmNWVhNTRkY2Mw
YmE1ZGM0NWRiNTFiNzdkZmNmN2EuLjZmZDE5NWIzMzIyMjlkMTgwOTVlYzYwN2ZjODM3ODIzMGFk
Y2MxNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTQtMDQtMzAgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEVOQUJMRV9QTFVHSU5fUFJP
WFlfRk9SX1ZJREVPCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzIzOTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1JfVklERU8gYW5kIHJlbGF0ZWQgY29k
ZS4KKworICAgICAgICAqIHd0Zi9GZWF0dXJlRGVmaW5lcy5oOgorCiAyMDE0LTA0LTI5ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dpbkNh
aXJvXSBTd2l0Y2ggdmlkZW8gZnJvbSBHU3RyZWFtZXIgdG8gTWVkaWEgRm91bmRhdGlvbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBlZmJiNTdiZTUwYmY5NGVkOWRkNmMxMjIyZjVmMGU2ZGQ0YTJiN2QzLi40NGE4
ZTM4YzYxYTA1NmU1N2RmNDBjYjI5MmI0NDRiNjA5NjFkODI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsODAgQEAKKzIwMTQtMDQtMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVtb3ZlIEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVPCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzIzOTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgRU5BQkxF
X1BMVUdJTl9QUk9YWV9GT1JfVklERU8gYW5kIHJlbGF0ZWQgY29kZS4KKworICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIFdlYkNvcmUu
ZXhwLmluOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudCk6CisgICAgICAgICog
ZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVu
dGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNSZW5kZXJlclJlcGxhY2VkRWxlbWVudCk6CisgICAg
ICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0TmVlZFdpZGdl
dFVwZGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYVNlc3Npb246OnNob3dQbGF5YmFja1RhcmdldFBp
Y2tlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFTZXNzaW9uOjpoYXNXaXJlbGVzc1Bs
YXliYWNrVGFyZ2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFTZXNzaW9uOjpzZXRI
YXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVycyk6CisgICAgICAgICogaHRtbC9I
VE1MVmlkZW9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVt
ZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVu
dDo6c2V0RGlzcGxheU1vZGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ6OnVwZGF0ZVNpemVzKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU1l
ZGlhUGxheWVyUHJveHlQbHVnaW4pOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9FbXB0eUNs
aWVudHMuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVM
b2FkZXI6OmxvYWRQbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6Omxv
YWRNZWRpYVBsYXllclByb3h5UGx1Z2luKTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvU3Vi
ZnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZUVtYmVkZGVkT2JqZWN0KToKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRWaWRlb1BsdWdp
blByb3h5RW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmlzVmlkZW9QbHVnaW5Qcm94eUVuYWJsZWQpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQ6Om1lZGlhTGF5ZXJNdXN0QmVV
cGRhdGVkT25NYWluVGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbnN0YWxsZWRNZWRpYUVuZ2lu
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZSk6CisgICAg
ICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpkZWxpdmVyTm90aWZpY2F0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6OnNl
dE1lZGlhUGxheWVyUHJveHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TnVsbE1lZGlh
UGxheWVyUHJpdmF0ZTo6c2V0Q29udHJvbHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OmRlbGl2ZXJOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OnNldE1lZGlhUGxheWVyUHJveHkpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldENvbnRyb2xzKTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlSW50ZXJmYWNlOjpkZWxpdmVyTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6c2V0TWVkaWFQbGF5ZXJQ
cm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRl
cmZhY2U6OnNldENvbnRyb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNBOjp1cGRhdGVHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6
OnVwZGF0ZUNvbnRlbnRzUmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNB
OjptZWRpYUxheWVyTXVzdEJlVXBkYXRlZE9uTWFpblRocmVhZCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckVtYmVkZGVkT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4pOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNr
aW5nOjptZWRpYUxheWVyTXVzdEJlVXBkYXRlZE9uTWFpblRocmVhZCk6IERlbGV0ZWQuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yVmlkZW8pOgorCiAyMDE0LTA0LTMw
ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzIzNjMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCA4NjljNzJmNmFmZDNjNmMwMjI1ZmJmMjQwOWM1NGUxNWMxYTFjMjVkLi4wM2UyYzRkZTg2ZGZi
MDllNmRmMTdlZGQ4YTZkZWYzMzE3NjY0NTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzkgQEAKKzIwMTQtMDQtMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVPCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzIzOTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgRU5BQkxFX1BM
VUdJTl9QUk9YWV9GT1JfVklERU8gYW5kIHJlbGF0ZWQgY29kZS4KKworICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIFBsdWdpbnMvV2Vi
UGx1Z2luQ29udGFpbmVyUHJpdmF0ZS5oOgorICAgICAgICAqIFBsdWdpbnMvV2ViUGx1Z2luQ29u
dHJvbGxlci5oOgorICAgICAgICAqIFBsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbToKKyAg
ICAgICAgKC1bV2ViUGx1Z2luQ29udHJvbGxlciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dlYlBs
dWdpbkNvbnRyb2xsZXIgcGx1Z0luc0FyZVJ1bm5pbmddKToKKyAgICAgICAgKC1bV2ViUGx1Z2lu
Q29udHJvbGxlciBzdG9wQWxsUGx1Z2luc10pOgorICAgICAgICAoLVtXZWJQbHVnaW5Db250cm9s
bGVyIHN0b3BQbHVnaW5zRm9yUGFnZUNhY2hlXSk6CisgICAgICAgICgtW1dlYlBsdWdpbkNvbnRy
b2xsZXIgcmVzdG9yZVBsdWdpbnNGcm9tQ2FjaGVdKToKKyAgICAgICAgKC1bV2ViUGx1Z2luQ29u
dHJvbGxlciBhZGRQbHVnaW46XSk6CisgICAgICAgICgtW1dlYlBsdWdpbkNvbnRyb2xsZXIgZGVz
dHJveVBsdWdpbjpdKToKKyAgICAgICAgKC1bV2ViUGx1Z2luQ29udHJvbGxlciBkZXN0cm95QWxs
UGx1Z2luc10pOgorICAgICAgICAoLVtOU1ZpZXcgaXNNZWRpYVBsdWdJblByb3h5Vmlld10pOiBE
ZWxldGVkLgorICAgICAgICAoLVtOU1ZpZXcgc2V0SXNNZWRpYVBsdWdJblByb3h5VmlldzpdKTog
RGVsZXRlZC4KKyAgICAgICAgKC1bV2ViUGx1Z2luQ29udHJvbGxlciBtZWRpYVBsdWdJblByb3h5
Vmlld0NyZWF0ZWQ6XSk6IERlbGV0ZWQuCisgICAgICAgICgrW1dlYlBsdWdpbkNvbnRyb2xsZXIg
cGx1Z2luVmlld0hpZGRlbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKG1lZGlhUHJveHlDbGllbnQp
OiBEZWxldGVkLgorICAgICAgICAoLVtXZWJQbHVnaW5Db250cm9sbGVyIF93ZWJQbHVnaW5Db250
YWluZXJTZXRNZWRpYVBsYXllclByb3h5OmZvckVsZW1lbnQ6XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dlYlBsdWdpbkNvbnRyb2xsZXIgX3dlYlBsdWdpbkNvbnRhaW5lclBvc3RNZWRpYVBsYXll
ck5vdGlmaWNhdGlvbjpmb3JFbGVtZW50Ol0pOiBEZWxldGVkLgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChwbHVnaW5WaWV3KToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hh
bmdlZDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfdmlkZW9Qcm94eVBsdWdpbkZvck1JTUVUeXBl
Ol0pOiBEZWxldGVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0ludGVybmFsLmg6CisKIDIw
MTQtMDQtMjkgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbaU9TXSAt
W1dlYkhUTUxWaWV3IHNlbGVjdGlvbkltYWdlRm9yY2luZ0JsYWNrVGV4dDpdIHJldHVybnMgYmxh
bmsgaW1hZ2Ugb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzQyYjI1ZDZlYjViMzE5ZjQ0OGMxMDVjZmQ0
OTgwM2Y1MzU4ODAxYy4uOWNhYzFlMzQ0MzI4NThhZGM5MzE1ODUzNGFiNWU2ZjVkNzYxNzYwNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTA0LTMwICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBFTkFCTEVfUExVR0lOX1BS
T1hZX0ZPUl9WSURFTworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMyMzk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAg
ICAgIAorICAgICAgICBSZW1vdmUgRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1JfVklERU8gYW5kIHJl
bGF0ZWQgY29kZS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3Jl
YXRlTWVkaWFQbGF5ZXJQcm94eVBsdWdpbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTG9hZGVyQ2xpZW50OjpoaWRlTWVkaWFQbGF5ZXJQcm94eVBsdWdpbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG93TWVkaWFQbGF5ZXJQ
cm94eVBsdWdpbik6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMp
OgorCiAyMDE0LTA0LTMwICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzIzNjMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCAwYjc0MzNjMTU5YmVhZWVhN2I4OTU3ZDgzNGI0OWY3
MWEzNmRjM2NiLi5lMmFhOTY4YjAyZjAzZmYxNWJhYzFjYWYxMTBjMjFiYmQ5YmUxODExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0xNjAsOSArMTYwLDYgQEAgRU5BQkxFX05PVElGSUNB
VElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiBFTkFCTEVfUEFHRV9WSVNJQklM
SVRZX0FQSSA9IEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJOwogRU5BQkxFX1BERktJVF9QTFVH
SU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQoUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX1BE
RktJVF9QTFVHSU5fbWFjb3N4ID0gRU5BQkxFX1BERktJVF9QTFVHSU47Ci1FTkFCTEVfUExVR0lO
X1BST1hZX0ZPUl9WSURFTyA9ICQoRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1JfVklERU9fJChQTEFU
Rk9STV9OQU1FKSk7Ci1FTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFT19pcGhvbmVvcyA9IEVO
QUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVPOwotRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1JfVklE
RU9faXBob25lc2ltdWxhdG9yID0gJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFT19pcGhv
bmVvcyk7CiBFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCA9IEVOQUJMRV9QUk9HUkVTU19FTEVNRU5U
OwogRU5BQkxFX1BST01JU0VTID0gRU5BQkxFX1BST01JU0VTOwogRU5BQkxFX1BST1hJTUlUWV9F
VkVOVFMgPSA7CkBAIC0yNDEsNCArMjM4LDQgQEAgRU5BQkxFX0ZUTF9KSVRfaXBob25lc2ltdWxh
dG9yID0gOwogCiBFTkFCTEVfTExJTlRfQ19MT09QID0gOwogCi1GRUFUVVJFX0RFRklORVMgPSAk
KEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChF
TkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElP
TlMpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVf
Q0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNT
QUdJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJF
QUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFU
SU9OKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5B
QkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVO
QUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxF
X0NTU19TSEFQRVMpICQoRU5BQkxFX0NTU19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19U
UkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCkgJChFTkFCTEVfQ1NTM19DT05ESVRJT05B
TF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVB
SykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFO
RExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1F
TlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVO
VCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05T
VFJVQ1RPUikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVE
SUFfVjIpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElP
TikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5BQkxFX0hJ
R0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJWSUNFX0NP
TlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9Q
T1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVU
SU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOU1BFQ1RPUikgJChFTkFCTEVfSU9TX0FJUlBMQVkp
ICQoRU5BQkxFX0lPU19URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9S
X1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZ
X1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTEVU
VEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFC
TEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxF
X01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1M
KSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5U
X1VUSUxTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlf
QVBJKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJ
REVPKSAkKEVOQUJMRV9QUk9HUkVTU19FTEVNRU5UKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFC
TEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJM
RV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFTU9U
RV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1ND
UklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NQRUVDSF9T
WU5USEVTSVMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1VCUElYRUxfTEFZT1VU
KSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RF
TEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVO
QUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9V
Q0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8p
ICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9W
SUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAk
KEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJ
TUlORykgJChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVO
QUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9MTElOVF9DX0xPT1ApICQoRkVB
VFVSRV9ERUZJTkVTXyQoUExBVEZPUk1fTkFNRSkpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFC
TEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxF
X0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAk
KEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZB
U19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5H
KSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAk
KEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikg
JChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9D
U1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVf
Q1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1Nf
U0hBUEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNG
T1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVM
RVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQo
RU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIp
ICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAk
KEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQo
RU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNU
T1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1Yy
KSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9G
VUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQo
RU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdIX0RQ
SV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9M
UykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9J
Tl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9J
TkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lO
UFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1IpICQoRU5BQkxFX0lPU19BSVJQTEFZKSAkKEVO
QUJMRV9JT1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVG
SVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5E
T1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xFVFRFUlBS
RVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01F
RElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJ
QV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChF
TkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElM
UykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkg
JChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFC
TEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19T
VUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElB
X1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJT
KSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5B
QkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZH
X0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVN
UExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9F
VkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9B
TEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNV
RV9WQUxVRSkgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQo
RU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tF
VFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAkKEVOQUJM
RV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVf
TExJTlRfQ19MT09QKSAkKEZFQVRVUkVfREVGSU5FU18kKFBMQVRGT1JNX05BTUUpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9G
ZWF0dXJlRGVmaW5lcy5oCmluZGV4IGI3NjYzNDZjMGE4NGFkNGE4OWY0YTVlYWVmZWRhYTNmOTA2
OGQ3MjEuLjAxYjdkN2I5NjYzNmMxZDRmMmU2ZTM5MzQxZmE5MjA4MzFjNjZmODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKKysrIGIvU291cmNlL1dURi93dGYv
RmVhdHVyZURlZmluZXMuaApAQCAtNjQ4LDEwICs2NDgsNiBAQAogI2RlZmluZSBFTkFCTEVfUExV
R0lOX1BBQ0tBR0VfU0lNUExFX0hBU0ggMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVf
UExVR0lOX1BST1hZX0ZPUl9WSURFTykKLSNkZWZpbmUgRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1Jf
VklERU8gMAotI2VuZGlmCi0KICNpZiAhZGVmaW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKQogI2Rl
ZmluZSBFTkFCTEVfUE9JTlRFUl9MT0NLIDAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2Vi
Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCAwYjc0MzNj
MTU5YmVhZWVhN2I4OTU3ZDgzNGI0OWY3MWEzNmRjM2NiLi5lMmFhOTY4YjAyZjAzZmYxNWJhYzFj
YWYxMTBjMjFiYmQ5YmUxODExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMTYwLDkgKzE2MCw2IEBAIEVOQUJM
RV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogRU5BQkxFX1BB
R0VfVklTSUJJTElUWV9BUEkgPSBFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSTsKIEVOQUJMRV9Q
REZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFBMQVRGT1JNX05BTUUpKTsK
IEVOQUJMRV9QREZLSVRfUExVR0lOX21hY29zeCA9IEVOQUJMRV9QREZLSVRfUExVR0lOOwotRU5B
QkxFX1BMVUdJTl9QUk9YWV9GT1JfVklERU8gPSAkKEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJ
REVPXyQoUExBVEZPUk1fTkFNRSkpOwotRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1JfVklERU9faXBo
b25lb3MgPSBFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTzsKLUVOQUJMRV9QTFVHSU5fUFJP
WFlfRk9SX1ZJREVPX2lwaG9uZXNpbXVsYXRvciA9ICQoRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1Jf
VklERU9faXBob25lb3MpOwogRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQgPSBFTkFCTEVfUFJPR1JF
U1NfRUxFTUVOVDsKIEVOQUJMRV9QUk9NSVNFUyA9IEVOQUJMRV9QUk9NSVNFUzsKIEVOQUJMRV9Q
Uk9YSU1JVFlfRVZFTlRTID0gOwpAQCAtMjQxLDQgKzIzOCw0IEBAIEVOQUJMRV9GVExfSklUX2lw
aG9uZXNpbXVsYXRvciA9IDsKIAogRU5BQkxFX0xMSU5UX0NfTE9PUCA9IDsKIAotRkVBVFVSRV9E
RUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVf
QVZGX0NBUFRJT05TKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcp
ICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NI
QU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNP
UkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJ
Q0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxU
RVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRB
VElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05T
KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVO
QUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NTUzNf
Q09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhU
X0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01f
U0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRB
TElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRB
SUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9F
VkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5D
UllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GT05UX0xPQURfRVZF
TlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVf
R0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAk
KEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVf
U0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5Q
VVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9D
QUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1IpICQoRU5BQkxFX0lP
U19BSVJQTEFZKSAkKEVOQUJMRV9JT1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9MRUdBQ1lf
Q1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5B
QkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQo
RU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRI
TUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNF
KSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVO
QUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FU
T1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9W
SVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BS
T1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlT
RVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElT
VCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVO
QUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAk
KEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJM
RV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJ
WEVMX0xBWU9VVCkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAk
KEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxF
TUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQo
RU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5B
QkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkg
JChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dF
Ql9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5B
QkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAkKEVOQUJMRV9YSFJfVElN
RU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfTExJTlRfQ19M
T09QKSAkKEZFQVRVUkVfREVGSU5FU18kKFBMQVRGT1JNX05BTUUpKTsKK0ZFQVRVUkVfREVGSU5F
UyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFT
KSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FWRl9D
QVBUSU9OUykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVO
QUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVM
X01FU1NBR0lORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElP
Tl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FE
QVBUQVRJT04pICQoRU5BQkxFX0NTU19FWENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykg
JChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04p
ICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChF
TkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTX1NUSUNLWV9QT1NJVElPTikgJChFTkFCTEVf
Q1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBSRUZJWEVEKSAkKEVOQUJMRV9DU1MzX0NPTkRJ
VElPTkFMX1JVTEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5F
X0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVN
RV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1Rf
RUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19F
TEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTTRfRVZFTlRT
X0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRF
RF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykg
JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFC
TEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NFUlZJ
Q0VfQ09OVFJPTFMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURf
REFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQ
RUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xP
Ul9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9JT1NfQUlS
UExBWSkgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfTEVHQUNZX0NTU19W
RU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9M
RUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJM
RV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAk
KEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChF
TkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVf
TUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NP
TlRFTlRfVVRJTFMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJ
TElUWV9BUEkpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BST0dSRVNTX0VMRU1F
TlQpICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJM
RV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FO
SU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xV
VElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfU0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFS
RURfV09SS0VSUykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1FMX0RBVEFC
QVNFKSAkKEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQo
RU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQo
RU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFC
TEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VT
RVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5B
QkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxF
X1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxF
X1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9O
UykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQp
ICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1F
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDZkNDhjMmVlMWYyOGU5N2I5MzRkMWI5OGZhNmUz
OTc5YjI1NDY3MTEuLjA4YjM2OTY4MjcxMTRkMzZiNDUxNzc1NDgxZGM0ZjVkMzNjMmUyNzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zMTkzLDE0ICszMTkzLDYgQEAgX19aTjdXZWJDb3JlMTNJ
ZGVudGlmaWVyUmVwN2lzVmFsaWRFUFMwXwogX19aTjdXZWJDb3JlMTZTY3JpcHRDb250cm9sbGVy
MTZjcmVhdGVSb290T2JqZWN0RVB2CiAjZW5kaWYKIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlf
Rk9SX1ZJREVPKQotX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50MTlkZWxpdmVyTm90aWZp
Y2F0aW9uRTMyTWVkaWFQbGF5ZXJQcm94eU5vdGlmaWNhdGlvblR5cGUKLV9fWk43V2ViQ29yZTE2
SFRNTE1lZGlhRWxlbWVudDE5c2V0TWVkaWFQbGF5ZXJQcm94eUVQMTlXZWJNZWRpYVBsYXllclBy
b3h5Ci1fX1pON1dlYkNvcmU4U2V0dGluZ3MyNGdWaWRlb1BsdWdpblByb3h5RW5hYmxlZEUKLV9f
Wk43V2ViQ29yZThTZXR0aW5nczI2c2V0VmlkZW9QbHVnaW5Qcm94eUVuYWJsZWRFYgotX19aTjdX
ZWJDb3JlOUhUTUxOYW1lczhhdWRpb1RhZ0UKLSNlbmRpZgotCiAjaWYgVVNFKFBST1RFQ1RJT05f
U1BBQ0VfQVVUSF9DQUxMQkFDSykKIF9fWk43V2ViQ29yZTNtYWNFUktOU18xNVByb3RlY3Rpb25T
cGFjZUUKIF9fWk5LN1dlYkNvcmUxNVByb3RlY3Rpb25TcGFjZTIwYXV0aGVudGljYXRpb25TY2hl
bWVFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDliY2FlMzQ5ZGZhMDVk
N2IwNDNkN2M2N2UyNmEwM2UyYjFmMWY1MjkuLmE1YmU5NmYzOTY3YmIzMDkyNTBkMjRkNzk5MzFj
Y2M0NjRkMDdhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE1Nywx
OCArMTU3LDEwIEBACiAjaW5jbHVkZSAiRGFzaGJvYXJkUmVnaW9uLmgiCiAjZW5kaWYKIAotI2lm
IEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotI2luY2x1ZGUgIkhUTUxBdWRpb0VsZW1l
bnQuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogI2luY2x1ZGUgIldlYlZU
VEVsZW1lbnQuaCIKICNlbmRpZgogCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8p
Ci0jaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKQEAgLTY0NCwxMiArNjM2LDYgQEAg
Ym9vbCBTdHlsZVJlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoU3R5bGVkRWxlbWVu
dCogZWxlbWVudCkgY29uc3QKICAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShpZnJhbWVUYWcp
IHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoZnJhbWVUYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUo
ZW1iZWRUYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50LT5o
YXNUYWdOYW1lKGFwcGxldFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShjYW52YXNUYWcpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURF
TykKLSAgICAvLyBXaXRoIHByb3h5aW5nLCB0aGUgbWVkaWEgZWxlbWVudHMgYXJlIGJhY2tlZCBi
eSBhIFJlbmRlckVtYmVkZGVkT2JqZWN0LgotICAgIGlmICgoZWxlbWVudC0+aGFzVGFnTmFtZSh2
aWRlb1RhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShhdWRpb1RhZykpICYmIHRvSFRNTE1lZGlh
RWxlbWVudChlbGVtZW50KS0+c2hvdWxkVXNlVmlkZW9QbHVnaW5Qcm94eSgpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQogICAgIGlmIChlbGVtZW50SGFzRGlyZWN0aW9uQXV0byhl
bGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmNwcAppbmRleCBlYTI3MDdiMzM1ZTJjZmJkNjhjMjBiZWJkMGY0ZDkxNTRi
YWFlMGExLi5kYWUzZmRjNTE3ZDg2MGE5ZTE5OTAwOTZhZDQ4YWEyN2Q3NzQ3N2M5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAgLTMzMSwyMCArMzMxLDE0IEBA
IFBhc3NSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChj
b25zdCBTdHJpbmcmIHR5cGUsIEZyYW1lCiAgICAgICAgIHJldHVybiBJbWFnZURvY3VtZW50Ojpj
cmVhdGUoKmZyYW1lLCB1cmwpOwogCiAjaWYgRU5BQkxFKFZJREVPKQotICAgIAotI2lmIEVOQUJM
RShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5zZXR0
aW5ncygpLmlzVmlkZW9QbHVnaW5Qcm94eUVuYWJsZWQoKSkKLSNlbmRpZgotICAgIHsKLSAgICAg
ICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB0eXBlIGNhbiBiZSBwbGF5ZWQgYnkgb3VyIE1lZGlh
UGxheWVyLCBpZiBzbyBjcmVhdGUgYSBNZWRpYURvY3VtZW50Ci0gICAgICAgIC8vIEtleSBzeXN0
ZW0gaXMgbm90IGFwcGxpY2FibGUgaGVyZS4KLSAgICAgICAgRE9NSW1wbGVtZW50YXRpb25TdXBw
b3J0c1R5cGVDbGllbnQgY2xpZW50KGZyYW1lICYmIGZyYW1lLT5zZXR0aW5ncygpLm5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzKCksIHVybC5ob3N0KCkpOwotICAgICAgICBNZWRpYUVuZ2luZVN1cHBv
cnRQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7Ci0gICAgICAgIHBhcmFtZXRlcnMudHlwZSA9IHR5cGU7
Ci0gICAgICAgIHBhcmFtZXRlcnMudXJsID0gdXJsOwotICAgICAgICBpZiAoTWVkaWFQbGF5ZXI6
OnN1cHBvcnRzVHlwZShwYXJhbWV0ZXJzLCAmY2xpZW50KSkKLSAgICAgICAgICAgIHJldHVybiBN
ZWRpYURvY3VtZW50OjpjcmVhdGUoZnJhbWUsIHVybCk7Ci0gICAgfQorICAgIC8vIENoZWNrIHRv
IHNlZSBpZiB0aGUgdHlwZSBjYW4gYmUgcGxheWVkIGJ5IG91ciBNZWRpYVBsYXllciwgaWYgc28g
Y3JlYXRlIGEgTWVkaWFEb2N1bWVudAorICAgIC8vIEtleSBzeXN0ZW0gaXMgbm90IGFwcGxpY2Fi
bGUgaGVyZS4KKyAgICBET01JbXBsZW1lbnRhdGlvblN1cHBvcnRzVHlwZUNsaWVudCBjbGllbnQo
ZnJhbWUgJiYgZnJhbWUtPnNldHRpbmdzKCkubmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSwgdXJs
Lmhvc3QoKSk7CisgICAgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyBwYXJhbWV0ZXJzOwor
ICAgIHBhcmFtZXRlcnMudHlwZSA9IHR5cGU7CisgICAgcGFyYW1ldGVycy51cmwgPSB1cmw7Cisg
ICAgaWYgKE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUocGFyYW1ldGVycywgJmNsaWVudCkpCisg
ICAgICAgIHJldHVybiBNZWRpYURvY3VtZW50OjpjcmVhdGUoZnJhbWUsIHVybCk7CiAjZW5kaWYK
IAogICAgIC8vIEV2ZXJ5dGhpbmcgZWxzZSBleGNlcHQgdGV4dC9wbGFpbiBjYW4gYmUgb3ZlcnJp
ZGRlbiBieSBwbHVnaW5zLiBJbiBwYXJ0aWN1bGFyLCBBZG9iZSBTVkcgVmlld2VyIHNob3VsZCBi
ZSB1c2VkIGZvciBTVkcsIGlmIGluc3RhbGxlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0
ZXJhdG9yLmNwcAppbmRleCBhNTE0M2RlZjE5OWI5NWVlNDI2Y2JkMDEyMGU5ZmZjMjYwZjQyMTJm
Li43OWU0MjI1ZDE5ZTczMjA3ZDc0Y2IxYzE5ZTUzNTMwM2RjNTk5MGI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCkBAIC0yNDksMjEgKzI0OSw4IEBAIGJvb2wgaXNS
ZW5kZXJlclJlcGxhY2VkRWxlbWVudChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIGlmICgh
cmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSNpZiBFTkFCTEUoUExVR0lO
X1BST1hZX0ZPUl9WSURFTykKLSAgICBpZiAocmVuZGVyZXItPmlzSW1hZ2UoKSB8fCByZW5kZXJl
ci0+aXNNZWRpYSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAocmVuZGVyZXItPmlz
V2lkZ2V0KCkpIHsKLSAgICAgICAgaWYgKHJlbmRlcmVyLT5ub2RlKCkgJiYgcmVuZGVyZXItPm5v
ZGUoKS0+aXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0g
dG9FbGVtZW50KHJlbmRlcmVyLT5ub2RlKCkpOwotICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmhh
c1RhZ05hbWUodmlkZW9UYWcpIHx8ICFlbGVtZW50LT5oYXNUYWdOYW1lKGF1ZGlvVGFnKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNjg5Mzc5
Mz4uCi0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotI2Vsc2UKICAgICBp
ZiAocmVuZGVyZXItPmlzSW1hZ2UoKSB8fCByZW5kZXJlci0+aXNXaWRnZXQoKSB8fCByZW5kZXJl
ci0+aXNNZWRpYSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgogCiAgICAgaWYgKHJl
bmRlcmVyLT5ub2RlKCkgJiYgcmVuZGVyZXItPm5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpKSB7CiAg
ICAgICAgIEVsZW1lbnQmIGVsZW1lbnQgPSB0b0VsZW1lbnQoKnJlbmRlcmVyLT5ub2RlKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggOWJkNGM0ZWU5MTdi
M2QyYTAxMjU1M2Y0ZDM0NzljMDU5NTNjZGQwMS4uMDdiMjAyYTJiNDFlNDdiODA5YmJiMzZmYzAx
ZjYwZDM4MmUzN2MyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CkBAIC04MywxMiArODMsNiBAQAogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKLSNp
bmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgotI2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVy
LmgiCi0jaW5jbHVkZSAiV2lkZ2V0LmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShWSURFT19UUkFD
SykKICNpbmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgogI2luY2x1ZGUgIkhUTUxUcmFja0VsZW1l
bnQuaCIKQEAgLTI1NSwxMSArMjQ5LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiBIVE1MTWVkaWFF
bGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCi0jaWYgRU5BQkxFKFBMVUdJ
Tl9QUk9YWV9GT1JfVklERU8pCi0gICAgOiBIVE1MRnJhbWVPd25lckVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpCi0jZWxzZQogICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0j
ZW5kaWYKICAgICAsIEFjdGl2ZURPTU9iamVjdCgmZG9jdW1lbnQpCiAgICAgLCBtX2xvYWRUaW1l
cih0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6bG9hZFRpbWVyRmlyZWQpCiAgICAgLCBtX3Byb2dy
ZXNzRXZlbnRUaW1lcih0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6cHJvZ3Jlc3NFdmVudFRpbWVy
RmlyZWQpCkBAIC0yODMsOSArMjczLDYgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICNpZiBQ
TEFURk9STShJT1MpCiAgICAgLCBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVkaWFQbGF5ZXI6
OlZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCkKICNlbmRpZgotI2lmIEVOQUJMRShQTFVHSU5fUFJP
WFlfRk9SX1ZJREVPKQotICAgICwgbV9wcm94eVdpZGdldCgwKQotI2VuZGlmCiAgICAgLCBtX3By
ZWxvYWQoTWVkaWFQbGF5ZXI6OkF1dG8pCiAgICAgLCBtX2Rpc3BsYXlNb2RlKFVua25vd24pCiAg
ICAgLCBtX3Byb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKDApCkBAIC0zMTgsOSArMzA1LDYg
QEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1faXNGdWxsc2NyZWVuKGZhbHNlKQog
ICAgICwgbV9jbG9zZWRDYXB0aW9uc1Zpc2libGUoZmFsc2UpCiAgICAgLCBtX3dlYmtpdExlZ2Fj
eUNsb3NlZENhcHRpb25PdmVycmlkZShmYWxzZSkKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZP
Ul9WSURFTykKLSAgICAsIG1fbmVlZFdpZGdldFVwZGF0ZShmYWxzZSkKLSNlbmRpZgogICAgICwg
bV9jb21wbGV0ZWx5TG9hZGVkKGZhbHNlKQogICAgICwgbV9oYXZlUHJlcGFyZWRUb1BsYXkoZmFs
c2UpCiAgICAgLCBtX3BhcnNpbmdJblByb2dyZXNzKGNyZWF0ZWRCeVBhcnNlcikKQEAgLTY1NSwx
MyArNjM5LDYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4o
KQogewogICAgIEhUTUxFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKICAgICBtX3Bh
cnNpbmdJblByb2dyZXNzID0gZmFsc2U7Ci0KLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9W
SURFTykKLSAgICBpZiAoc2hvdWxkVXNlVmlkZW9QbHVnaW5Qcm94eSgpKSB7Ci0gICAgICAgIGRv
Y3VtZW50KCkudXBkYXRlU3R5bGVJZk5lZWRlZCgpOwotICAgICAgICBjcmVhdGVNZWRpYVBsYXll
clByb3h5KCk7Ci0gICAgfQotI2VuZGlmCiAgICAgCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQog
ICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJraXRW
aWRlb1RyYWNrRW5hYmxlZCgpKQpAQCAtNjc0LDI4ICs2NTEsMTEgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKQogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogewotI2lmIEVOQUJM
RShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIGlmIChzaG91bGRVc2VWaWRlb1BsdWdpblBy
b3h5KCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCiAgICAgcmV0dXJuIGNvbnRyb2xz
KCkgJiYgSFRNTEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCiBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlf
Rk9SX1ZJREVPKQotICAgIGlmIChzaG91bGRVc2VWaWRlb1BsdWdpblByb3h5KCkpIHsKLSAgICAg
ICAgLy8gU2V0dXAgdGhlIHJlbmRlcmVyIGlmIHdlIGFscmVhZHkgaGF2ZSBhIHByb3h5IHdpZGdl
dC4KLSAgICAgICAgYXV0byBtZWRpYVJlbmRlcmVyID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRW1i
ZWRkZWRPYmplY3Q+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKLSAgICAgICAgaWYgKG1fcHJv
eHlXaWRnZXQpIHsKLSAgICAgICAgICAgIG1lZGlhUmVuZGVyZXItPnNldFdpZGdldChtX3Byb3h5
V2lkZ2V0KTsKLQotICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJh
bWUoKSkKLSAgICAgICAgICAgICAgICBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuc2hvd01lZGlh
UGxheWVyUHJveHlQbHVnaW4obV9wcm94eVdpZGdldC5nZXQoKSk7Ci0gICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bW92ZShtZWRpYVJlbmRlcmVyKTsKLSAgICB9Ci0jZW5kaWYKICAgICBy
ZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWVkaWE+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUp
KTsKIH0KIApAQCAtNzcyLDIzICs3MzIsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1v
dmVkRnJvbShDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6d2lsbEF0dGFjaFJlbmRlcmVycygpCiB7CiAgICAgQVNTRVJUKCFyZW5kZXJlcigpKTsK
LQotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIGlmIChzaG91bGRVc2VW
aWRlb1BsdWdpblByb3h5KCkpCi0gICAgICAgIG1fbmVlZFdpZGdldFVwZGF0ZSA9IHRydWU7Ci0j
ZW5kaWYKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKQog
ewogICAgIGlmIChyZW5kZXJlcigpKQogICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxl
bWVudCgpOwotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIGVsc2UgaWYg
KG1fcHJveHlXaWRnZXQpIHsKLSAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCku
ZnJhbWUoKSkKLSAgICAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5oaWRlTWVkaWFQ
bGF5ZXJQcm94eVBsdWdpbihtX3Byb3h5V2lkZ2V0LmdldCgpKTsKLSAgICB9Ci0jZW5kaWYKIH0K
IAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkaWRSZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlKQpA
QCAtODAyLDExICs3NTEsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRGVsYXll
ZEFjdGlvbihEZWxheWVkQWN0aW9uVHlwZSBhY3Rpb25UeXBlKQogICAgIExPRyhNZWRpYSwgIkhU
TUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlTG9hZCIpOwogCiAgICAgaWYgKChhY3Rpb25UeXBlICYg
TG9hZE1lZGlhUmVzb3VyY2UpICYmICEobV9wZW5kaW5nQWN0aW9uRmxhZ3MgJiBMb2FkTWVkaWFS
ZXNvdXJjZSkpIHsKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKLSAgICAgICAg
aWYgKHNob3VsZFVzZVZpZGVvUGx1Z2luUHJveHkoKSkKLSAgICAgICAgICAgIGNyZWF0ZU1lZGlh
UGxheWVyUHJveHkoKTsKLSNlbmRpZgotCiAgICAgICAgIHByZXBhcmVGb3JMb2FkKCk7CiAgICAg
ICAgIHNldEZsYWdzKG1fcGVuZGluZ0FjdGlvbkZsYWdzLCBMb2FkTWVkaWFSZXNvdXJjZSk7CiAg
ICAgfQpAQCAtOTgxLDE0ICs5MjUsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnByZXBhcmVG
b3JMb2FkKCkKICAgICBjbG9zZU1lZGlhU291cmNlKCk7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShQ
TFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIGlmIChzaG91bGRVc2VWaWRlb1BsdWdpblByb3h5
KCkpIHsKLSAgICAgICAgaWYgKG1fcGxheWVyKQotICAgICAgICAgICAgbV9wbGF5ZXItPmNhbmNl
bExvYWQoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY3JlYXRlTWVkaWFQbGF5ZXJQcm94
eSgpOwotICAgIH0gZWxzZQotI2VuZGlmCiAgICAgY3JlYXRlTWVkaWFQbGF5ZXIoKTsKIAogICAg
IC8vIDQgLSBJZiB0aGUgbWVkaWEgZWxlbWVudCdzIG5ldHdvcmtTdGF0ZSBpcyBub3Qgc2V0IHRv
IE5FVFdPUktfRU1QVFksIHRoZW4gcnVuIHRoZXNlIHN1YnN0ZXBzCkBAIC0xMTk1LDExICsxMTMx
LDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkTmV4dFNvdXJjZUNoaWxkKCkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQot
ICAgIGlmICghc2hvdWxkVXNlVmlkZW9QbHVnaW5Qcm94eSgpKQotI2VuZGlmCi0gICAgICAgIC8v
IFJlY3JlYXRlIHRoZSBtZWRpYSBwbGF5ZXIgZm9yIHRoZSBuZXcgdXJsCi0gICAgICAgIGNyZWF0
ZU1lZGlhUGxheWVyKCk7CisgICAgLy8gUmVjcmVhdGUgdGhlIG1lZGlhIHBsYXllciBmb3IgdGhl
IG5ldyB1cmwKKyAgICBjcmVhdGVNZWRpYVBsYXllcigpOwogCiAgICAgbV9sb2FkU3RhdGUgPSBM
b2FkaW5nRnJvbVNvdXJjZUVsZW1lbnQ7CiAgICAgbG9hZFJlc291cmNlKG1lZGlhVVJMLCBjb250
ZW50VHlwZSwga2V5U3lzdGVtKTsKQEAgLTQ0NDksMTYgKzQzODIsNyBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnVwZGF0ZVBsYXlTdGF0ZSgpCiAgICAgYm9vbCBzaG91bGRCZVBsYXlpbmcgPSBw
b3RlbnRpYWxseVBsYXlpbmcoKTsKICAgICBib29sIHBsYXllclBhdXNlZCA9IG1fcGxheWVyLT5w
YXVzZWQoKTsKIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIGlmIChz
aG91bGRVc2VWaWRlb1BsdWdpblByb3h5KCkpIHsKLSAgICAgICAgaWYgKHNob3VsZEJlUGxheWlu
ZyAmJiAhbV9yZXF1ZXN0aW5nUGxheSAmJiAhbV9wbGF5ZXItPnJlYWR5Rm9yUGxheWJhY2soKSkK
LSAgICAgICAgICAgIHNob3VsZEJlUGxheWluZyA9IGZhbHNlOwotICAgICAgICBlbHNlIGlmICgh
c2hvdWxkQmVQbGF5aW5nICYmIG1fcmVxdWVzdGluZ1BsYXkgJiYgbV9wbGF5ZXItPnJlYWR5Rm9y
UGxheWJhY2soKSkKLSAgICAgICAgICAgIHNob3VsZEJlUGxheWluZyA9IHRydWU7Ci0gICAgfQot
I2VuZGlmCi0KLSAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5U3Rh
dGUgLSBzaG91bGRCZVBsYXlpbmcgPSAlcywgcGxheWVyUGF1c2VkID0gJXMiLCAKKyAgICBMT0co
TWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5U3RhdGUgLSBzaG91bGRCZVBsYXlp
bmcgPSAlcywgcGxheWVyUGF1c2VkID0gJXMiLAogICAgICAgICBib29sU3RyaW5nKHNob3VsZEJl
UGxheWluZyksIGJvb2xTdHJpbmcocGxheWVyUGF1c2VkKSk7CiAKICAgICBpZiAoc2hvdWxkQmVQ
bGF5aW5nKSB7CkBAIC00NTk5LDkgKzQ1MjMsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNs
ZWFyTWVkaWFQbGF5ZXIoaW50IGZsYWdzKQogICAgIGNsb3NlTWVkaWFTb3VyY2UoKTsKICNlbmRp
ZgogCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgaWYgKCFzaG91bGRV
c2VWaWRlb1BsdWdpblByb3h5KCkpCi0jZW5kaWYKICAgICBtX3BsYXllci5jbGVhcigpOwogCiAg
ICAgc3RvcFBlcmlvZGljVGltZXJzKCk7CkBAIC00NzI0LDI3ICs0NjQ1LDEyIEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6dmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCgpCiAKIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiB7Ci0jaWYgRU5BQkxF
KFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgaWYgKHNob3VsZFVzZVZpZGVvUGx1Z2luUHJv
eHkoKSkgewotICAgICAgICBhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKLSAgICAg
ICAgaWYgKCFyZW5kZXJlciB8fCAhcmVuZGVyZXItPmlzV2lkZ2V0KCkpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgaWYgKFdpZGdldCogd2lkZ2V0ID0gdG9SZW5kZXJXaWRnZXQocmVu
ZGVyZXIpLT53aWRnZXQoKSkKLSAgICAgICAgICAgIHdpZGdldC0+aGFuZGxlRXZlbnQoZXZlbnQp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCiAgICAgSFRNTEVsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogfQogCiAjaWYgIVBMQVRGT1JNKElPUykKIGJvb2wgSFRN
TE1lZGlhRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKQogewotI2lmIEVO
QUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIGlmIChzaG91bGRVc2VWaWRlb1BsdWdp
blByb3h5KCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCiAgICAgcmV0dXJuIEhUTUxF
bGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpOwogfQogI2VuZGlmIC8vICFQ
TEFURk9STShJT1MpCkBAIC00NzYyLDE5MCArNDY2OCw2IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qIHJl
cHJlCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaWYgRU5BQkxFKFBMVUdJ
Tl9QUk9YWV9GT1JfVklERU8pCi0KLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW5zdXJlTWVkaWFQ
bGF5ZXIoKQotewotICAgIGlmICghbV9wbGF5ZXIpCi0gICAgICAgIGNyZWF0ZU1lZGlhUGxheWVy
KCk7Ci19Ci0KLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGVsaXZlck5vdGlmaWNhdGlvbihNZWRp
YVBsYXllclByb3h5Tm90aWZpY2F0aW9uVHlwZSBub3RpZmljYXRpb24pCi17Ci0gICAgaWYgKG5v
dGlmaWNhdGlvbiA9PSBNZWRpYVBsYXllck5vdGlmaWNhdGlvblBsYXlQYXVzZUJ1dHRvblByZXNz
ZWQpIHsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIHJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0
aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSgpOwotI2VuZGlmCi0gICAgICAgIHRvZ2dsZVBsYXlT
dGF0ZSgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2lmIFBMQVRGT1JNKElPUykKLSAgICBl
bHNlIGlmIChub3RpZmljYXRpb24gPT0gTWVkaWFQbGF5ZXJSZXF1ZXN0QmVnaW5QbGF5YmFjaykg
ewotICAgICAgICBpZiAobV9wYXVzZWQpCi0gICAgICAgICAgICBwbGF5SW50ZXJuYWwoKTsKLSAg
ICB9IGVsc2UgaWYgKG5vdGlmaWNhdGlvbiA9PSBNZWRpYVBsYXllclJlcXVlc3RQYXVzZVBsYXli
YWNrKSB7Ci0gICAgICAgIGlmICghbV9wYXVzZWQpCi0gICAgICAgICAgICBwYXVzZUludGVybmFs
KCk7Ci0gICAgfSBlbHNlIGlmIChub3RpZmljYXRpb24gPT0gTWVkaWFQbGF5ZXJOb3RpZmljYXRp
b25Mb3NlRm9jdXMpIHsKLSAgICAgICAgaWYgKCFtX3BhdXNlZCkKLSAgICAgICAgICAgIHBhdXNl
SW50ZXJuYWwoKTsKLSAgICB9IGVsc2UgaWYgKG5vdGlmaWNhdGlvbiA9PSBNZWRpYVBsYXllck5v
dGlmaWNhdGlvbkRpZFBsYXlUb1RoZUVuZCkgewotICAgICAgICBpZiAoIW1fcGF1c2VkICYmICFs
b29wKCkpCi0gICAgICAgICAgICBwYXVzZUludGVybmFsKCk7Ci0gICAgfSBlbHNlIGlmIChub3Rp
ZmljYXRpb24gPT0gTWVkaWFQbGF5ZXJOb3RpZmljYXRpb25NZWRpYVZhbGlkYXRlZCB8fCBub3Rp
ZmljYXRpb24gPT0gTWVkaWFQbGF5ZXJOb3RpZmljYXRpb25SZWFkeUZvckluc3BlY3Rpb24pIHsK
LSAgICAgICAgLy8gVGhlIG1lZGlhIHBsYXllciBzb21ldGltZXMgcmVwb3J0cyBhbiBhcHBhcmVu
dGx5IHNwdXJpb3VzIGVycm9yIGp1c3QgYXMgd2UgcmVxdWVzdCBwbGF5YmFjaywgYW5kIHRoZW4g
Zm9sbG93cyBhbG1vc3QKLSAgICAgICAgLy8gaW1tZWRpYXRlbHkgd2l0aCBSZWFkeUZvckluc3Bl
Y3Rpb24gYW5kL29yIE1lZGlhVmFsaWRhdGVkLiBUaGUgc3BlYyBkb2Vzbid0IGRlYWwgd2l0aCBh
ICJmYXRhbCIgZXJyb3IgZm9sbG93ZWQKLSAgICAgICAgLy8gYnkgcmVzc3VyZWN0aW9uLCBzbyBp
ZiB3ZSBoYXZlIHNldCBhbiBlcnJvciBjbGVhciBpdCBub3cuCi0gICAgICAgIG1fZXJyb3IgPSAw
OwotICAgIH0gZWxzZSBpZiAobm90aWZpY2F0aW9uID09IE1lZGlhUGxheWVyTm90aWZpY2F0aW9u
RW50ZXJlZEZ1bGxzY3JlZW4pIHsKLSAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCku
d2Via2l0YmVnaW5mdWxsc2NyZWVuRXZlbnQpOwotICAgICAgICBtX2lzRnVsbHNjcmVlbiA9IHRy
dWU7Ci0gICAgfSBlbHNlIGlmIChub3RpZmljYXRpb24gPT0gTWVkaWFQbGF5ZXJOb3RpZmljYXRp
b25FeGl0ZWRGdWxsc2NyZWVuKSB7Ci0gICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygp
LndlYmtpdGVuZGZ1bGxzY3JlZW5FdmVudCk7Ci0gICAgICAgIG1faXNGdWxsc2NyZWVuID0gZmFs
c2U7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBpZiAobV9wbGF5ZXIpCi0gICAgICAgIG1fcGxheWVy
LT5kZWxpdmVyTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbik7Ci0KLSNpZiBQTEFURk9STShJT1Mp
Ci0gICAgaWYgKG5vdGlmaWNhdGlvbiA9PSBNZWRpYVBsYXllck5vdGlmaWNhdGlvbk1lZGlhVmFs
aWRhdGVkKSB7Ci0gICAgICAgIC8vIElmIHRoZSBlbGVtZW50IGlzIHN1cHBvc2VkIHRvIGF1dG9w
bGF5IGFuZCB3ZSBhbGxvdyBpdCwgdGVsbCB0aGUgbWVkaWEgZW5naW5lIHRvIGJlZ2luIGxvYWRp
bmcKLSAgICAgICAgLy8gZGF0YSBub3cuIFBsYXliYWNrIHdpbGwgYmVnaW4gYXV0b21hdGljYWxs
eSB3aGVuIGVub3VnaCBkYXRhIGhhcyBsb2FkZWQuCi0gICAgICAgIGlmIChtX2F1dG9wbGF5aW5n
ICYmIG1fcGF1c2VkICYmIGF1dG9wbGF5KCkpCi0gICAgICAgICAgICBwcmVwYXJlVG9QbGF5KCk7
Ci0gICAgfSBlbHNlIGlmIChub3RpZmljYXRpb24gPT0gTWVkaWFQbGF5ZXJOb3RpZmljYXRpb25F
bnRlcmVkRnVsbHNjcmVlbikKLSAgICAgICAgZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKTsK
LSAgICBlbHNlIGlmIChub3RpZmljYXRpb24gPT0gTWVkaWFQbGF5ZXJOb3RpZmljYXRpb25FeGl0
ZWRGdWxsc2NyZWVuKQotICAgICAgICB3aWxsU3RvcEJlaW5nRnVsbHNjcmVlbkVsZW1lbnQoKTsK
LSNlbmRpZgotfQotCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhUGxheWVyUHJveHko
V2ViTWVkaWFQbGF5ZXJQcm94eSogcHJveHkpCi17Ci0gICAgZW5zdXJlTWVkaWFQbGF5ZXIoKTsK
LSAgICBtX3BsYXllci0+c2V0TWVkaWFQbGF5ZXJQcm94eShwcm94eSk7Ci19Ci0KLXZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6Z2V0UGx1Z2luUHJveHlQYXJhbXMoVVJMJiB1cmwsIFZlY3RvcjxTdHJp
bmc+JiBuYW1lcywgVmVjdG9yPFN0cmluZz4mIHZhbHVlcykKLXsKLSAgICBSZWY8SFRNTE1lZGlh
RWxlbWVudD4gcHJvdGVjdCgqdGhpcyk7IC8vIHNlbGVjdE5leHRTb3VyY2VDaGlsZCBtYXkgZmly
ZSAnYmVmb3JlbG9hZCcsIHdoaWNoIGNhbiBtYWtlIGFyYml0cmFyeSBET00gbXV0YXRpb25zLgot
Ci0gICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwotCi0gICAgaWYgKGlzVmlk
ZW8oKSkgewotICAgICAgICBIVE1MVmlkZW9FbGVtZW50KiB2aWRlbyA9IHRvSFRNTFZpZGVvRWxl
bWVudCh0aGlzKTsKLSAgICAgICAgVVJMIHBvc3RlclVSTCA9IHZpZGVvLT5wb3N0ZXJJbWFnZVVS
TCgpOwotICAgICAgICBpZiAoIXBvc3RlclVSTC5pc0VtcHR5KCkgJiYgZnJhbWUgJiYgZnJhbWUt
PmxvYWRlcigpLndpbGxMb2FkTWVkaWFFbGVtZW50VVJMKHBvc3RlclVSTCkpIHsKLSAgICAgICAg
ICAgIG5hbWVzLmFwcGVuZChBU0NJSUxpdGVyYWwoIl9tZWRpYV9lbGVtZW50X3Bvc3Rlcl8iKSk7
Ci0gICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKHBvc3RlclVSTC5zdHJpbmcoKSk7Ci0gICAgICAg
IH0KLSAgICB9Ci0KLSAgICBpZiAoY29udHJvbHMoKSkgewotICAgICAgICBuYW1lcy5hcHBlbmQo
QVNDSUlMaXRlcmFsKCJfbWVkaWFfZWxlbWVudF9jb250cm9sc18iKSk7Ci0gICAgICAgIHZhbHVl
cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJ0cnVlIikpOwotICAgIH0KLQotI2lmIFBMQVRGT1JNKElP
UykKLSAgICAvLyBEb24ndCBwYXNzIHRoZSBVUkwgdG8gdGhlIHBsdWctaW4gYXMgcGFydCBvZiB0
aGUgaW5pdGlhbGl6YXRpb24gYXJndW1lbnRzLCB3ZSBhbHdheXMgcGFzcyB0aGUgVVJMCi0gICAg
Ly8gaW4gbG9hZFJlc291cmNlIGFuZCBjYWxsaW5nIHNlbGVjdE5leHRTb3VyY2VDaGlsZCBoZXJl
IGNhbiBtZXNzIHVwIHRoZSBwcm9jZXNzaW5nIG9mIDxzb3VyY2U+Ci0gICAgLy8gZWxlbWVudHMg
bGF0ZXIuCi0gICAgVU5VU0VEX1BBUkFNKHVybCk7Ci0jZWxzZQotICAgIHVybCA9IGdldE5vbkVt
cHR5VVJMQXR0cmlidXRlKHNyY0F0dHIpOwotICAgIGlmICghaXNTYWZlVG9Mb2FkVVJMKHVybCwg
Q29tcGxhaW4pKQotICAgICAgICB1cmwgPSBzZWxlY3ROZXh0U291cmNlQ2hpbGQoMCwgMCwgRG9O
b3RoaW5nKTsKLQotICAgIG1fY3VycmVudFNyYyA9IHVybDsKLSAgICBpZiAodXJsLmlzVmFsaWQo
KSAmJiBmcmFtZSAmJiBmcmFtZS0+bG9hZGVyKCkud2lsbExvYWRNZWRpYUVsZW1lbnRVUkwodXJs
KSkgewotICAgICAgICBuYW1lcy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJfbWVkaWFfZWxlbWVudF9z
cmNfIikpOwotICAgICAgICB2YWx1ZXMuYXBwZW5kKG1fY3VycmVudFNyYy5zdHJpbmcoKSk7Ci0g
ICAgfQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1MpCi0gICAgU2V0dGluZ3MqIHNldHRpbmdz
ID0gZG9jdW1lbnQoKS5zZXR0aW5ncygpOwotICAgIGlmIChzZXR0aW5ncyAmJiBzZXR0aW5ncy0+
bWVkaWFQbGF5YmFja0FsbG93c0lubGluZSgpICYmIChhcHBsaWNhdGlvbklzRHVtcFJlbmRlclRy
ZWUoKSB8fCBmYXN0SGFzQXR0cmlidXRlKHdlYmtpdF9wbGF5c2lubGluZUF0dHIpKSkgewotICAg
ICAgICBuYW1lcy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJfbWVkaWFfZWxlbWVudF9hbGxvd19pbmxp
bmVfIikpOwotICAgICAgICB2YWx1ZXMuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgidHJ1ZSIpKTsKLSAg
ICB9Ci0KLSAgICBTdHJpbmcgYWlycGxheSA9IGZhc3RHZXRBdHRyaWJ1dGUod2Via2l0YWlycGxh
eUF0dHIpOwotICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShhaXJwbGF5LCAiYWxsb3ciKSB8fCBl
cXVhbElnbm9yaW5nQ2FzZShhaXJwbGF5LCAiZGVueSIpKSB7Ci0gICAgICAgIG5hbWVzLmFwcGVu
ZChBU0NJSUxpdGVyYWwoIl9tZWRpYV9lbGVtZW50X2FpcnBsYXlfIikpOwotICAgICAgICB2YWx1
ZXMuYXBwZW5kKGFpcnBsYXkubG93ZXIoKSk7Ci0gICAgfQotCi0gICAgaWYgKGZhc3RIYXNBdHRy
aWJ1dGUoZGF0YV95b3V0dWJlX2lkQXR0cikpIHsKLSAgICAgICAgbmFtZXMuYXBwZW5kKEFTQ0lJ
TGl0ZXJhbCgiX21lZGlhX2VsZW1lbnRfeW91dHViZV92aWRlb19pZF8iKSk7Ci0gICAgICAgIHZh
bHVlcy5hcHBlbmQoZmFzdEdldEF0dHJpYnV0ZShkYXRhX3lvdXR1YmVfaWRBdHRyKSk7Ci0gICAg
fQotCi0gICAgU3RyaW5nIGludGVyZmFjZU5hbWUgPSBzZXR0aW5ncyA/IHNldHRpbmdzLT5uZXR3
b3JrSW50ZXJmYWNlTmFtZSgpIDogU3RyaW5nKCk7Ci0gICAgaWYgKCFpbnRlcmZhY2VOYW1lLmlz
RW1wdHkoKSkgewotICAgICAgICBuYW1lcy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJfbWVkaWFfZWxl
bWVudF9uZXR3b3JrX2ludGVyZmFjZV9uYW1lIikpOwotICAgICAgICB2YWx1ZXMuYXBwZW5kKGlu
dGVyZmFjZU5hbWUpOwotICAgIH0KLQotICAgIGlmIChmYXN0SGFzQXR0cmlidXRlKHRpdGxlQXR0
cikpIHsKLSAgICAgICAgbmFtZXMuYXBwZW5kKHRpdGxlQXR0ci50b1N0cmluZygpKTsKLSAgICAg
ICAgdmFsdWVzLmFwcGVuZChmYXN0R2V0QXR0cmlidXRlKHRpdGxlQXR0cikpOwotICAgIH0KLSNl
bmRpZgotCi0jaWYgRU5BQkxFKElPU19BSVJQTEFZKQotICAgIGlmIChpc1ZpZGVvKCkgJiYgZmFz
dEhhc0F0dHJpYnV0ZSh3ZWJraXR3aXJlbGVzc3ZpZGVvcGxheWJhY2tkaXNhYmxlZEF0dHIpKSB7
Ci0gICAgICAgIG5hbWVzLmFwcGVuZChBU0NJSUxpdGVyYWwoIl9tZWRpYV9lbGVtZW50X3dpcmVs
ZXNzX3ZpZGVvX3BsYXliYWNrX2Rpc2FibGVkIikpOwotICAgICAgICB2YWx1ZXMuYXBwZW5kKEFT
Q0lJTGl0ZXJhbCgidHJ1ZSIpKTsKLSAgICB9Ci0jZW5kaWYKLX0KLQotdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpjcmVhdGVNZWRpYVBsYXllclByb3h5KCkKLXsKLSAgICBlbnN1cmVNZWRpYVBsYXll
cigpOwotCi0gICAgaWYgKG1fcHJveHlXaWRnZXQgfHwgKGluRG9jdW1lbnQoKSAmJiAhbV9uZWVk
V2lkZ2V0VXBkYXRlKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRnJhbWUqIGZyYW1lID0gZG9j
dW1lbnQoKS5mcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAg
IExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZU1lZGlhUGxheWVyUHJveHkiKTsK
LQotICAgIFVSTCB1cmw7Ci0gICAgVmVjdG9yPFN0cmluZz4gcGFyYW1OYW1lczsKLSAgICBWZWN0
b3I8U3RyaW5nPiBwYXJhbVZhbHVlczsKLQotICAgIGdldFBsdWdpblByb3h5UGFyYW1zKHVybCwg
cGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpOwotICAgIAotICAgIC8vIEhhbmcgb250byB0aGUgcHJv
eHkgd2lkZ2V0IHNvIGl0IHdvbid0IGJlIGRlc3Ryb3llZCBpZiB0aGUgcGx1Zy1pbiBpcyBzZXQg
dG8KLSAgICAvLyBkaXNwbGF5Om5vbmUKLSAgICBtX3Byb3h5V2lkZ2V0ID0gZnJhbWUtPmxvYWRl
cigpLnN1YmZyYW1lTG9hZGVyKCkubG9hZE1lZGlhUGxheWVyUHJveHlQbHVnaW4oKnRoaXMsIHVy
bCwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpOwotICAgIGlmIChtX3Byb3h5V2lkZ2V0KQotICAg
ICAgICBtX25lZWRXaWRnZXRVcGRhdGUgPSBmYWxzZTsKLX0KLQotdm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojp1cGRhdGVXaWRnZXQoUGx1Z2luQ3JlYXRpb25PcHRpb24pCi17Ci0gICAgc2V0TmVlZFdp
ZGdldFVwZGF0ZShmYWxzZSk7Ci0KLSAgICAvLyBGSVhNRTogV2hhdCBpZiBkb2N1bWVudCgpLmZy
YW1lKCkgaXMgMD8KLQotICAgIFVSTCB1cmw7Ci0gICAgVmVjdG9yPFN0cmluZz4gcGFyYW1OYW1l
czsKLSAgICBWZWN0b3I8U3RyaW5nPiBwYXJhbVZhbHVlczsKLQotICAgIGdldFBsdWdpblByb3h5
UGFyYW1zKHVybCwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpOwotICAgIFN1YmZyYW1lTG9hZGVy
JiBsb2FkZXIgPSBkb2N1bWVudCgpLmZyYW1lKCktPmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCk7
Ci0gICAgbG9hZGVyLmxvYWRNZWRpYVBsYXllclByb3h5UGx1Z2luKCp0aGlzLCB1cmwsIHBhcmFt
TmFtZXMsIHBhcmFtVmFsdWVzKTsKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPWFlf
Rk9SX1ZJREVPKQotCiAjaWYgRU5BQkxFKElPU19BSVJQTEFZKQogdm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojp3ZWJraXRTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKQogewpAQCAtNTM1NywxNyArNTA3
OSw2IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlTWVkaWFDb250cm9scygpCiAKIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6Y29uZmlndXJlTWVkaWFDb250cm9scygpCiB7Ci0jaWYgRU5B
QkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgaWYgKHNob3VsZFVzZVZpZGVvUGx1Z2lu
UHJveHkoKSkgewotICAgICAgICBpZiAobV9wbGF5ZXIpCi0gICAgICAgICAgICBtX3BsYXllci0+
c2V0Q29udHJvbHMoY29udHJvbHMoKSk7Ci0KLSAgICAgICAgaWYgKCFoYXNNZWRpYUNvbnRyb2xz
KCkgJiYgaW5Eb2N1bWVudCgpKQotICAgICAgICAgICAgY3JlYXRlTWVkaWFDb250cm9scygpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0KICNpZiBFTkFCTEUoTUVESUFfQ09OVFJP
TFNfU0NSSVBUKQogICAgIGlmICghY29udHJvbHMoKSB8fCAhaW5Eb2N1bWVudCgpKQogICAgICAg
ICByZXR1cm47CkBAIC01ODgzLDEzICs1NTk0LDYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpy
ZW1vdmVCZWhhdmlvcnNSZXN0cmljdGlvbnNBZnRlckZpcnN0VXNlckdlc3R1cmUoKQogI2VuZGlm
CiB9CiAKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKLWJvb2wgSFRNTE1lZGlh
RWxlbWVudDo6c2hvdWxkVXNlVmlkZW9QbHVnaW5Qcm94eSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IGRvY3VtZW50KCkuc2V0dGluZ3MoKSAmJiBkb2N1bWVudCgpLnNldHRpbmdzKCktPmlzVmlkZW9Q
bHVnaW5Qcm94eUVuYWJsZWQoKTsKLX0KLSNlbmRpZgotCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJD
RSkKIFJlZlB0cjxWaWRlb1BsYXliYWNrUXVhbGl0eT4gSFRNTE1lZGlhRWxlbWVudDo6Z2V0Vmlk
ZW9QbGF5YmFja1F1YWxpdHkoKQogewpAQCAtNTk2NywxMSArNTY3MSw2IEBAIHN0YXRpYyB2b2lk
IHNldFBhZ2VTY2FsZUZhY3RvclByb3BlcnR5KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpT
VmFsdWUgY29udHJvCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRv
d1Jvb3QoU2hhZG93Um9vdCogcm9vdCkKIHsKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVt
ZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290Iik7Ci0jaWYgRU5BQkxFKFBMVUdJTl9QUk9Y
WV9GT1JfVklERU8pCi0gICAgLy8gSmF2YVNjcmlwdCBjb250cm9scyBhcmUgbm90IGVuYWJsZWQg
d2l0aCB0aGUgdmlkZW8gcGx1Z2luIHByb3h5LgotICAgIGlmIChzaG91bGRVc2VWaWRlb1BsdWdp
blByb3h5KCkpCi0gICAgICAgIHJldHVybjsKLSNlbmRpZgogICAgIFBhZ2UqIHBhZ2UgPSBkb2N1
bWVudCgpLnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggZDBmMmJlNDBiNjNkMjZhNjU1N2NhY2Y4
ZGRiZTZlYzNhYzExNTFjZS4uMGVhYTJkMzc1YmFmYzNhNTZjYmVjMzJlMDdlNDg4Yzk2ZTZlNjg0
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTM1LDEyICszNSw2
IEBACiAjaW5jbHVkZSAiTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXIuaCIKIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotI2luY2x1
ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJNZWRpYVBsYXllclByb3h5LmgiCi0jZW5kaWYKLQogI2lmIEVO
QUJMRShWSURFT19UUkFDSykKICNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCiAjaW5jbHVkZSAiQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlcy5oIgpAQCAtNzMsOSArNjcsNiBAQCBjbGFzcyBNZWRpYUNvbnRy
b2xzSG9zdDsKIGNsYXNzIE1lZGlhRXJyb3I7CiBjbGFzcyBQYWdlQWN0aXZpdHlBc3NlcnRpb25U
b2tlbjsKIGNsYXNzIFRpbWVSYW5nZXM7Ci0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklE
RU8pCi1jbGFzcyBXaWRnZXQ7Ci0jZW5kaWYKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1Yy
KQogY2xhc3MgTWVkaWFLZXlzOwogI2VuZGlmCkBAIC05OCwxMSArODksNyBAQCB0eXBlZGVmIFZl
Y3RvcjxDdWVJbnRlcnZhbD4gQ3VlTGlzdDsKICNlbmRpZgogCiBjbGFzcyBIVE1MTWVkaWFFbGVt
ZW50Ci0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgOiBwdWJsaWMgSFRN
TEZyYW1lT3duZXJFbGVtZW50Ci0jZWxzZQogICAgIDogcHVibGljIEhUTUxFbGVtZW50Ci0jZW5k
aWYKICAgICAsIHByaXZhdGUgTWVkaWFQbGF5ZXJDbGllbnQsIHB1YmxpYyBNZWRpYVBsYXllclN1
cHBvcnRzVHlwZUNsaWVudCwgcHJpdmF0ZSBNZWRpYUNhblN0YXJ0TGlzdGVuZXIsIHB1YmxpYyBB
Y3RpdmVET01PYmplY3QsIHB1YmxpYyBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UgLCBwdWJsaWMg
TWVkaWFTZXNzaW9uQ2xpZW50CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICwgcHJpdmF0
ZSBBdWRpb1RyYWNrQ2xpZW50CkBAIC0zNjcsMTYgKzM1NCw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFRleHRUcmFja1JlcHJlc2VudGF0aW9uKik7CiAj
ZW5kaWYKIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIHZvaWQgZW5z
dXJlTWVkaWFQbGF5ZXIoKTsKLSAgICB2b2lkIHNldE5lZWRXaWRnZXRVcGRhdGUoYm9vbCBuZWVk
V2lkZ2V0VXBkYXRlKSB7IG1fbmVlZFdpZGdldFVwZGF0ZSA9IG5lZWRXaWRnZXRVcGRhdGU7IH0K
LSAgICB2b2lkIGRlbGl2ZXJOb3RpZmljYXRpb24oTWVkaWFQbGF5ZXJQcm94eU5vdGlmaWNhdGlv
blR5cGUgbm90aWZpY2F0aW9uKTsKLSAgICB2b2lkIHNldE1lZGlhUGxheWVyUHJveHkoV2ViTWVk
aWFQbGF5ZXJQcm94eSogcHJveHkpOwotICAgIHZvaWQgZ2V0UGx1Z2luUHJveHlQYXJhbXMoVVJM
JiB1cmwsIFZlY3RvcjxTdHJpbmc+JiBuYW1lcywgVmVjdG9yPFN0cmluZz4mIHZhbHVlcyk7Ci0g
ICAgdm9pZCBjcmVhdGVNZWRpYVBsYXllclByb3h5KCk7Ci0gICAgdm9pZCB1cGRhdGVXaWRnZXQo
UGx1Z2luQ3JlYXRpb25PcHRpb24pOwotI2VuZGlmCi0KICNpZiBFTkFCTEUoSU9TX0FJUlBMQVkp
CiAgICAgdm9pZCB3ZWJraXRTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKTsKICAgICBib29sIHdl
YmtpdEN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3MoKSBjb25zdDsKQEAgLTQ0NSwxMCAr
NDIyLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBlbnRlcmVkT3JFeGl0ZWRGdWxsc2NyZWVuKCkg
eyBjb25maWd1cmVNZWRpYUNvbnRyb2xzKCk7IH0KIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlf
Rk9SX1ZJREVPKQotICAgIGJvb2wgc2hvdWxkVXNlVmlkZW9QbHVnaW5Qcm94eSgpIGNvbnN0Owot
I2VuZGlmCi0KICAgICB1bnNpZ25lZCBsb25nIGxvbmcgZmlsZVNpemUoKSBjb25zdDsKIAogICAg
IHZvaWQgbWVkaWFMb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUpOwpAQCAt
NzY0LDkgKzczNyw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIE93blB0cjxNZWRpYVBsYXll
cj4gbV9wbGF5ZXI7Ci0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgUmVm
UHRyPFdpZGdldD4gbV9wcm94eVdpZGdldDsKLSNlbmRpZgogCiAgICAgTWVkaWFQbGF5ZXI6OlBy
ZWxvYWQgbV9wcmVsb2FkOwogCkBAIC04MjYsMTEgKzc5Niw2IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2lzRnVsbHNjcmVlbiA6IDE7CiAgICAgYm9vbCBtX2Nsb3NlZENhcHRpb25zVmlzaWJsZSA6
IDE7CiAgICAgYm9vbCBtX3dlYmtpdExlZ2FjeUNsb3NlZENhcHRpb25PdmVycmlkZSA6IDE7Ci0K
LSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKLSAgICBib29sIG1fbmVlZFdpZGdl
dFVwZGF0ZSA6IDE7Ci0jZW5kaWYKLQogICAgIGJvb2wgbV9jb21wbGV0ZWx5TG9hZGVkIDogMTsK
ICAgICBib29sIG1faGF2ZVByZXBhcmVkVG9QbGF5IDogMTsKICAgICBib29sIG1fcGFyc2luZ0lu
UHJvZ3Jlc3MgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFT
ZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhU2Vzc2lvbi5jcHAKaW5k
ZXggMzAzZTVkYjkyNjlmZTBjMDMzOGNjZjdiZmM1ODYxMWY4ZDhlMjE5YS4uNDk1Mzc1MTkzYWI1
NGQzNDZlZTAzYjJhY2FmYTM1MGU3YWEyYjc4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYVNlc3Npb24uY3BwCkBAIC0xODEsMTcgKzE4MSw2IEBAIHZvaWQgSFRNTE1lZGlhU2Vzc2lv
bjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1l
bnQpCiAgICAgaWYgKCFzaG93aW5nUGxheWJhY2tUYXJnZXRQaWNrZXJQZXJtaXR0ZWQoZWxlbWVu
dCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVP
KQotICAgIGlmIChlbGVtZW50LnNob3VsZFVzZVZpZGVvUGx1Z2luUHJveHkoKSkgewotICAgICAg
ICBNZWRpYVBsYXllciogcGxheWVyID0gZWxlbWVudC5wbGF5ZXIoKTsKLSAgICAgICAgaWYgKCFw
bGF5ZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgcGxheWVyLT5zaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIGVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpLT5wYWdlKCktPmNo
cm9tZSgpLmNsaWVudCgpLnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihlbGVtZW50Lmhhc1ZpZGVv
KCkpOwogI2VuZGlmCkBAIC0xOTksMTcgKzE4OCw3IEBAIHZvaWQgSFRNTE1lZGlhU2Vzc2lvbjo6
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQp
CiAKIGJvb2wgSFRNTE1lZGlhU2Vzc2lvbjo6aGFzV2lyZWxlc3NQbGF5YmFja1RhcmdldHMoY29u
c3QgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkgY29uc3QKIHsKLSNpZiBFTkFCTEUoUExVR0lO
X1BST1hZX0ZPUl9WSURFTykKLSAgICBpZiAoZWxlbWVudC5zaG91bGRVc2VWaWRlb1BsdWdpblBy
b3h5KCkpIHsKLSAgICAgICAgTWVkaWFQbGF5ZXIqIHBsYXllciA9IGVsZW1lbnQucGxheWVyKCk7
Ci0gICAgICAgIGlmICghcGxheWVyKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
ICAgIHJldHVybiBwbGF5ZXItPmhhc1dpcmVsZXNzUGxheWJhY2tUYXJnZXRzKCk7Ci0gICAgfQot
I2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZWxlbWVudCk7Ci0jZW5kaWYKIAogICAgIGJvb2wgaGFz
VGFyZ2V0cyA9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5oYXNXaXJlbGVz
c1RhcmdldHNBdmFpbGFibGUoKTsKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFTZXNzaW9uOjpo
YXNXaXJlbGVzc1BsYXliYWNrVGFyZ2V0cyAtIHJldHVybmluZyAlcyIsIGhhc1RhcmdldHMgPyAi
VFJVRSIgOiAiRkFMU0UiKTsKQEAgLTI2NiwxOSArMjQ1LDcgQEAgdm9pZCBIVE1MTWVkaWFTZXNz
aW9uOjpzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZChjb25zdCBIVE1MTWVkaWFFbGVt
ZW50Jgogdm9pZCBIVE1MTWVkaWFTZXNzaW9uOjpzZXRIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJp
bGl0eUxpc3RlbmVycyhjb25zdCBIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50LCBib29sIGhhc0xp
c3RlbmVycykKIHsKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFTZXNzaW9uOjpzZXRIYXNQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVycyAtIGhhc0xpc3RlbmVycyAlcyIsIGhhc0xp
c3RlbmVycyA/ICJUUlVFIiA6ICJGQUxTRSIpOwotCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9G
T1JfVklERU8pCi0gICAgaWYgKGVsZW1lbnQuc2hvdWxkVXNlVmlkZW9QbHVnaW5Qcm94eSgpKSB7
Ci0gICAgICAgIE1lZGlhUGxheWVyKiBwbGF5ZXIgPSBlbGVtZW50LnBsYXllcigpOwotICAgICAg
ICBpZiAoIXBsYXllcikKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgCi0gICAgICAgIHBs
YXllci0+c2V0SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcnMoaGFzTGlzdGVu
ZXJzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGVs
ZW1lbnQpOwotI2VuZGlmCiAKICAgICBpZiAoaGFzTGlzdGVuZXJzKQogICAgICAgICBNZWRpYVNl
c3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuc3RhcnRNb25pdG9yaW5nQWlyUGxheVJvdXRl
cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKaW5kZXggMzkyMTdi
MjQxMDRmNzg3NzZiZTZmNjhlMTU5NjgzMTJlNmQxZDEzZS4uZjVlNDAwMjNjNWI3ZDJmNmM4NThj
MWEyYTE5ZDdhZDY5MzJkZDBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VmlkZW9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1l
bnQuY3BwCkBAIC02OSwxMCArNjksNiBAQCBib29sIEhUTUxWaWRlb0VsZW1lbnQ6OnJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogCiBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gSFRNTFZpZGVvRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlKQogewotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQot
ICAgIGlmIChzaG91bGRVc2VWaWRlb1BsdWdpblByb3h5KCkpCi0gICAgICAgIHJldHVybiBIVE1M
TWVkaWFFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoc3RkOjptb3ZlKHN0eWxlKSk7Ci0j
ZW5kaWYKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVmlkZW8+KCp0aGlzLCBzdGQ6
Om1vdmUoc3R5bGUpKTsKIH0KIApAQCAtODAsMjAgKzc2LDE0IEBAIHZvaWQgSFRNTFZpZGVvRWxl
bWVudDo6ZGlkQXR0YWNoUmVuZGVyZXJzKCkKIHsKICAgICBIVE1MTWVkaWFFbGVtZW50OjpkaWRB
dHRhY2hSZW5kZXJlcnMoKTsKIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQot
ICAgIGlmICghc2hvdWxkVXNlVmlkZW9QbHVnaW5Qcm94eSgpKSB7Ci0jZW5kaWYKLSAgICAgICAg
dXBkYXRlRGlzcGxheVN0YXRlKCk7Ci0gICAgICAgIGlmIChzaG91bGREaXNwbGF5UG9zdGVySW1h
Z2UoKSkgewotICAgICAgICAgICAgaWYgKCFtX2ltYWdlTG9hZGVyKQotICAgICAgICAgICAgICAg
IG1faW1hZ2VMb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEhUTUxJbWFnZUxvYWRlcj4oKnRoaXMp
OwotICAgICAgICAgICAgbV9pbWFnZUxvYWRlci0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKLSAgICAg
ICAgICAgIGlmIChyZW5kZXJlcigpKQotICAgICAgICAgICAgICAgIHRvUmVuZGVySW1hZ2UocmVu
ZGVyZXIoKSktPmltYWdlUmVzb3VyY2UoKS5zZXRDYWNoZWRJbWFnZShtX2ltYWdlTG9hZGVyLT5p
bWFnZSgpKTsKLSAgICAgICAgfQotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQor
ICAgIHVwZGF0ZURpc3BsYXlTdGF0ZSgpOworICAgIGlmIChzaG91bGREaXNwbGF5UG9zdGVySW1h
Z2UoKSkgeworICAgICAgICBpZiAoIW1faW1hZ2VMb2FkZXIpCisgICAgICAgICAgICBtX2ltYWdl
TG9hZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxIVE1MSW1hZ2VMb2FkZXI+KCp0aGlzKTsKKyAgICAg
ICAgbV9pbWFnZUxvYWRlci0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICAgICAgaWYgKHJlbmRl
cmVyKCkpCisgICAgICAgICAgICB0b1JlbmRlckltYWdlKHJlbmRlcmVyKCkpLT5pbWFnZVJlc291
cmNlKCkuc2V0Q2FjaGVkSW1hZ2UobV9pbWFnZUxvYWRlci0+aW1hZ2UoKSk7CiAgICAgfQotI2Vu
ZGlmCiB9CiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQpAQCAtMTE5LDEwICsxMDks
NyBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cgogICAgICAgICAvLyBGb3JjZSBhIHBvc3RlciBy
ZWNhbGMgYnkgc2V0dGluZyBtX2Rpc3BsYXlNb2RlIHRvIFVua25vd24gZGlyZWN0bHkgYmVmb3Jl
IGNhbGxpbmcgdXBkYXRlRGlzcGxheVN0YXRlLgogICAgICAgICBIVE1MTWVkaWFFbGVtZW50Ojpz
ZXREaXNwbGF5TW9kZShVbmtub3duKTsKICAgICAgICAgdXBkYXRlRGlzcGxheVN0YXRlKCk7Ci0j
aWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgICAgIGlmIChzaG91bGRVc2VW
aWRlb1BsdWdpblByb3h5KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0jZW5kaWYKKwogICAgICAg
ICBpZiAoc2hvdWxkRGlzcGxheVBvc3RlckltYWdlKCkpIHsKICAgICAgICAgICAgIGlmICghbV9p
bWFnZUxvYWRlcikKICAgICAgICAgICAgICAgICBtX2ltYWdlTG9hZGVyID0gc3RkOjptYWtlX3Vu
aXF1ZTxIVE1MSW1hZ2VMb2FkZXI+KCp0aGlzKTsKQEAgLTIzMCwxMCArMjE3LDYgQEAgdm9pZCBI
VE1MVmlkZW9FbGVtZW50OjpzZXREaXNwbGF5TW9kZShEaXNwbGF5TW9kZSBtb2RlKQogICAgICAg
ICAgICAgcGxheWVyKCktPnNldFBvc3Rlcihwb3N0ZXIpOwogICAgIH0KIAotI2lmIEVOQUJMRShQ
TFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIGlmIChzaG91bGRVc2VWaWRlb1BsdWdpblByb3h5
KCkpCi0gICAgICAgIHJldHVybjsKLSNlbmRpZgogICAgIGlmIChyZW5kZXJlcigpICYmIGRpc3Bs
YXlNb2RlKCkgIT0gb2xkTW9kZSkKICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1l
bnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcAppbmRleCBjODMzNjQ5Y2RhNTg0ZmE2OTBiOWEzOGMzM2FmNjZmMmFlOTBk
Y2FiLi5kMmY0YTk0MDI5ZThjMWMwNWY2MWJkNjE3MmM2MDY3MWFlMWU1ZmQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBA
IC01NSwxMCArNTUsNiBAQAogI2luY2x1ZGUgIlRleHRUcmFja0xpc3QuaCIKICNlbmRpZgogCi0j
aWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0jaW5jbHVkZSAiUmVuZGVyV2lkZ2V0
LmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShXRUJWVFRfUkVHSU9OUykKICNpbmNsdWRlICJWVFRS
ZWdpb25MaXN0LmgiCiAjZW5kaWYKQEAgLTE0NDEsMTUgKzE0MzcsOSBAQCB2b2lkIE1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZVNpemVzKGJvb2wgZm9yY2VVcGRh
dGUpCiAgICAgaWYgKG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24pCiAgICAgICAgIHZpZGVvQm94
ID0gbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi0+Ym91bmRzKCk7CiAgICAgZWxzZSB7Ci0jaWYg
RU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgICAgIGlmICghbWVkaWFFbGVtZW50
LT5yZW5kZXJlcigpIHx8ICFtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCktPmlzV2lkZ2V0KCkpCi0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHZpZGVvQm94ID0gcGl4ZWxTbmFwcGVkSW50UmVj
dCh0b1JlbmRlcldpZGdldChtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCkpLT5jb250ZW50Qm94UmVj
dCgpKTsKLSNlbHNlCiAgICAgICAgIGlmICghbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpIHx8ICFt
ZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCktPmlzVmlkZW8oKSkKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgdmlkZW9Cb3ggPSB0b1JlbmRlclZpZGVvKCptZWRpYUVsZW1lbnQtPnJlbmRlcmVy
KCkpLnZpZGVvQm94KCk7Ci0jZW5kaWYKICAgICB9CiAKICAgICBpZiAoIWZvcmNlVXBkYXRlICYm
IG1fdmlkZW9EaXNwbGF5U2l6ZSA9PSB2aWRlb0JveCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHAKaW5kZXggZmFmNGNlOGYzYTlmYmZhMWVkYTg1OTU2NmYyMjYwM2Y1NzIyNmJk
Ni4uMzdkNDBkMmI3OTM0MWU5OWVjODVmMjYwYjFkODVmOGRlNDgxNDM3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTE1OCwxMyArMTU4LDYgQEAgUGFzc1JlZlB0
cjxXaWRnZXQ+IEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQo
Y29uc3QgSW50U2l6ZSYKICAgICByZXR1cm4gMDsKIH0KIAotI2lmIEVOQUJMRShQTFVHSU5fUFJP
WFlfRk9SX1ZJREVPKQotUGFzc1JlZlB0cjxXaWRnZXQ+IEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6
OmNyZWF0ZU1lZGlhUGxheWVyUHJveHlQbHVnaW4oY29uc3QgSW50U2l6ZSYsIEhUTUxNZWRpYUVs
ZW1lbnQqLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiwgY29uc3QgU3RyaW5nJikKLXsKLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZgotCiBQ
YXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6
OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKIHsKICAgICByZXR1cm4gUGFzc1JlZlB0cjxGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0PigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmlu
ZGV4IDdjOWFkZjJjNWYxYjNlYmFhZmMyZjQzYTIzZGU0MDJhOWFlYWM4MjkuLmYyNzdlNGI0MmNj
M2ZiODI1MTJmZDM2NTg1YzI0MzllNDE2OTQ2N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgKQEAgLTM2OCwxMSArMzY4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1l
bnQqLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJl
Y3JlYXRlUGx1Z2luKFdpZGdldCopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxX
aWRnZXQ+IGNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYsIEhUTUxBcHBsZXRF
bGVtZW50KiwgY29uc3QgVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYpIG92ZXJyaWRlOwotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQot
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZU1lZGlhUGxheWVyUHJveHlQbHVn
aW4oY29uc3QgSW50U2l6ZSYsIEhUTUxNZWRpYUVsZW1lbnQqLCBjb25zdCBVUkwmLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJikgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGhpZGVNZWRpYVBsYXllclByb3h5UGx1Z2luKFdpZGdl
dCopIG92ZXJyaWRlIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzaG93TWVkaWFQbGF5ZXJQcm94eVBs
dWdpbihXaWRnZXQqKSBvdmVycmlkZSB7IH0KLSNlbmRpZgogCiAgICAgdmlydHVhbCBPYmplY3RD
b250ZW50VHlwZSBvYmplY3RDb250ZW50VHlwZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmLCBi
b29sKSBvdmVycmlkZSB7IHJldHVybiBPYmplY3RDb250ZW50VHlwZSgpOyB9CiAgICAgdmlydHVh
bCBTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTdHJp
bmcoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA5
MzM3NDhhNjI2NmIwNmQ1ZWMyNGFmODQxYjQ3ZDM4Y2I0ZjU2MGYxLi41MzUxYmUyNGM4NmFlYTU5
NzYzZDAzYzczZGE1OTE2YWZmZjEyYmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaApAQCAtNzIsOSArNzIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgSFRNTEFwcGxldEVsZW1lbnQ7CiAgICAgY2xhc3MgSFRNTEZvcm1FbGVtZW50OwogICAg
IGNsYXNzIEhUTUxGcmFtZU93bmVyRWxlbWVudDsKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZP
Ul9WSURFTykKLSAgICBjbGFzcyBIVE1MTWVkaWFFbGVtZW50OwotI2VuZGlmCiAgICAgY2xhc3Mg
SFRNTFBsdWdJbkVsZW1lbnQ7CiAgICAgY2xhc3MgSW50U2l6ZTsKICAgICBjbGFzcyBVUkw7CkBA
IC0yNzQsMTEgKzI3MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwg
SFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpID0gMDsK
IAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWlsVG9TdGFydFBsdWdpbihjb25z
dCBQbHVnaW5WaWV3KikgY29uc3QgeyB9Ci0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklE
RU8pCi0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZU1lZGlhUGxheWVy
UHJveHlQbHVnaW4oY29uc3QgSW50U2l6ZSYsIEhUTUxNZWRpYUVsZW1lbnQqLCBjb25zdCBVUkwm
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3Ry
aW5nJikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgaGlkZU1lZGlhUGxheWVyUHJveHlQbHVn
aW4oV2lkZ2V0KikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2hvd01lZGlhUGxheWVyUHJv
eHlQbHVnaW4oV2lkZ2V0KikgPSAwOwotI2VuZGlmCiAKICAgICAgICAgdmlydHVhbCBPYmplY3RD
b250ZW50VHlwZSBvYmplY3RDb250ZW50VHlwZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBib29sIHNob3VsZFByZWZlclBsdWdJbnNGb3JJbWFnZXMpID0gMDsKICAgICAgICAg
dmlydHVhbCBTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5cGUoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCA4Yjk2ZGVmNzJkY2VjOWZhZmFlNGVh
MGNlMmU1MDJkYmIzMDkxMDk1Li5mOWFkZjZjZTdiN2IyZTEzNWEyMTJlNDg4N2M2YTU4NmQ1OGRj
M2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTU2LDEx
ICs1Niw2IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgogCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0jaW5jbHVkZSAiSFRN
TE1lZGlhRWxlbWVudC5oIgotI2luY2x1ZGUgIlJlbmRlclZpZGVvLmgiCi0jZW5kaWYKLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKQEAgLTIz
Myw0NiArMjI4LDYgQEAgYm9vbCBTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdE9iamVjdChIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50JiBvd25lckVsZW1lbnQsIGNvbnN0IFMKICAgICByZXR1cm4gbG9hZE9y
UmVkaXJlY3RTdWJmcmFtZShvd25lckVsZW1lbnQsIGNvbXBsZXRlZFVSTCwgZnJhbWVOYW1lLCBM
b2NrSGlzdG9yeTo6WWVzLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMpOwogfQogCi0jaWYgRU5B
QkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi1QYXNzUmVmUHRyPFdpZGdldD4gU3ViZnJhbWVM
b2FkZXI6OmxvYWRNZWRpYVBsYXllclByb3h5UGx1Z2luKEhUTUxNZWRpYUVsZW1lbnQmIG1lZGlh
RWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVz
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpCi17Ci0gICAgQVNTRVJUKG1lZGlh
RWxlbWVudC5oYXNUYWdOYW1lKHZpZGVvVGFnKSB8fCBpc0hUTUxBdWRpb0VsZW1lbnQobWVkaWFF
bGVtZW50KSk7Ci0KLSAgICBVUkwgY29tcGxldGVkVVJMOwotICAgIGlmICghdXJsLmlzRW1wdHko
KSkKLSAgICAgICAgY29tcGxldGVkVVJMID0gY29tcGxldGVVUkwodXJsKTsKLQotICAgIGlmICgh
bV9mcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5jYW5EaXNwbGF5KGNvbXBsZXRl
ZFVSTCkpIHsKLSAgICAgICAgRnJhbWVMb2FkZXI6OnJlcG9ydExvY2FsTG9hZEZhaWxlZCgmbV9m
cmFtZSwgY29tcGxldGVkVVJMLnN0cmluZygpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgfQotCi0gICAgaWYgKCFtX2ZyYW1lLmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpLT5hbGxvd01lZGlhRnJvbVNvdXJjZShjb21wbGV0ZWRVUkwpKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQotICAgIFJlbmRlcldpZGdldCogcmVuZGVyZXIgPSB0b1JlbmRlcldpZGdldCht
ZWRpYUVsZW1lbnQucmVuZGVyZXIoKSk7Ci0gICAgSW50U2l6ZSBzaXplOwotCi0gICAgaWYgKHJl
bmRlcmVyKQotICAgICAgICBzaXplID0gcm91bmRlZEludFNpemUoTGF5b3V0U2l6ZShyZW5kZXJl
ci0+Y29udGVudFdpZHRoKCksIHJlbmRlcmVyLT5jb250ZW50SGVpZ2h0KCkpKTsKLSAgICBlbHNl
IGlmIChtZWRpYUVsZW1lbnQuaXNWaWRlbygpKQotICAgICAgICBzaXplID0gUmVuZGVyVmlkZW86
OmRlZmF1bHRTaXplKCk7Ci0KLSAgICBpZiAoIW1fZnJhbWUubG9hZGVyKCkubWl4ZWRDb250ZW50
Q2hlY2tlcigpLmNhblJ1bkluc2VjdXJlQ29udGVudChtX2ZyYW1lLmRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCksIGNvbXBsZXRlZFVSTCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0g
ICAgUmVmUHRyPFdpZGdldD4gd2lkZ2V0ID0gbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5jcmVh
dGVNZWRpYVBsYXllclByb3h5UGx1Z2luKHNpemUsICZtZWRpYUVsZW1lbnQsIGNvbXBsZXRlZFVS
TCwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMsICJhcHBsaWNhdGlvbi94LW1lZGlhLWVsZW1lbnQt
cHJveHktcGx1Z2luIik7Ci0KLSAgICBpZiAod2lkZ2V0ICYmIHJlbmRlcmVyKSB7Ci0gICAgICAg
IHJlbmRlcmVyLT5zZXRXaWRnZXQod2lkZ2V0KTsKLSAgICAgICAgcmVuZGVyZXItPmZyYW1lT3du
ZXJFbGVtZW50KCkuc2V0TmVlZHNTdHlsZVJlY2FsYyhTeW50aGV0aWNTdHlsZUNoYW5nZSk7Ci0g
ICAgfQotICAgIG1fY29udGFpbnNQbHVnaW5zID0gdHJ1ZTsKLQotICAgIHJldHVybiB3aWRnZXQg
PyB3aWRnZXQucmVsZWFzZSgpIDogbnVsbHB0cjsKLX0KLSNlbmRpZiAvLyBFTkFCTEUoUExVR0lO
X1BST1hZX0ZPUl9WSURFTykKLQogUGFzc1JlZlB0cjxXaWRnZXQ+IFN1YmZyYW1lTG9hZGVyOjpj
cmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmIHNpemUsIEhUTUxBcHBsZXRFbGVt
ZW50JiBlbGVtZW50LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQogewogICAgIFN0cmluZyBiYXNlVVJMU3RyaW5nOwpA
QCAtNDU3LDEwICs0MTIsNiBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQmIHBsdWdpbkVsZW1lbnQsIGNvbnN0IFVSTAogICAgIHBsdWdpbkVs
ZW1lbnQuc3ViZnJhbWVMb2FkZXJEaWRDcmVhdGVQbHVnSW4od2lkZ2V0LmdldCgpKTsKICAgICBy
ZW5kZXJlci0+c2V0V2lkZ2V0KHdpZGdldCk7CiAgICAgbV9jb250YWluc1BsdWdpbnMgPSB0cnVl
OwotIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIHBsdWdpbkVsZW1l
bnQuc2V0TmVlZHNTdHlsZVJlY2FsYyhTeW50aGV0aWNTdHlsZUNoYW5nZSk7Ci0jZW5kaWYKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1
YmZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuaApp
bmRleCA0YmZjMzc4ZDU3NTY1NjViZmU0OWExOWU2YmNiNGYzMmVlODQxYzFiLi5lMjBjYTU0ZjFj
MTY5OTRjY2JlMTE3MGM4ZWZlNGQwZTI5OWI5MzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vi
ZnJhbWVMb2FkZXIuaApAQCAtNjMsMTAgKzYzLDYgQEAgcHVibGljOgogICAgIGJvb2wgcmVxdWVz
dE9iamVjdChIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
IEF0b21pY1N0cmluZyYgZnJhbWVOYW1lLAogICAgICAgICBjb25zdCBTdHJpbmcmIHNlcnZpY2VU
eXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHBhcmFtVmFsdWVzKTsKIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQot
ICAgIFBhc3NSZWZQdHI8V2lkZ2V0PiBsb2FkTWVkaWFQbGF5ZXJQcm94eVBsdWdpbihIVE1MTWVk
aWFFbGVtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcyk7Ci0jZW5kaWYKLQogICAgIFBhc3NS
ZWZQdHI8V2lkZ2V0PiBjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmLCBIVE1M
QXBwbGV0RWxlbWVudCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpOwogCiAgICAgYm9vbCBhbGxvd1BsdWdpbnMoUmVh
c29uRm9yQ2FsbGluZ0FsbG93UGx1Z2lucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5k
ZXggMzZkOTk4NzZhMjY2OGRkMjIwZjgwZmMyNTBlNzAwMzc5MGIwNGQ0MC4uMTVjMjQxZTg5ZGNl
MDdmNTU5OGM5ZjU1OTI5MmJlNTI1YzdhNGI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cApAQCAtMTA0LDEwICsxMDQsNiBAQAogI2luY2x1ZGUgIlN5c3RlbU1lbW9yeS5oIgogI2VuZGlm
CiAKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKLSNpbmNsdWRlICJIVE1MTWVk
aWFFbGVtZW50LmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwpAQCAtMjY2NCwxNCArMjY2MCw3IEBAIHZvaWQgRnJhbWVWaWV3Ojp1
cGRhdGVFbWJlZGRlZE9iamVjdChSZW5kZXJFbWJlZGRlZE9iamVjdCYgZW1iZWRkZWRPYmplY3Qp
CiAgICAgICAgIH0KICAgICAgICAgaWYgKHBsdWdpbkVsZW1lbnQubmVlZHNXaWRnZXRVcGRhdGUo
KSkKICAgICAgICAgICAgIHBsdWdpbkVsZW1lbnQudXBkYXRlV2lkZ2V0KENyZWF0ZUFueVdpZGdl
dFR5cGUpOwotICAgIH0KLQotICAgIC8vIEZJWE1FOiBJdCBpcyBub3QgY2xlYXIgdGhhdCBNZWRp
YSBlbGVtZW50cyBuZWVkIG9yIHdhbnQgdGhpcyB1cGRhdGVXaWRnZXQoKSBjYWxsLgotI2lmIEVO
QUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIGVsc2UgaWYgKGVsZW1lbnQuaXNNZWRp
YUVsZW1lbnQoKSkKLSAgICAgICAgdG9IVE1MTWVkaWFFbGVtZW50KGVsZW1lbnQpLnVwZGF0ZVdp
ZGdldChDcmVhdGVBbnlXaWRnZXRUeXBlKTsKLSNlbmRpZgotICAgIGVsc2UKKyAgICB9IGVsc2UK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKICAgICAvLyBJdCdzIHBvc3NpYmxlIHRo
ZSByZW5kZXJlciB3YXMgZGVzdHJveWVkIGJlbG93IHVwZGF0ZVdpZGdldCgpIHNpbmNlIGxvYWRp
bmcgYSBwbHVnaW4gbWF5IGV4ZWN1dGUgYXJiaXRyYXJ5IEphdmFTY3JpcHQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuY3BwCmluZGV4IDFlNGQ1NTZjMmI2ODRiZTY2M2JkNzJhZjRhMThhZTBiNjU5MTE3
NmIuLjcwNWNjOTMwMmI4MzhjNDAxNzg3YWQxODY0MjRiNTgzZjZjNTgzNTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuY3BwCkBAIC04MiwxMCArODIsNiBAQCBib29sIFNldHRpbmdzOjpnQVZGb3Vu
ZGF0aW9uRW5hYmxlZCA9IGZhbHNlOwogYm9vbCBTZXR0aW5nczo6Z1FUS2l0RW5hYmxlZCA9IHRy
dWU7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotYm9vbCBT
ZXR0aW5nczo6Z1ZpZGVvUGx1Z2luUHJveHlFbmFibGVkID0gdHJ1ZTsKLSNlbmRpZgotCiBib29s
IFNldHRpbmdzOjpnTW9ja1Njcm9sbGJhcnNFbmFibGVkID0gZmFsc2U7CiBib29sIFNldHRpbmdz
OjpnVXNlc092ZXJsYXlTY3JvbGxiYXJzID0gZmFsc2U7CiAKQEAgLTYwMCwxNyArNTk2LDYgQEAg
dm9pZCBTZXR0aW5nczo6c2V0UVRLaXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKIH0KICNlbmRpZgog
Ci0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi12b2lkIFNldHRpbmdzOjpzZXRW
aWRlb1BsdWdpblByb3h5RW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgaWYgKGdWaWRlb1Bs
dWdpblByb3h5RW5hYmxlZCA9PSBlbmFibGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBnVmlk
ZW9QbHVnaW5Qcm94eUVuYWJsZWQgPSBlbmFibGVkOwotICAgIEhUTUxNZWRpYUVsZW1lbnQ6OnJl
c2V0TWVkaWFFbmdpbmVzKCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBTZXR0aW5nczo6c2V0U2Nyb2xs
aW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgbV9zY3Jv
bGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkID0gZW5hYmxlZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaAppbmRleCAzNzc3Y2VlZmU3YjM5MTNjMzBmMzI1MThmODFlYWUwYWYxYTIwMWM5Li43YjU0
NDE0ZDc4YjBjMzZhN2QzOTFjZWMxMThlNTA4M2IwYWNkOTM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5oCkBAIC0yNTAsMTEgKzI1MCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBsb3dQb3dl
clZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZCgpIHsgcmV0dXJuIGdMb3dQb3dlclZpZGVvQXVk
aW9CdWZmZXJTaXplRW5hYmxlZDsgfQogICAgIHN0YXRpYyB2b2lkIHNldExvd1Bvd2VyVmlkZW9B
dWRpb0J1ZmZlclNpemVFbmFibGVkKGJvb2wpOwogCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9G
T1JfVklERU8pCi0gICAgc3RhdGljIHZvaWQgc2V0VmlkZW9QbHVnaW5Qcm94eUVuYWJsZWQoYm9v
bCBmbGFnKTsKLSAgICBzdGF0aWMgYm9vbCBpc1ZpZGVvUGx1Z2luUHJveHlFbmFibGVkKCkgeyBy
ZXR1cm4gZ1ZpZGVvUGx1Z2luUHJveHlFbmFibGVkOyB9Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JN
KElPUykKICAgICBzdGF0aWMgdm9pZCBzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlKHVu
c2lnbmVkKTsKICAgICBzdGF0aWMgdW5zaWduZWQgYXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlk
ZSgpOwpAQCAtMzYwLDEwICszNTUsNiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBkb3VibGUgZ0hp
ZGRlblBhZ2VET01UaW1lckFsaWdubWVudEludGVydmFsOwogCiAgICAgc3RhdGljIGJvb2wgZ0xv
d1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkOwotCi0jaWYgRU5BQkxFKFBMVUdJTl9Q
Uk9YWV9GT1JfVklERU8pCi0gICAgc3RhdGljIGJvb2wgZ1ZpZGVvUGx1Z2luUHJveHlFbmFibGVk
OwotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKaW5kZXgg
MzY4YWRkYzFhNDYxYmI0YTY5ZmQ5YTlkM2Q4ZjQzMjU1ZGVmNWZiYS4uODg2ZmRjNjAzOGYyYjBj
ZTIzMjEzNTdmZGE1NTFhZmMyYjRiNTZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaApAQCAtOTksMTAgKzk5LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBZ2dyZXNzaXZlbHlSZXRhaW5UaWxl
cyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkVGVtcG9yYXJpbHlSZXRhaW5UaWxlQ29ob3J0cyhjb25zdCBHcmFwaGlj
c0xheWVyKikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9Y
WV9GT1JfVklERU8pCi0gICAgdmlydHVhbCBib29sIG1lZGlhTGF5ZXJNdXN0QmVVcGRhdGVkT25N
YWluVGhyZWFkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSNlbmRpZgotCiAjaWZuZGVmIE5E
RUJVRwogICAgIC8vIFJlbmRlckxheWVyQmFja2luZyBvdmVycmlkZXMgdGhpcyB0byB2ZXJpZnkg
dGhhdCBpdCBpcyBub3QKICAgICAvLyBjdXJyZW50bHkgcGFpbnRpbmcgY29udGVudHMuIEFuIEFT
U0VSVCBmYWlscywgaWYgaXQgaXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggMzEwNDE4ZTE0NjJmOTQ1MTU1ZTE1ZmU3YWVkMmNi
YTUwNTQxYWM5NS4uZWMzNGZhMzc3NjdkNmU3NGY4Yjg2ZWZmMzI5MjkwNDgzNDQxMmEwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApA
QCAtMTQ0LDEyICsxNDQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhbkxvYWRQb3N0
ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRQb3N0ZXIo
Y29uc3QgU3RyaW5nJikgeyB9CiAKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykK
LSAgICB2aXJ0dWFsIHZvaWQgZGVsaXZlck5vdGlmaWNhdGlvbihNZWRpYVBsYXllclByb3h5Tm90
aWZpY2F0aW9uVHlwZSkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldE1lZGlhUGxheWVyUHJveHko
V2ViTWVkaWFQbGF5ZXJQcm94eSopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9scyhi
b29sKSB7IH0KLSNlbmRpZgotCiAgICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3Jp
Z2luKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKQEAgLTIxMywxMSArMjA3LDYgQEAgc3RhdGljIFZlY3RvcjxNZWRpYVBsYXllckZhY3Rvcnkq
PiYgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKFJlcXVlcnlFbmdpbmVPcHRpb25zIHIKIAogICAgIGVu
Z2luZXNRdWVyaWVkID0gdHJ1ZTsKIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVP
KQotICAgIGlmIChTZXR0aW5nczo6aXNWaWRlb1BsdWdpblByb3h5RW5hYmxlZCgpKQotICAgICAg
ICBNZWRpYVBsYXllclByaXZhdGVJT1M6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoYWRkTWVkaWFFbmdp
bmUpOwotI2VuZGlmCi0KICNpZiBVU0UoQVZGT1VOREFUSU9OKQogICAgIGlmIChTZXR0aW5nczo6
aXNBVkZvdW5kYXRpb25FbmFibGVkKCkpIHsKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTM0MCwx
OSArMzI5LDcgQEAgTWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50KiBj
bGllbnQpCiAgICAgLCBtX3ByaXZhdGVCcm93c2luZyhmYWxzZSkKICAgICAsIG1fc2hvdWxkUHJl
cGFyZVRvUmVuZGVyKGZhbHNlKQogICAgICwgbV9jb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZy
b21FeHRlbnNpb24oZmFsc2UpCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0g
ICAgLCBtX3BsYXllclByb3h5KDApCi0jZW5kaWYKIHsKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZ
X0ZPUl9WSURFTykKLSAgICBWZWN0b3I8TWVkaWFQbGF5ZXJGYWN0b3J5Kj4mIGVuZ2luZXMgPSBp
bnN0YWxsZWRNZWRpYUVuZ2luZXMoKTsKLSAgICBpZiAoU2V0dGluZ3M6OmlzVmlkZW9QbHVnaW5Q
cm94eUVuYWJsZWQoKSAmJiAhZW5naW5lcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV9jdXJyZW50
TWVkaWFFbmdpbmUgPSBlbmdpbmVzWzBdOwotICAgICAgICBtX3ByaXZhdGUgPSBlbmdpbmVzWzBd
LT5jb25zdHJ1Y3Rvcih0aGlzKTsKLSAgICAgICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCi0g
ICAgICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQo
dGhpcyk7Ci0gICAgfQotI2VuZGlmCiB9CiAKIE1lZGlhUGxheWVyOjp+TWVkaWFQbGF5ZXIoKQpA
QCAtNDQ2LDkgKzQyMyw2IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5n
aW5lKE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCkKICAgICAgICAgbV9wcml2YXRlID0gZW5n
aW5lLT5jb25zdHJ1Y3Rvcih0aGlzKTsKICAgICAgICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQp
CiAgICAgICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllckVuZ2luZVVwZGF0
ZWQodGhpcyk7Ci0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgICAgIG1f
cHJpdmF0ZS0+c2V0TWVkaWFQbGF5ZXJQcm94eShtX3BsYXllclByb3h5KTsKLSNlbmRpZgogICAg
ICAgICBtX3ByaXZhdGUtPnNldFByaXZhdGVCcm93c2luZ01vZGUobV9wcml2YXRlQnJvd3Npbmcp
OwogICAgICAgICBtX3ByaXZhdGUtPnNldFByZWxvYWQobV9wcmVsb2FkKTsKICAgICAgICAgbV9w
cml2YXRlLT5zZXRQcmVzZXJ2ZXNQaXRjaChwcmVzZXJ2ZXNQaXRjaCgpKTsKQEAgLTg1NywyNSAr
ODMxLDcgQEAgYm9vbCBNZWRpYVBsYXllcjo6aXNBdmFpbGFibGUoKQogICAgIHJldHVybiAhaW5z
dGFsbGVkTWVkaWFFbmdpbmVzKCkuaXNFbXB0eSgpOwogfSAKIAotI2lmIEVOQUJMRShQTFVHSU5f
UFJPWFlfRk9SX1ZJREVPKQotdm9pZCBNZWRpYVBsYXllcjo6ZGVsaXZlck5vdGlmaWNhdGlvbihN
ZWRpYVBsYXllclByb3h5Tm90aWZpY2F0aW9uVHlwZSBub3RpZmljYXRpb24pCi17Ci0gICAgbV9w
cml2YXRlLT5kZWxpdmVyTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbik7Ci19Ci0KLXZvaWQgTWVk
aWFQbGF5ZXI6OnNldE1lZGlhUGxheWVyUHJveHkoV2ViTWVkaWFQbGF5ZXJQcm94eSogcHJveHkp
Ci17Ci0gICAgbV9wbGF5ZXJQcm94eSA9IHByb3h5OwotICAgIG1fcHJpdmF0ZS0+c2V0TWVkaWFQ
bGF5ZXJQcm94eShwcm94eSk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXI6OnNldENvbnRyb2xzKGJv
b2wgY29udHJvbHMpCi17Ci0gICAgbV9wcml2YXRlLT5zZXRDb250cm9scyhjb250cm9scyk7Ci19
Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKSB8fCBVU0UoTkFU
SVZFX0ZVTExTQ1JFRU5fVklERU8pCisjaWYgVVNFKE5BVElWRV9GVUxMU0NSRUVOX1ZJREVPKQog
dm9pZCBNZWRpYVBsYXllcjo6ZW50ZXJGdWxsc2NyZWVuKCkKIHsKICAgICBtX3ByaXZhdGUtPmVu
dGVyRnVsbHNjcmVlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmgKaW5kZXggNzE1YmZhMmY2YzE3Y2Q1N2Y4ZmI4MGVlYTcxZjQwN2YyMjg5Njdi
Yy4uMzU2ZGQ4N2MyZjc2YTI1YWU3MTIzY2JmNWU1ZTQ4NmU5YjlhNjZhMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0yOCw5ICsyOCw2
IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCi0j
aWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0jaW5jbHVkZSAiTWVkaWFQbGF5ZXJQ
cm94eS5oIgotI2VuZGlmCiAKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1
ZGUgIkNETVNlc3Npb24uaCIKQEAgLTQ1MSwxMyArNDQ4LDcgQEAgcHVibGljOgogICAgIGJvb2wg
Y2FuTG9hZFBvc3RlcigpIGNvbnN0OwogICAgIHZvaWQgc2V0UG9zdGVyKGNvbnN0IFN0cmluZyYp
OwogCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgdm9pZCBkZWxpdmVy
Tm90aWZpY2F0aW9uKE1lZGlhUGxheWVyUHJveHlOb3RpZmljYXRpb25UeXBlIG5vdGlmaWNhdGlv
bik7Ci0gICAgdm9pZCBzZXRNZWRpYVBsYXllclByb3h5KFdlYk1lZGlhUGxheWVyUHJveHkqIHBy
b3h5KTsKLSAgICB2b2lkIHNldENvbnRyb2xzKGJvb2wpOwotI2VuZGlmCi0KLSNpZiBFTkFCTEUo
UExVR0lOX1BST1hZX0ZPUl9WSURFTykgfHwgVVNFKE5BVElWRV9GVUxMU0NSRUVOX1ZJREVPKQor
I2lmIFVTRShOQVRJVkVfRlVMTFNDUkVFTl9WSURFTykKICAgICB2b2lkIGVudGVyRnVsbHNjcmVl
bigpOwogICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW4oKTsKICNlbmRpZgpAQCAtNjExLDkgKzYwMiw2
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZzsKICAgICBib29sIG1fc2hv
dWxkUHJlcGFyZVRvUmVuZGVyOwogICAgIGJvb2wgbV9jb250ZW50TUlNRVR5cGVXYXNJbmZlcnJl
ZEZyb21FeHRlbnNpb247Ci0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAg
V2ViTWVkaWFQbGF5ZXJQcm94eSogbV9wbGF5ZXJQcm94eTsgICAgLy8gbm90IG93bmVkIG9yIHVz
ZWQsIHBhc3NlZCB0byBtX3ByaXZhdGUKLSNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJD
RSkKICAgICBSZWZQdHI8TWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50PiBtX21lZGlhU291cmNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclBy
aXZhdGUuaAppbmRleCA1ZjZlMDg5OWVjMDQ0NGI3MWNkNmYwMTkwMmE2ZWQ2ZWIzNzk5YzgxLi44
NTgwN2VmZjkxM2Y2Y2ZkMzk2ZWZmODNjMTNmYjAyZTljZTliNGYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAt
MTQyLDEzICsxNDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhbkxvYWRQb3N0ZXIo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRQb3N0ZXIoY29u
c3QgU3RyaW5nJikgeyB9CiAKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKLSAg
ICB2aXJ0dWFsIHZvaWQgZGVsaXZlck5vdGlmaWNhdGlvbihNZWRpYVBsYXllclByb3h5Tm90aWZp
Y2F0aW9uVHlwZSkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldE1lZGlhUGxheWVyUHJveHkoV2Vi
TWVkaWFQbGF5ZXJQcm94eSopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9scyhib29s
KSB7IH0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pIHx8IFVT
RShOQVRJVkVfRlVMTFNDUkVFTl9WSURFTykKKyNpZiBVU0UoTkFUSVZFX0ZVTExTQ1JFRU5fVklE
RU8pCiAgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbigpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBleGl0RnVsbHNjcmVlbigpIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCAyZjA2
ZDRiNjc1MTFlZTZjZWM0OGY0ZGUxNDE0ZDZmYzRmM2ViNjY0Li5mZjZiOWJmOTEyMTM1ZTgwYzM5
M2Q2Y2FlZTdmNDA4NzlhMDYwNjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTE1NTMsMjAgKzE1NTMs
OSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlR2VvbWV0cnkoZmxvYXQgcGFnZVNjYWxl
RmFjdG9yLCBjb25zdCBGbG9hdFBvaW50JiBwbwogICAgICAgICBGbG9hdFBvaW50IGxheWVyUG9z
aXRpb24obV9wb3NpdGlvbi54KCkgKyBtX2FuY2hvclBvaW50LngoKSAqIG1fc2l6ZS53aWR0aCgp
LCBtX3Bvc2l0aW9uLnkoKSArIG1fYW5jaG9yUG9pbnQueSgpICogbV9zaXplLmhlaWdodCgpKTsK
ICAgICAgICAgRmxvYXRSZWN0IGxheWVyQm91bmRzKG1fYm91bmRzT3JpZ2luLCBtX3NpemUpOwog
Ci0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgICAgIC8vIEZJWE1FOiBD
b25zaWRlciBtb3ZpbmcgdGhlIG1haW4gdGhyZWFkIGxvZ2ljIGludG8gUGxhdGZvcm1DQUxheWVy
LgotICAgICAgICBpZiAobWVkaWFMYXllck11c3RCZVVwZGF0ZWRPbk1haW5UaHJlYWQoKSAmJiBX
ZWJUaHJlYWRJc0N1cnJlbnQoKSkgewotICAgICAgICAgICAgbV9zdHJ1Y3R1cmFsTGF5ZXItPnNl
dFBvc2l0aW9uT25NYWluVGhyZWFkKGxheWVyUG9zaXRpb24pOwotICAgICAgICAgICAgbV9zdHJ1
Y3R1cmFsTGF5ZXItPnNldEJvdW5kc09uTWFpblRocmVhZChsYXllckJvdW5kcyk7Ci0gICAgICAg
ICAgICBtX3N0cnVjdHVyYWxMYXllci0+c2V0QW5jaG9yUG9pbnRPbk1haW5UaHJlYWQobV9hbmNo
b3JQb2ludCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0jZW5kaWYKICAgICAgICAgbV9zdHJ1Y3R1cmFs
TGF5ZXItPnNldFBvc2l0aW9uKGxheWVyUG9zaXRpb24pOwogICAgICAgICBtX3N0cnVjdHVyYWxM
YXllci0+c2V0Qm91bmRzKGxheWVyQm91bmRzKTsKICAgICAgICAgbV9zdHJ1Y3R1cmFsTGF5ZXIt
PnNldEFuY2hvclBvaW50KG1fYW5jaG9yUG9pbnQpOwotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlf
Rk9SX1ZJREVPKQotICAgICAgICB9Ci0jZW5kaWYKIAogICAgICAgICBpZiAoTGF5ZXJNYXAqIGxh
eWVyQ2xvbmVNYXAgPSBtX3N0cnVjdHVyYWxMYXllckNsb25lcy5nZXQoKSkgewogICAgICAgICAg
ICAgTGF5ZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGxheWVyQ2xvbmVNYXAtPmVuZCgpOwpA
QCAtMTU5MSwyMCArMTU4MCw5IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVHZW9tZXRy
eShmbG9hdCBwYWdlU2NhbGVGYWN0b3IsIGNvbnN0IEZsb2F0UG9pbnQmIHBvCiAgICAgICAgIGFk
anVzdGVkUG9zaXRpb24gPSBGbG9hdFBvaW50KHNjYWxlZEFuY2hvclBvaW50LngoKSAqIHNjYWxl
ZFNpemUud2lkdGgoKSAtIHBpeGVsQWxpZ25tZW50T2Zmc2V0LndpZHRoKCksIHNjYWxlZEFuY2hv
clBvaW50LnkoKSAqIHNjYWxlZFNpemUuaGVpZ2h0KCkgLSBwaXhlbEFsaWdubWVudE9mZnNldC5o
ZWlnaHQoKSk7CiAgICAgfQogCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0g
ICAgLy8gRklYTUU6IENvbnNpZGVyIG1vdmluZyB0aGUgbWFpbiB0aHJlYWQgbG9naWMgaW50byBQ
bGF0Zm9ybUNBTGF5ZXIuCi0gICAgaWYgKG1lZGlhTGF5ZXJNdXN0QmVVcGRhdGVkT25NYWluVGhy
ZWFkKCkgJiYgV2ViVGhyZWFkSXNDdXJyZW50KCkpIHsKLSAgICAgICAgbV9sYXllci0+c2V0UG9z
aXRpb25Pbk1haW5UaHJlYWQoYWRqdXN0ZWRQb3NpdGlvbik7Ci0gICAgICAgIG1fbGF5ZXItPnNl
dEJvdW5kc09uTWFpblRocmVhZChhZGp1c3RlZEJvdW5kcyk7Ci0gICAgICAgIG1fbGF5ZXItPnNl
dEFuY2hvclBvaW50T25NYWluVGhyZWFkKHNjYWxlZEFuY2hvclBvaW50KTsKLSAgICB9IGVsc2Ug
ewotI2VuZGlmCiAgICAgbV9sYXllci0+c2V0UG9zaXRpb24oYWRqdXN0ZWRQb3NpdGlvbik7CiAg
ICAgbV9sYXllci0+c2V0Qm91bmRzKGFkanVzdGVkQm91bmRzKTsKICAgICBtX2xheWVyLT5zZXRB
bmNob3JQb2ludChzY2FsZWRBbmNob3JQb2ludCk7Ci0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9G
T1JfVklERU8pCi0gICAgfQotI2VuZGlmCiAKICAgICBpZiAoTGF5ZXJNYXAqIGxheWVyQ2xvbmVN
YXAgPSBtX2xheWVyQ2xvbmVzLmdldCgpKSB7CiAgICAgICAgIExheWVyTWFwOjpjb25zdF9pdGVy
YXRvciBlbmQgPSBsYXllckNsb25lTWFwLT5lbmQoKTsKQEAgLTIwOTQsMTggKzIwNzIsOCBAQCB2
b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNSZWN0cygpCiAgICAgaWYgKGdhaW5l
ZE9yTG9zdENsaXBwaW5nTGF5ZXIpCiAgICAgICAgIG5vdGVTdWJsYXllcnNDaGFuZ2VkKERvbnRT
Y2hlZHVsZUZsdXNoKTsKIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAg
IC8vIEZJWE1FOiBDb25zaWRlciBtb3ZpbmcgdGhlIG1haW4gdGhyZWFkIGxvZ2ljIGludG8gUGxh
dGZvcm1DQUxheWVyLgotICAgIGlmIChtZWRpYUxheWVyTXVzdEJlVXBkYXRlZE9uTWFpblRocmVh
ZCgpICYmIFdlYlRocmVhZElzQ3VycmVudCgpKSB7Ci0gICAgICAgIG1fY29udGVudHNMYXllci0+
c2V0UG9zaXRpb25Pbk1haW5UaHJlYWQoY29udGVudE9yaWdpbik7Ci0gICAgICAgIG1fY29udGVu
dHNMYXllci0+c2V0Qm91bmRzT25NYWluVGhyZWFkKGNvbnRlbnRCb3VuZHMpOwotICAgIH0gZWxz
ZSB7Ci0jZW5kaWYKICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldFBvc2l0aW9uKGNvbnRlbnRPcmln
aW4pOwogICAgIG1fY29udGVudHNMYXllci0+c2V0Qm91bmRzKGNvbnRlbnRCb3VuZHMpOwotI2lm
IEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKSAKLSAgICB9Ci0jZW5kaWYKIAogICAgIGlm
IChtX2NvbnRlbnRzTGF5ZXJDbG9uZXMpIHsKICAgICAgICAgTGF5ZXJNYXA6OmNvbnN0X2l0ZXJh
dG9yIGVuZCA9IG1fY29udGVudHNMYXllckNsb25lcy0+ZW5kKCk7CkBAIC0zMjIzLDE2ICszMTkx
LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldHVwQ29udGVudHNMYXllcihQbGF0Zm9ybUNB
TGF5ZXIqIGNvbnRlbnRzTGF5ZXIpCiAgICAgfQogfQogCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9Y
WV9GT1JfVklERU8pCi1ib29sIEdyYXBoaWNzTGF5ZXJDQTo6bWVkaWFMYXllck11c3RCZVVwZGF0
ZWRPbk1haW5UaHJlYWQoKSBjb25zdAotewotICAgIGlmIChtX2NvbnRlbnRzTGF5ZXJQdXJwb3Nl
ICE9IENvbnRlbnRzTGF5ZXJGb3JNZWRpYSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
cmV0dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5tZWRpYUxheWVyTXVzdEJlVXBkYXRlZE9uTWFp
blRocmVhZCgpOwotfQotI2VuZGlmCi0KIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBHcmFw
aGljc0xheWVyQ0E6OmZpbmRPck1ha2VDbG9uZShDbG9uZUlEIGNsb25lSUQsIFBsYXRmb3JtQ0FM
YXllciAqc291cmNlTGF5ZXIsIExheWVyTWFwKiBjbG9uZXMsIENsb25lTGV2ZWwgY2xvbmVMZXZl
bCkKIHsKICAgICBpZiAoIXNvdXJjZUxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAppbmRleCBkODhhNmU1MjExOWE2
NDRmZmJjOGExNzg4Zjg1MWIzMzQwZjg3MWNiLi44NmRhZDM3NDY3MmJkNmUzYjE0OWI3MDdhZGIw
ZmQ5NTE1NWMyMWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApAQCAtMjc1LDEwICsyNzUsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc2V0dXBDb250ZW50c0xheWVyKFBsYXRmb3JtQ0FMYXllciopOwogICAgIFBsYXRm
b3JtQ0FMYXllciogY29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNMYXll
ci5nZXQoKTsgfQogCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgYm9v
bCBtZWRpYUxheWVyTXVzdEJlVXBkYXRlZE9uTWFpblRocmVhZCgpIGNvbnN0OwotI2VuZGlmCi0K
ICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwbGljYXRlZEJ5TGF5ZXIoR3JhcGhpY3NMYXllciopIG92
ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERlYnVnQm9yZGVySW5mbyhDb2xvciYsIGZs
b2F0JiB3aWR0aCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCA3NWViODcyODgzZjg1OWQwYTczMjNi
YTcwMGJkMGRhMjAwYmEwYTE2Li4wOTMyYTVhZWQ0YzQ0MGJkNDBkZmRjNTFlMWI1YmRiMTk5Yjc5
Nzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9i
amVjdC5jcHAKQEAgLTU4LDEwICs1OCw2IEBACiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgogI2luY2x1
ZGUgPHd0Zi9TdGFja1N0YXRzLmg+CiAKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURF
TykKLSNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpAQCAtNjUzLDExICs2NDksNiBA
QCBDdXJzb3JEaXJlY3RpdmUgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmdldEN1cnNvcihjb25zdCBM
YXlvdXRQb2ludCYgcG9pbnQsIEN1cnNvcgogCiBib29sIFJlbmRlckVtYmVkZGVkT2JqZWN0Ojpj
YW5IYXZlQ2hpbGRyZW4oKSBjb25zdAogewotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJ
REVPKQotICAgIGlmIChmcmFtZU93bmVyRWxlbWVudCgpLmlzTWVkaWFFbGVtZW50KCkpCi0gICAg
ICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi0KICAgICBpZiAoaXNTbmFwc2hvdHRlZFBsdWdJbigp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBhZjU4MzA4M2QxZmIzYWU5ZWQ3ZTZjOWVlYjdk
MDk3ZjQyNmJjZTZiLi43MTI5NTdiMGNhZjVmYWI5ZmY4OTcwYjVhNWI4OGI4ZGQ5ODM1ZWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApA
QCAtMjYwMCwxMSArMjYwMCw0IEBAIGRvdWJsZSBSZW5kZXJMYXllckJhY2tpbmc6OmJhY2tpbmdT
dG9yZU1lbW9yeUVzdGltYXRlKCkgY29uc3QKICAgICByZXR1cm4gYmFja2luZ01lbW9yeTsKIH0K
IAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotYm9vbCBSZW5kZXJMYXllckJh
Y2tpbmc6Om1lZGlhTGF5ZXJNdXN0QmVVcGRhdGVkT25NYWluVGhyZWFkKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gcmVuZGVyZXIoKS5mcmFtZSgpLnBhZ2UoKSAmJiByZW5kZXJlcigpLmZyYW1lKCku
cGFnZSgpLT5zZXR0aW5ncygpLmlzVmlkZW9QbHVnaW5Qcm94eUVuYWJsZWQoKTsKLX0KLSNlbmRp
ZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggMDcxZTY2ODA2ZjA5MTRlZDFlNmZlZmE4NzE1YWRj
NmM0NGIyYTgwYi4uZDFiZWY3NDQyMDUyYzY1MzAxMWQ4NDYwN2JmYmQwZWIyMmZmZDcwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMTkx
LDEwICsxOTEsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZEFnZ3Jlc3NpdmVs
eVJldGFpblRpbGVzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkVGVtcG9yYXJpbHlSZXRhaW5UaWxlQ29ob3J0cyhjb25zdCBHcmFw
aGljc0xheWVyKikgY29uc3Qgb3ZlcnJpZGU7CiAKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZP
Ul9WSURFTykKLSAgICB2aXJ0dWFsIGJvb2wgbWVkaWFMYXllck11c3RCZVVwZGF0ZWRPbk1haW5U
aHJlYWQoKSBjb25zdCBvdmVycmlkZTsKLSNlbmRpZgotCiAjaWZuZGVmIE5ERUJVRwogICAgIHZp
cnR1YWwgdm9pZCB2ZXJpZnlOb3RQYWludGluZygpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDBhNmY5MDI3
NDBlNDcxMTNkN2RmOTM3N2Y0Y2IyODgxOWIwMTBlMDguLjBlNmI3MjA0ODhiODY2OTNmODE5MWYx
MWQzZDA4MTI3ZGE5YzA2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC03MywxMSArNzMsNiBAQAogI2luY2x1ZGUgIlJl
bmRlclNjcm9sbGJhci5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9W
SURFTykKLSNpbmNsdWRlICJIVE1MQXVkaW9FbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE1lZGlh
RWxlbWVudC5oIgotI2VuZGlmCi0KICNpZm5kZWYgTkRFQlVHCiAjaW5jbHVkZSAiUmVuZGVyVHJl
ZUFzVGV4dC5oIgogI2VuZGlmCkBAIC0yMzU2LDE5ICsyMzUxLDYgQEAgYm9vbCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JWaWRlbyhSZW5kZXJMYXllck1vZGVs
T2JqZWN0JgogICAgICAgICBSZW5kZXJWaWRlbyYgdmlkZW8gPSB0b1JlbmRlclZpZGVvKHJlbmRl
cmVyKTsKICAgICAgICAgcmV0dXJuICh2aWRlby5yZXF1aXJlc0ltbWVkaWF0ZUNvbXBvc2l0aW5n
KCkgfHwgdmlkZW8uc2hvdWxkRGlzcGxheVZpZGVvKCkpICYmIGNhbkFjY2VsZXJhdGVWaWRlb1Jl
bmRlcmluZyh2aWRlbyk7CiAgICAgfQotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVP
KQotICAgIGlmIChyZW5kZXJlci5pc1dpZGdldCgpKSB7Ci0gICAgICAgIGlmICghbV9oYXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAg
IEVsZW1lbnQqIGVsZW1lbnQgPSByZW5kZXJlci5lbGVtZW50KCk7Ci0gICAgICAgIGlmICghZWxl
bWVudCB8fCAoIWlzSFRNTFZpZGVvRWxlbWVudChlbGVtZW50KSAmJiAhaXNIVE1MQXVkaW9FbGVt
ZW50KGVsZW1lbnQpKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBIVE1M
TWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSB0b0hUTUxNZWRpYUVsZW1lbnQoZWxlbWVudCk7
Ci0gICAgICAgIHJldHVybiBtZWRpYUVsZW1lbnQtPnBsYXllcigpID8gbWVkaWFFbGVtZW50LT5w
bGF5ZXIoKS0+c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIDogZmFsc2U7Ci0gICAgfQot
I2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQogI2Vsc2UKICAgICBVTlVT
RURfUEFSQU0ocmVuZGVyZXIpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDBiNzQzM2Mx
NTliZWFlZWE3Yjg5NTdkODM0YjQ5ZjcxYTM2ZGMzY2IuLmUyYWE5NjhiMDJmMDNmZjE1YmFjMWNh
ZjExMGMyMWJiZDliZTE4MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0xNjAsOSArMTYwLDYgQEAg
RU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiBFTkFC
TEVfUEFHRV9WSVNJQklMSVRZX0FQSSA9IEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJOwogRU5B
QkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQoUExBVEZPUk1fTkFN
RSkpOwogRU5BQkxFX1BERktJVF9QTFVHSU5fbWFjb3N4ID0gRU5BQkxFX1BERktJVF9QTFVHSU47
Ci1FTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTyA9ICQoRU5BQkxFX1BMVUdJTl9QUk9YWV9G
T1JfVklERU9fJChQTEFURk9STV9OQU1FKSk7Ci1FTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURF
T19pcGhvbmVvcyA9IEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVPOwotRU5BQkxFX1BMVUdJ
Tl9QUk9YWV9GT1JfVklERU9faXBob25lc2ltdWxhdG9yID0gJChFTkFCTEVfUExVR0lOX1BST1hZ
X0ZPUl9WSURFT19pcGhvbmVvcyk7CiBFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCA9IEVOQUJMRV9Q
Uk9HUkVTU19FTEVNRU5UOwogRU5BQkxFX1BST01JU0VTID0gRU5BQkxFX1BST01JU0VTOwogRU5B
QkxFX1BST1hJTUlUWV9FVkVOVFMgPSA7CkBAIC0yNDEsNCArMjM4LDQgQEAgRU5BQkxFX0ZUTF9K
SVRfaXBob25lc2ltdWxhdG9yID0gOwogCiBFTkFCTEVfTExJTlRfQ19MT09QID0gOwogCi1GRUFU
VVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVO
QUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElP
TklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFC
TEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQk9Y
X0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NT
X0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykgJChFTkFCTEVfQ1NT
X0ZJTFRFUlMpICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX0lNQUdFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JF
R0lPTlMpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTU19TVElDS1lfUE9TSVRJT04p
ICQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCkgJChFTkFCTEVf
Q1NTM19DT05ESVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1Mz
X1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NV
U1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxF
X0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxF
X0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9E
T000X0VWRU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJM
RV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZPTlRfTE9B
RF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVO
QUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJ
TkcpICQoRU5BQkxFX0hJR0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVO
QUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJM
RV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9U
SU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOU1BFQ1RPUikgJChFTkFC
TEVfSU9TX0FJUlBMQVkpICQoRU5BQkxFX0lPU19URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX0xF
R0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykg
JChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJ
TykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxF
X01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9T
T1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQp
ICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05B
VklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9Q
QUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QTFVH
SU5fUFJPWFlfRk9SX1ZJREVPKSAkKEVOQUJMRV9QUk9HUkVTU19FTEVNRU5UKSAkKEVOQUJMRV9Q
Uk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJ
WF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUp
ICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVF
UlkpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQo
RU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVf
U1VCUElYRUxfTEFZT1VUKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9O
VFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URU1QTEFU
RV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5U
UykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkg
JChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9EQVRBQ1VFX1ZB
TFVFKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFC
TEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfU09DS0VUUykg
JChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpICQoRU5BQkxFX1hI
Ul9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9MTElO
VF9DX0xPT1ApICQoRkVBVFVSRV9ERUZJTkVTXyQoUExBVEZPUk1fTkFNRSkpOworRkVBVFVSRV9E
RUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVf
QVZGX0NBUFRJT05TKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcp
ICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NI
QU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNP
UkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJ
Q0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxU
RVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRB
VElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05T
KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVO
QUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NTUzNf
Q09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhU
X0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01f
U0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRB
TElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRB
SUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9F
VkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5D
UllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GT05UX0xPQURfRVZF
TlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVf
R0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAk
KEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVf
U0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5Q
VVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9D
QUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1IpICQoRU5BQkxFX0lP
U19BSVJQTEFZKSAkKEVOQUJMRV9JT1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9MRUdBQ1lf
Q1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5B
QkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQo
RU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRI
TUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNF
KSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVO
QUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FU
T1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9W
SVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUFJPR1JFU1Nf
RUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQo
RU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9S
RVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxF
X1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxf
REFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFCTEVfU1VCVExFX0NSWVBU
TykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElP
TikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAk
KEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFC
TEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykg
JChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChF
TkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChF
TkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQlZUVF9S
RUdJT05TKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRM
X0pJVCkgJChFTkFCTEVfTExJTlRfQ19MT09QKSAkKEZFQVRVUkVfREVGSU5FU18kKFBMQVRGT1JN
X05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2lu
Q29udGFpbmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5D
b250YWluZXJQcml2YXRlLmgKaW5kZXggZDQwM2RmMzc0OWM4ZTNhMDZhNGIxMGY2OTRjNjk3MDJi
ZGM5YTQ5My4uZWJiMGI5YjEyNmMwNzVhMTVlYzBjMjJjZjc5MGVmYjZhNGJmMjI2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250YWluZXJQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250YWluZXJQcml2
YXRlLmgKQEAgLTMyLDI4ICszMiwxMiBAQAogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgogI2Vu
ZGlmCiAKLSNpZiAhVEFSR0VUX09TX0lQSE9ORQotI2lmICFkZWZpbmVkKEVOQUJMRV9QTFVHSU5f
UFJPWFlfRk9SX1ZJREVPKQotI2RlZmluZSBFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTyAw
Ci0jZW5kaWYKLSNlbmRpZgotCi0jaWYgRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1JfVklERU8KLUBj
bGFzcyBXZWJNZWRpYVBsYXllclByb3h5OwotI2VuZGlmCi0KIEBpbnRlcmZhY2UgTlNPYmplY3Qg
KFdlYlBsdWdJbkNvbnRhaW5lclByaXZhdGUpCiAKIC0gKGlkKV93ZWJQbHVnaW5Db250YWluZXJD
aGVja0lmQWxsb3dlZFRvTG9hZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKVJlcXVlc3QgaW5GcmFt
ZTooTlNTdHJpbmcgKil0YXJnZXQgcmVzdWx0T2JqZWN0OihpZClvYmogc2VsZWN0b3I6KFNFTClz
ZWxlY3RvcjsKIAogLSAodm9pZClfd2ViUGx1Z2luQ29udGFpbmVyQ2FuY2VsQ2hlY2tJZkFsbG93
ZWRUb0xvYWRSZXF1ZXN0OihpZCljaGVja0lkZW50aWZpZXI7CiAKLSNpZiBFTkFCTEVfUExVR0lO
X1BST1hZX0ZPUl9WSURFTwotLSAodm9pZClfd2ViUGx1Z2luQ29udGFpbmVyU2V0TWVkaWFQbGF5
ZXJQcm94eTooV2ViTWVkaWFQbGF5ZXJQcm94eSAqKXByb3h5IGZvckVsZW1lbnQ6KERPTUVsZW1l
bnQgKillbGVtZW50OwotCi0tICh2b2lkKV93ZWJQbHVnaW5Db250YWluZXJQb3N0TWVkaWFQbGF5
ZXJOb3RpZmljYXRpb246KGludClub3RpZmljYXRpb24gZm9yRWxlbWVudDooRE9NRWxlbWVudCAq
KWVsZW1lbnQ7Ci0jZW5kaWYKLQogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC8vIENhbGwgd2hlbiB0
aGUgcGx1Zy1pbiBzaG93cy9oaWRlcyBpdHMgZnVsbC1zY3JlZW4gVUkuCiAtICh2b2lkKXdlYlBs
dWdJbkNvbnRhaW5lcldpbGxTaG93RnVsbFNjcmVlbkZvclZpZXc6KGlkKXBsdWdJblZpZXc7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIu
aCBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5oCmluZGV4
IGQ2MDQ3MjVjNzQzMTU0ZWEyYjM4ZmIxOTg2Mzg0MzEzOGI3MGViZjYuLjc0MDNiNWYzYTBiZmIw
Y2RlZmUzMGU5ZjE3ZmMzOGYzY2Y2YzE5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5oCkBAIC00NSw5ICs0NSw2IEBACiAgICAgTlNNdXRh
YmxlQXJyYXkgKl92aWV3czsKICAgICBCT09MIF9zdGFydGVkOwogICAgIE5TTXV0YWJsZVNldCAq
X2NoZWNrc0luUHJvZ3Jlc3M7Ci0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0g
ICAgTlNNdXRhYmxlQXJyYXkgKl92aWV3c05vdEluRG9jdW1lbnQ7Ci0jZW5kaWYKIH0KIAogI2lm
IFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCA4MDAw
MApAQCAtNjMsMTAgKzYwLDYgQEAKIAogLSAodm9pZClhZGRQbHVnaW46KE5TVmlldyAqKXZpZXc7
CiAtICh2b2lkKWRlc3Ryb3lQbHVnaW46KE5TVmlldyAqKXZpZXc7Ci0jaWYgRU5BQkxFKFBMVUdJ
Tl9QUk9YWV9GT1JfVklERU8pCi0tICh2b2lkKW1lZGlhUGx1Z0luUHJveHlWaWV3Q3JlYXRlZDoo
TlNWaWV3ICopdmlldzsKLSsgKHZvaWQpcGx1Z2luVmlld0hpZGRlbjooTlNWaWV3ICopdmlldzsK
LSNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQogKyAodm9pZClhZGRQbHVnSW5WaWV3OihOU1Zp
ZXcgKil2aWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVn
aW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250
cm9sbGVyLm1tCmluZGV4IDRhZDg5ODM4NzYxYzYxOTE3ZDE3ZTZiZDY5MDcwY2VkZGE0Y2Q0MzEu
LmM5YTUyMTAyZTI1ODE5YmRmYjgxMzcyNWMxNzA1OWY5YzI0ZGM4MTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KQEAgLTExOCwyNiAr
MTE4LDYgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUF1ZGlvU2Vzc2lvbigpCiB9CiAjZW5kaWYK
IAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotQGludGVyZmFjZSBOU1ZpZXcg
KFdlYlBsdWdpbkNvbnRyb2xsZXJBZGRpdGlvbnMpCi1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBpc01lZGlhUGx1Z0luUHJveHlWaWV3OwotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gTlNWaWV3
IChXZWJQbHVnaW5Db250cm9sbGVyQWRkaXRpb25zKQotCi0tIChCT09MKWlzTWVkaWFQbHVnSW5Q
cm94eVZpZXcKLXsKLSAgICByZXR1cm4gWyhOU051bWJlciAqKW9iamNfZ2V0QXNzb2NpYXRlZE9i
amVjdChzZWxmLCBAc2VsZWN0b3IoaXNNZWRpYVBsdWdJblByb3h5VmlldykpIGJvb2xWYWx1ZV07
Ci19Ci0KLS0gKHZvaWQpc2V0SXNNZWRpYVBsdWdJblByb3h5VmlldzooQk9PTClpc01lZGlhUGx1
Z0luUHJveHlWaWV3Ci17Ci0gICAgb2JqY19zZXRBc3NvY2lhdGVkT2JqZWN0KHNlbGYsIEBzZWxl
Y3Rvcihpc01lZGlhUGx1Z0luUHJveHlWaWV3KSwgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOmlz
TWVkaWFQbHVnSW5Qcm94eVZpZXddLCBPQkpDX0FTU09DSUFUSU9OX1JFVEFJTl9OT05BVE9NSUMp
OwotfQotCi1AZW5kCi0jZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0K
IEBpbXBsZW1lbnRhdGlvbiBXZWJQbHVnaW5Db250cm9sbGVyCiAKICNpZiBQTEFURk9STShJT1Mp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgODAwMDAKQEAgLTIzNCw5ICsy
MTQsNiBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplQXVkaW9TZXNzaW9uKCkKIHsKICAgICBbX3Zp
ZXdzIHJlbGVhc2VdOwogICAgIFtfY2hlY2tzSW5Qcm9ncmVzcyByZWxlYXNlXTsKLSNpZiBFTkFC
TEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKLSAgICBbX3ZpZXdzTm90SW5Eb2N1bWVudCByZWxl
YXNlXTsKLSNlbmRpZgogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIApAQCAtMjQ0LDkgKzIyMSw2
IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVBdWRpb1Nlc3Npb24oKQogLSAoQk9PTClwbHVnSW5z
QXJlUnVubmluZwogewogICAgIE5TVUludGVnZXIgcGx1Z2luVmlld0NvdW50ID0gW192aWV3cyBj
b3VudF07Ci0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgcGx1Z2luVmll
d0NvdW50ICs9IFtfdmlld3NOb3RJbkRvY3VtZW50IGNvdW50XTsKLSNlbmRpZgogICAgIHJldHVy
biBfc3RhcnRlZCAmJiBwbHVnaW5WaWV3Q291bnQ7CiB9CiAKQEAgLTMzNCwxMiArMzA4LDYgQEAg
c3RhdGljIHZvaWQgaW5pdGlhbGl6ZUF1ZGlvU2Vzc2lvbigpCiAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCB2aWV3c0NvdW50OyBpKyspCiAgICAgICAgIFtzZWxmIHN0b3BPbmVQbHVnaW46W192aWV3
cyBvYmplY3RBdEluZGV4OmldXTsKIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVP
KQotICAgIGludCB2aWV3c05vdEluRG9jdW1lbnRDb3VudCA9IFtfdmlld3NOb3RJbkRvY3VtZW50
IGNvdW50XTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHZpZXdzTm90SW5Eb2N1bWVudENvdW50
OyBpKyspCi0gICAgICAgIFtzZWxmIHN0b3BPbmVQbHVnaW46W192aWV3c05vdEluRG9jdW1lbnQg
b2JqZWN0QXRJbmRleDppXV07Ci0jZW5kaWYKLQogICAgIF9zdGFydGVkID0gTk87CiB9CiAKQEAg
LTM1NiwxMiArMzI0LDYgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUF1ZGlvU2Vzc2lvbigpCiAg
ICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwOyBpIDwgdmlld3NDb3VudDsgKytpKQogICAgICAgICBb
c2VsZiBzdG9wT25lUGx1Z2luRm9yUGFnZUNhY2hlOltfdmlld3Mgb2JqZWN0QXRJbmRleDppXV07
CiAKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKLSAgICBOU1VJbnRlZ2VyIHZp
ZXdzTm90SW5Eb2N1bWVudENvdW50ID0gW192aWV3c05vdEluRG9jdW1lbnQgY291bnRdOwotICAg
IGZvciAoTlNVSW50ZWdlciBpID0gMDsgaSA8IHZpZXdzTm90SW5Eb2N1bWVudENvdW50OyArK2kp
Ci0gICAgICAgIFtzZWxmIHN0b3BPbmVQbHVnaW5Gb3JQYWdlQ2FjaGU6W192aWV3c05vdEluRG9j
dW1lbnQgb2JqZWN0QXRJbmRleDppXV07Ci0jZW5kaWYKLQogICAgIF9zdGFydGVkID0gTk87CiB9
CiAKQEAgLTM3NSwzMSArMzM3LDkgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUF1ZGlvU2Vzc2lv
bigpCiAKICAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkgPCB2aWV3c0NvdW50OyArK2kpCiAg
ICAgICAgIFtbd2ViVmlldyBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3
IHdpbGxBZGRQbHVnSW5WaWV3Oltfdmlld3Mgb2JqZWN0QXRJbmRleDppXV07Ci0KLSNpZiBFTkFC
TEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKLSAgICBOU1VJbnRlZ2VyIHZpZXdzTm90SW5Eb2N1
bWVudENvdW50ID0gW192aWV3c05vdEluRG9jdW1lbnQgY291bnRdOwotICAgIGZvciAoTlNVSW50
ZWdlciBpID0gMDsgaSA8IHZpZXdzTm90SW5Eb2N1bWVudENvdW50OyArK2kpCi0gICAgICAgIFtb
d2ViVmlldyBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3IHdpbGxBZGRQ
bHVnSW5WaWV3Oltfdmlld3NOb3RJbkRvY3VtZW50IG9iamVjdEF0SW5kZXg6aV1dOwotI2VuZGlm
CiB9CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9G
T1JfVklERU8pCi0tICh2b2lkKW1lZGlhUGx1Z0luUHJveHlWaWV3Q3JlYXRlZDooTlNWaWV3ICop
dmlldwotewotICAgIHZpZXcuaXNNZWRpYVBsdWdJblByb3h5VmlldyA9IFlFUzsKLSAgICBpZiAo
IV92aWV3c05vdEluRG9jdW1lbnQpCi0gICAgICAgIF92aWV3c05vdEluRG9jdW1lbnQ9IFtbTlNN
dXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdOwotICAgIGlmICghW192aWV3c05vdEluRG9jdW1lbnQg
Y29udGFpbnNPYmplY3Q6dmlld10pCi0gICAgICAgIFtfdmlld3NOb3RJbkRvY3VtZW50IGFkZE9i
amVjdDp2aWV3XTsKLX0KLQotKyAodm9pZClwbHVnaW5WaWV3SGlkZGVuOihOU1ZpZXcgKil2aWV3
Ci17Ci0gICAgW3BsdWdpblZpZXdzIHJlbW92ZU9iamVjdDp2aWV3XTsKLX0KLSNlbmRpZgotCiAt
ICh2b2lkKWFkZFBsdWdpbjooTlNWaWV3ICopdmlldwogewogICAgIGlmICghX2RvY3VtZW50Vmll
dykgewpAQCAtNDEzLDExICszNTMsNiBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplQXVkaW9TZXNz
aW9uKCkKICAgICAgICAgW1tfZG9jdW1lbnRWaWV3IF93ZWJWaWV3XSBhZGRQbHVnaW5JbnN0YW5j
ZVZpZXc6dmlld107CiAjZW5kaWYKIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVP
KQotICAgICAgICBpZiAoW192aWV3c05vdEluRG9jdW1lbnQgY29udGFpbnNPYmplY3Q6dmlld10p
Ci0gICAgICAgICAgICBbX3ZpZXdzTm90SW5Eb2N1bWVudCByZW1vdmVPYmplY3Q6dmlld107Ci0j
ZW5kaWYKLQogI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIEJPT0wgb2xkRGVmZXJzQ2FsbGJh
Y2tzID0gW1tzZWxmIHdlYlZpZXddIGRlZmVyc0NhbGxiYWNrc107CiAgICAgICAgIGlmICghb2xk
RGVmZXJzQ2FsbGJhY2tzKQpAQCAtNDYxLDIwICszOTYsMTEgQEAgc3RhdGljIHZvaWQgaW5pdGlh
bGl6ZUF1ZGlvU2Vzc2lvbigpCiAKIC0gKHZvaWQpZGVzdHJveVBsdWdpbjooTlNWaWV3ICopdmll
dwogewotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIC8vIGRlc3Ryb3lQ
bHVnaW46IGlzIGNhbGxlZCB3aGVuIGEgcGx1Zy1pbiB2aWV3IGlzIHJlbW92ZWQgZnJvbSBpdHMg
cGFyZW50Ci0gICAgLy8gdmlldywgYnV0IG5hdGl2ZSBtZWRpYSBwbGF5ZXJzIGNvbnRpbnVlIHRv
IGV4aXN0IGV2ZW4gd2hlbiB0aGV5IGFyZW4ndCBpbgotICAgIC8vIHRoZSB2aWV3IGhpZXJhcmNo
eS4gU28gaWYgdGhpcyBwbHVnLWluIHZpZXcgaXMgYSBwcm94eSBmb3IgYSBuYXRpdmUgbWVkaWEK
LSAgICAvLyBwbGF5ZXIsIGRvbid0IGRlc3Ryb3kgaXQgaGVyZS4KLSAgICBpZiAodmlldy5pc01l
ZGlhUGx1Z0luUHJveHlWaWV3KQotICAgICAgICByZXR1cm47Ci0jZW5kaWYKLQogICAgIGlmIChb
X3ZpZXdzIGNvbnRhaW5zT2JqZWN0OnZpZXddKSB7CiAgICAgICAgIGlmIChfc3RhcnRlZCkKICAg
ICAgICAgICAgIFtzZWxmIHN0b3BPbmVQbHVnaW46dmlld107CiAgICAgICAgIFtzZWxmIGRlc3Ry
b3lPbmVQbHVnaW46dmlld107Ci0gICAgICAgIAorCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBjb3JlKFtzZWxmIHdlYkZyYW1lXSkp
CiAgICAgICAgICAgICBmcmFtZS0+c2NyaXB0KCkuY2xlYW51cFNjcmlwdE9iamVjdHNGb3JQbHVn
aW4oc2VsZik7CkBAIC01MzQsMTIgKzQ2MCw2IEBAIHN0YXRpYyB2b2lkIGNhbmNlbE91dHN0YW5k
aW5nQ2hlY2soY29uc3Qgdm9pZCAqaXRlbSwgdm9pZCAqY29udGV4dCkKICNlbmRpZgogICAgIH0K
IAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIGludCB2aWV3c05vdElu
RG9jdW1lbnRDb3VudCA9IFtfdmlld3NOb3RJbkRvY3VtZW50IGNvdW50XTsKLSAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IHZpZXdzTm90SW5Eb2N1bWVudENvdW50OyBpKyspCi0gICAgICAgIFtzZWxm
IGRlc3Ryb3lPbmVQbHVnaW46W192aWV3c05vdEluRG9jdW1lbnQgb2JqZWN0QXRJbmRleDppXV07
Ci0jZW5kaWYKLQogI2lmICFQTEFURk9STShJT1MpCiAgICAgW192aWV3cyBtYWtlT2JqZWN0c1Bl
cmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IocmVtb3ZlRnJvbVN1cGVydmlld1dpdGhvdXROZWVkaW5n
RGlzcGxheSldOwogI2Vsc2UKQEAgLTcwMSw1MCArNjIxLDYgQEAgc3RhdGljIHZvaWQgY2FuY2Vs
T3V0c3RhbmRpbmdDaGVjayhjb25zdCB2b2lkICppdGVtLCB2b2lkICpjb250ZXh0KQogICAgICAg
ICBbcGx1Z2luVmlldyB3ZWJQbHVnSW5NYWluUmVzb3VyY2VEaWRGaW5pc2hMb2FkaW5nXTsKIH0K
IAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotc3RhdGljIFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQqIG1lZGlhUHJveHlDbGllbnQoRE9NRWxlbWVudCogZWxlbWVudCkKLXsK
LSAgICBpZiAoIWVsZW1lbnQpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJuaWwgZWxlbWVudCBwYXNz
ZWQiKTsKLSAgICAgICAgcmV0dXJuIG5pbDsKLSAgICB9Ci0KLSAgICBFbGVtZW50KiBub2RlID0g
Y29yZShlbGVtZW50KTsKLSAgICBpZiAoIW5vZGUgfHwgKCFpc0hUTUxWaWRlb0VsZW1lbnQobm9k
ZSkgJiYgIWlzSFRNTEF1ZGlvRWxlbWVudChub2RlKSkpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJp
bnZhbGlkIG1lZGlhIGVsZW1lbnQgcGFzc2VkIik7Ci0gICAgICAgIHJldHVybiBuaWw7Ci0gICAg
fQotCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQqPihu
b2RlKTsKLX0KLQotLSAodm9pZClfd2ViUGx1Z2luQ29udGFpbmVyU2V0TWVkaWFQbGF5ZXJQcm94
eTooV2ViTWVkaWFQbGF5ZXJQcm94eSAqKXByb3h5IGZvckVsZW1lbnQ6KERPTUVsZW1lbnQgKill
bGVtZW50Ci17Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIFdlYlRocmVhZFJ1biheewotI2VuZGlm
Ci0gICAgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCogY2xpZW50ID0gbWVkaWFQcm94eUNsaWVu
dChlbGVtZW50KTsKLSAgICBpZiAoY2xpZW50KQotICAgICAgICBjbGllbnQtPnNldE1lZGlhUGxh
eWVyUHJveHkocHJveHkpOwotI2lmIFBMQVRGT1JNKElPUykKLSAgICB9KTsKLSNlbmRpZgotfQot
Ci0tICh2b2lkKV93ZWJQbHVnaW5Db250YWluZXJQb3N0TWVkaWFQbGF5ZXJOb3RpZmljYXRpb246
KGludClub3RpZmljYXRpb24gZm9yRWxlbWVudDooRE9NRWxlbWVudCAqKWVsZW1lbnQKLXsKLSNp
ZiBQTEFURk9STShJT1MpCi0gICAgV2ViVGhyZWFkUnVuKF57Ci0jZW5kaWYKLSAgICBXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50KiBjbGllbnQgPSBtZWRpYVByb3h5Q2xpZW50KGVsZW1lbnQpOwot
ICAgIGlmIChjbGllbnQpCi0gICAgICAgIGNsaWVudC0+ZGVsaXZlck5vdGlmaWNhdGlvbigoTWVk
aWFQbGF5ZXJQcm94eU5vdGlmaWNhdGlvblR5cGUpbm90aWZpY2F0aW9uKTsKLSNpZiBQTEFURk9S
TShJT1MpCi0gICAgfSk7Ci0jZW5kaWYKLX0KLSNlbmRpZgotCiBAZW5kCiAKICNpZiAhUExBVEZP
Uk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZjYzNmI0MTNmZjczMjY5ODkzMDU1NjY4OTJlYTNi
MmU3NTU0YWJiMi4uN2MxNWEzNjZmN2YwNGMzN2Y5Yzk1ZWYyYmI2ZjhhYzBhYjc0OWFkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCkBAIC0yMDgsMTMgKzIwOCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBXZWJD
b3JlOjpVUkwmIGJhc2VVUkwsCiAgICAgICAgIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIHBh
cmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtVmFsdWVzKSBvdmVycmlk
ZTsKICAgICAKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKLSAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVNZWRpYVBsYXllclByb3h5UGx1Z2lu
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50KiwgY29u
c3QgV2ViQ29yZTo6VVJMJiwgCi0gICAgICAgIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBj
b25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIHZvaWQgaGlkZU1lZGlhUGxheWVyUHJveHlQbHVnaW4oV2ViQ29yZTo6V2lk
Z2V0Kikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHNob3dNZWRpYVBsYXllclByb3h5UGx1
Z2luKFdlYkNvcmU6OldpZGdldCopIG92ZXJyaWRlOwotI2VuZGlmCi0gICAgCiAgICAgdmlydHVh
bCBXZWJDb3JlOjpPYmplY3RDb250ZW50VHlwZSBvYmplY3RDb250ZW50VHlwZShjb25zdCBXZWJD
b3JlOjpVUkwmLCBjb25zdCBXVEY6OlN0cmluZyYgbWltZVR5cGUsIGJvb2wgc2hvdWxkUHJlZmVy
UGx1Z0luc0ZvckltYWdlcykgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBvdmVy
cmlkZU1lZGlhVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRl
eCA5NjI0MzgyMWY1YmJiOWRlOWRkOGUwMDg2ZmU2MzcyNWE4NjFhNWJmLi4wOGMwYTFlOWZjODVj
N2ZmODE2OGU4NDM1MmJhNTFlZTkzODc2ODcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtMTMwLDEw
ICsxMzAsNiBAQAogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0jaW1wb3J0
IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KLSNlbmRpZgotCiAjaWYgVVNFKFBMVUdJTl9I
T1NUX1BST0NFU1MpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogI2ltcG9ydCAiTmV0
c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5oIgogI2ltcG9ydCAiV2ViSG9zdGVkTmV0c2NhcGVQbHVn
aW5WaWV3LmgiCkBAIC0xNzM2LDE1ICsxNzMyLDYgQEAgc3RhdGljIE5TVmlldyAqcGx1Z2luVmll
dyhXZWJGcmFtZSAqZnJhbWUsIFdlYlBsdWdpblBhY2thZ2UgKnBsdWdpblBhY2thZ2UsCiAjZWxz
ZQogICAgIHZpZXcgPSBbcGx1Z2luQ29udHJvbGxlciBwbHVnSW5WaWV3V2l0aEFyZ3VtZW50czph
cmd1bWVudHMgZnJvbVBsdWdpblBhY2thZ2U6cGx1Z2luUGFja2FnZV07CiAgICAgW2F0dHJpYnV0
ZXMgcmVsZWFzZV07Ci0KLSAgICBpZiAoIXZpZXcpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSNp
ZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKLSAgICBFbGVtZW50KiBub2RlID0gY29y
ZShlbGVtZW50KTsKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFn
KSB8fCBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6YXVkaW9UYWcpKQotICAgICAgICBbcGx1
Z2luQ29udHJvbGxlciBtZWRpYVBsdWdJblByb3h5Vmlld0NyZWF0ZWQ6dmlld107Ci0jZW5kaWYK
ICNlbmRpZgogCiAgICAgcmV0dXJuIHZpZXc7CkBAIC0xOTUyLDEwICsxOTM5LDExIEBAIFBhc3NS
ZWZQdHI8V2lkZ2V0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUGx1Z2luKGNvbnN0IElu
dFNpemUmIHNpemUsIEhUTUxQCiAgICAgTlNTdHJpbmcgKmV4dGVuc2lvbiA9IFtbcGx1Z2luVVJM
IHBhdGhdIHBhdGhFeHRlbnNpb25dOwogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIGlmICghcGx1
Z2luUGFja2FnZSAmJiBbZXh0ZW5zaW9uIGxlbmd0aF0pIHsKKyAgICBpZiAoIXBsdWdpblBhY2th
Z2UgJiYgW2V4dGVuc2lvbiBsZW5ndGhdKQogI2Vsc2UKLSAgICBpZiAoIXBsdWdpblBhY2thZ2Ug
JiYgW2V4dGVuc2lvbiBsZW5ndGhdICYmICFbTUlNRVR5cGUgbGVuZ3RoXSkgeworICAgIGlmICgh
cGx1Z2luUGFja2FnZSAmJiBbZXh0ZW5zaW9uIGxlbmd0aF0gJiYgIVtNSU1FVHlwZSBsZW5ndGhd
KQogI2VuZGlmCisgICAgewogICAgICAgICBwbHVnaW5QYWNrYWdlID0gW3dlYlZpZXcgX3BsdWdp
bkZvckV4dGVuc2lvbjpleHRlbnNpb25dOwogICAgICAgICBpZiAocGx1Z2luUGFja2FnZSkgewog
ICAgICAgICAgICAgTlNTdHJpbmcgKm5ld01JTUVUeXBlID0gW3BsdWdpblBhY2thZ2UgTUlNRVR5
cGVGb3JFeHRlbnNpb246ZXh0ZW5zaW9uXTsKQEAgLTE5NzQsNyArMTk2Miw2IEBAIFBhc3NSZWZQ
dHI8V2lkZ2V0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUGx1Z2luKGNvbnN0IEludFNp
emUmIHNpemUsIEhUTUxQCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAoW3BsdWdp
blBhY2thZ2UgaXNLaW5kT2ZDbGFzczpbV2ViUGx1Z2luUGFja2FnZSBjbGFzc11dKQogICAgICAg
ICAgICAgICAgIHZpZXcgPSBwbHVnaW5WaWV3KG1fd2ViRnJhbWUuZ2V0KCksIChXZWJQbHVnaW5Q
YWNrYWdlICopcGx1Z2luUGFja2FnZSwgYXR0cmlidXRlS2V5cywga2l0KHBhcmFtVmFsdWVzKSwg
YmFzZVVSTCwga2l0KGVsZW1lbnQpLCBsb2FkTWFudWFsbHkpOwotCiAjaWYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCiAgICAgICAgICAgICBlbHNlIGlmIChbcGx1Z2luUGFja2FnZSBpc0tp
bmRPZkNsYXNzOltXZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UgY2xhc3NdXSkgewogICAgICAgICAg
ICAgICAgIFdlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcgKnBsdWdpblZpZXcgPSBbW1tORVRTQ0FQ
RV9QTFVHSU5fVklFVyBhbGxvY10KQEAgLTIxMDUsMTAgKzIwOTIsOSBAQCB2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpyZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdldCkK
ICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBpZiAoW3BsdWdpblZpZXcgaXNL
aW5kT2ZDbGFzczpbTkVUU0NBUEVfUExVR0lOX1ZJRVcgY2xhc3NdXSkKICAgICAgICAgW3JlcHJl
c2VudGF0aW9uIF9yZWRpcmVjdERhdGFUb01hbnVhbExvYWRlcjooTkVUU0NBUEVfUExVR0lOX1ZJ
RVcgKilwbHVnaW5WaWV3IGZvclBsdWdpblZpZXc6cGx1Z2luVmlld107Ci0gICAgZWxzZSB7Ci0j
ZWxzZQotICAgIHsKKyAgICBlbHNlCiAjZW5kaWYKKyAgICB7CiAgICAgICAgIFdlYkhUTUxWaWV3
ICpkb2N1bWVudFZpZXcgPSAoV2ViSFRNTFZpZXcgKilbW21fd2ViRnJhbWUuZ2V0KCkgZnJhbWVW
aWV3XSBkb2N1bWVudFZpZXddOwogICAgICAgICBBU1NFUlQoW2RvY3VtZW50VmlldyBpc0tpbmRP
ZkNsYXNzOltXZWJIVE1MVmlldyBjbGFzc11dKTsKICAgICAgICAgW3JlcHJlc2VudGF0aW9uIF9y
ZWRpcmVjdERhdGFUb01hbnVhbExvYWRlcjpbZG9jdW1lbnRWaWV3IF9wbHVnaW5Db250cm9sbGVy
XSBmb3JQbHVnaW5WaWV3OnBsdWdpblZpZXddOwpAQCAtMjEzOCw3ICsyMTI0LDcgQEAgUGFzc1Jl
ZlB0cjxXaWRnZXQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0
KGNvbnN0IEludFNpemUmIHMKICAgICAgICAgICAgIGlmIChlbGVtZW50LT5yZW5kZXJlcigpLT5p
c0VtYmVkZGVkT2JqZWN0KCkpCiAgICAgICAgICAgICAgICAgdG9SZW5kZXJFbWJlZGRlZE9iamVj
dChlbGVtZW50LT5yZW5kZXJlcigpKS0+c2V0UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24oUmVu
ZGVyRW1iZWRkZWRPYmplY3Q6Okluc2VjdXJlUGx1Z2luVmVyc2lvbik7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQorI2lmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQogICAgICAgICAgICAgaWYgKFtwbHVnaW5QYWNrYWdlIGlzS2luZE9m
Q2xhc3M6W1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZSBjbGFzc11dKSB7CiAgICAgICAgICAgICAg
ICAgdmlldyA9IFtbW05FVFNDQVBFX1BMVUdJTl9WSUVXIGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKQogICAgICAgICAgICAg
ICAgICAgICBwbHVnaW5QYWNrYWdlOihXZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UgKilwbHVnaW5Q
YWNrYWdlCkBAIC0yMTUyLDcgKzIxMzgsNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYgcwogICAg
ICAgICAgICAgICAgIGlmICh2aWV3KQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IE5ldHNjYXBlUGx1Z2luV2lkZ2V0KHN0YXRpY19jYXN0PFdlYkJhc2VOZXRzY2FwZVBs
dWdpblZpZXcgKj4odmlldykpKTsKICAgICAgICAgICAgIH0KLSAgICAjZW5kaWYKKyNlbmRpZgog
ICAgICAgICB9CiAgICAgfQogCkBAIC0yMTcyLDk5ICsyMTU4LDYgQEAgUGFzc1JlZlB0cjxXaWRn
ZXQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IElu
dFNpemUmIHMKICAgICByZXR1cm4gMDsKIH0KIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9S
X1ZJREVPKQotUGFzc1JlZlB0cjxXaWRnZXQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVN
ZWRpYVBsYXllclByb3h5UGx1Z2luKGNvbnN0IEludFNpemUmIHNpemUsIEhUTUxNZWRpYUVsZW1l
bnQqIGVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLAotICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBw
YXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUpCi17Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotCi0gICAg
QVNTRVJUKHBhcmFtTmFtZXMuc2l6ZSgpID09IHBhcmFtVmFsdWVzLnNpemUoKSk7Ci0gICAgQVNT
RVJUKG1pbWVUeXBlKTsKLQotICAgIGludCBlcnJvckNvZGUgPSAwOwotICAgIFdlYlZpZXcgKndl
YlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpOwotICAgIE5TVVJMICpVUkwgPSB1
cmw7Ci0KLSNpZiAhUExBVEZPUk0oSU9TKQotICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3
ZWJWaWV3OnBsdWdJblZpZXdXaXRoQXJndW1lbnRzOik7Ci0KLSAgICBpZiAoW1t3ZWJWaWV3IFVJ
RGVsZWdhdGVdIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rvcl0pIHsKLSAgICAgICAgTlNNdXRh
YmxlRGljdGlvbmFyeSAqYXR0cmlidXRlcyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10g
aW5pdFdpdGhPYmplY3RzOmtpdChwYXJhbVZhbHVlcykgZm9yS2V5czpraXQocGFyYW1OYW1lcyld
OwotICAgICAgICBOU0RpY3Rpb25hcnkgKmFyZ3VtZW50cyA9IFtbTlNEaWN0aW9uYXJ5IGFsbG9j
XSBpbml0V2l0aE9iamVjdHNBbmRLZXlzOgotICAgICAgICAgICAgYXR0cmlidXRlcywgV2ViUGx1
Z0luQXR0cmlidXRlc0tleSwKLSAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50Oldl
YlBsdWdJbk1vZGVFbWJlZF0sIFdlYlBsdWdJbk1vZGVLZXksCi0gICAgICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgV2ViUGx1Z0luU2hvdWxkTG9hZE1haW5SZXNvdXJjZUtl
eSwKLSAgICAgICAgICAgIGtpdChlbGVtZW50KSwgV2ViUGx1Z0luQ29udGFpbmluZ0VsZW1lbnRL
ZXksCi0gICAgICAgICAgICBVUkwsIFdlYlBsdWdJbkJhc2VVUkxLZXksIC8vIFVSTCBtaWdodCBi
ZSBuaWwsIHNvIGFkZCBpdCBsYXN0Ci0gICAgICAgICAgICBuaWxdOwotCi0gICAgICAgIE5TVmll
dyAqdmlldyA9IENhbGxVSURlbGVnYXRlKHdlYlZpZXcsIHNlbGVjdG9yLCBhcmd1bWVudHMpOwot
Ci0gICAgICAgIFthdHRyaWJ1dGVzIHJlbGVhc2VdOwotICAgICAgICBbYXJndW1lbnRzIHJlbGVh
c2VdOwotCi0gICAgICAgIGlmICh2aWV3KQotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBQbHVnaW5XaWRnZXQodmlldykpOwotICAgIH0KLSNlbmRpZgotCi0gICAgV2ViQmFzZVBsdWdp
blBhY2thZ2UgKnBsdWdpblBhY2thZ2UgPSBbd2ViVmlldyBfdmlkZW9Qcm94eVBsdWdpbkZvck1J
TUVUeXBlOm1pbWVUeXBlXTsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb3JlKG1fd2ViRnJh
bWUuZ2V0KCkpLT5kb2N1bWVudCgpOwotICAgIE5TVVJMICpiYXNlVVJMID0gZG9jdW1lbnQtPmJh
c2VVUkwoKTsKLSAgICBOU1ZpZXcgKnZpZXcgPSBuaWw7Ci0KLSAgICBpZiAocGx1Z2luUGFja2Fn
ZSkgewotICAgICAgICBpZiAoW3BsdWdpblBhY2thZ2UgaXNLaW5kT2ZDbGFzczpbV2ViUGx1Z2lu
UGFja2FnZSBjbGFzc11dKQotICAgICAgICAgICAgdmlldyA9IHBsdWdpblZpZXcobV93ZWJGcmFt
ZS5nZXQoKSwgKFdlYlBsdWdpblBhY2thZ2UgKilwbHVnaW5QYWNrYWdlLCBraXQocGFyYW1OYW1l
cyksIGtpdChwYXJhbVZhbHVlcyksIGJhc2VVUkwsIGtpdChlbGVtZW50KSwgZmFsc2UpOwotICAg
IH0gZWxzZQotICAgICAgICBlcnJvckNvZGUgPSBXZWJLaXRFcnJvckNhbm5vdEZpbmRQbHVnSW47
Ci0KLSAgICBpZiAoIWVycm9yQ29kZSAmJiAhdmlldykKLSAgICAgICAgZXJyb3JDb2RlID0gV2Vi
S2l0RXJyb3JDYW5ub3RMb2FkUGx1Z0luOwotCi0gICAgaWYgKGVycm9yQ29kZSkgewotI2lmIFBM
QVRGT1JNKElPUykKLSAgICAgICAgV2ViUmVzb3VyY2VEZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2Fj
aGUqIGltcGxlbWVudGF0aW9ucyA9IFdlYlZpZXdHZXRSZXNvdXJjZUxvYWREZWxlZ2F0ZUltcGxl
bWVudGF0aW9ucyhnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpKTsKLSAgICAgICAgaWYgKGlt
cGxlbWVudGF0aW9ucy0+cGx1Z0luRmFpbGVkV2l0aEVycm9yRnVuYykgewotICAgICAgICAgICAg
TlNFcnJvciAqZXJyb3IgPSBbW05TRXJyb3IgYWxsb2NdIF9pbml0V2l0aFBsdWdpbkVycm9yQ29k
ZTplcnJvckNvZGUgY29udGVudFVSTDpVUkwgcGx1Z2luUGFnZVVSTDpuaWwgcGx1Z2luTmFtZTpb
cGx1Z2luUGFja2FnZSBwbHVnaW5JbmZvXS5uYW1lIE1JTUVUeXBlOm1pbWVUeXBlXTsKLSAgICAg
ICAgICAgIENhbGxSZXNvdXJjZUxvYWREZWxlZ2F0ZShpbXBsZW1lbnRhdGlvbnMtPnBsdWdJbkZh
aWxlZFdpdGhFcnJvckZ1bmMsIFttX3dlYkZyYW1lLmdldCgpIHdlYlZpZXddLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBzZWxlY3Rvcih3ZWJWaWV3OnBsdWdJbkZhaWxl
ZFdpdGhFcnJvcjpkYXRhU291cmNlOiksIGVycm9yLCBbbV93ZWJGcmFtZS5nZXQoKSBfZGF0YVNv
dXJjZV0pOwotICAgICAgICAgICAgW2Vycm9yIHJlbGVhc2VdOwotICAgICAgICB9Ci0jZWxzZQot
ICAgICAgICBOU0Vycm9yICplcnJvciA9IFtbTlNFcnJvciBhbGxvY10gX2luaXRXaXRoUGx1Z2lu
RXJyb3JDb2RlOmVycm9yQ29kZQotICAgICAgICAgICAgY29udGVudFVSTDpVUkwgcGx1Z2luUGFn
ZVVSTDpuaWwgcGx1Z2luTmFtZTpbcGx1Z2luUGFja2FnZSBwbHVnaW5JbmZvXS5uYW1lIE1JTUVU
eXBlOm1pbWVUeXBlXTsKLSAgICAgICAgV2ViTnVsbFBsdWdpblZpZXcgKm51bGxWaWV3ID0gW1tb
V2ViTnVsbFBsdWdpblZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCBz
aXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpCi0gICAgICAgICAgICBlcnJvcjplcnJvciBET01F
bGVtZW50OmtpdChlbGVtZW50KV0gYXV0b3JlbGVhc2VdOwotICAgICAgICB2aWV3ID0gbnVsbFZp
ZXc7Ci0gICAgICAgIFtlcnJvciByZWxlYXNlXTsKLSNlbmRpZgotICAgIH0KLSAgICAKLSAgICBB
U1NFUlQodmlldyk7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
UGx1Z2luV2lkZ2V0SU9TKHZpZXcpKTsKLSNlbHNlCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQ
bHVnaW5XaWRnZXQodmlldykpOwotI2VuZGlmCi0KLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6Omhp
ZGVNZWRpYVBsYXllclByb3h5UGx1Z2luKFdpZGdldCogd2lkZ2V0KQotewotICAgIFtXZWJQbHVn
aW5Db250cm9sbGVyIHBsdWdpblZpZXdIaWRkZW46d2lkZ2V0LT5wbGF0Zm9ybVdpZGdldCgpXTsK
LX0KLQotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvd01lZGlhUGxheWVyUHJveHlQbHVn
aW4oV2lkZ2V0KiB3aWRnZXQpCi17Ci0gICAgW1dlYlBsdWdpbkNvbnRyb2xsZXIgYWRkUGx1Z0lu
Vmlldzp3aWRnZXQtPnBsYXRmb3JtV2lkZ2V0KCldOwotfQotCi0jZW5kaWYgIC8vIEVOQUJMRShQ
TFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotCiBTdHJpbmcgV2ViRnJhbWVMb2FkZXJDbGllbnQ6Om92
ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3QKIHsKICAgICBOU1N0cmluZyogb3ZlcnJpZGVUeXBlID0g
W2dldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSkgbWVkaWFTdHlsZV07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggOTY4N2M0YmYzYWFiOWYyNzQ4NDRlYThiMmU3YzY2YjAz
NmM5Nzc0Ni4uMGE5NGVjOGMxZWVmNzVkYWMzZTMzMTU3NzU2MWUwYTk5ZWI1ZmIwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjM4NSwxMCArMjM4NSw2IEBAIHN0YXRp
YyBib29sIG5lZWRzU2VsZlJldGFpbldoaWxlTG9hZGluZ1F1aXJrKCkKIAogICAgIHNldHRpbmdz
LnNldFVzZUxlZ2FjeVRleHRBbGlnblBvc2l0aW9uZWRFbGVtZW50QmVoYXZpb3IoW3ByZWZlcmVu
Y2VzIHVzZUxlZ2FjeVRleHRBbGlnblBvc2l0aW9uZWRFbGVtZW50QmVoYXZpb3JdKTsKIAotI2lm
IEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIHNldHRpbmdzLnNldFZpZGVvUGx1
Z2luUHJveHlFbmFibGVkKFtwcmVmZXJlbmNlcyBpc1ZpZGVvUGx1Z2luUHJveHlFbmFibGVkXSk7
Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAgICAgc2V0dGluZ3Muc2V0TWVk
aWFTb3VyY2VFbmFibGVkKFtwcmVmZXJlbmNlcyBtZWRpYVNvdXJjZUVuYWJsZWRdKTsKICNlbmRp
ZgpAQCAtNDg2MCwyMiArNDg1Niw2IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiB0b1N0cmluZ1Zl
Y3RvcihOU0FycmF5KiBwYXR0ZXJucykKICAgICByZXR1cm4gbmlsOwogfQogCi0jaWYgRU5BQkxF
KFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0tIChXZWJCYXNlUGx1Z2luUGFja2FnZSAqKV92aWRl
b1Byb3h5UGx1Z2luRm9yTUlNRVR5cGU6KE5TU3RyaW5nICopTUlNRVR5cGUKLXsKLSAgICBXZWJC
YXNlUGx1Z2luUGFja2FnZSAqcGx1Z2luUGFja2FnZSA9IFtbV2ViUGx1Z2luRGF0YWJhc2Ugc2hh
cmVkRGF0YWJhc2VdIHBsdWdpbkZvck1JTUVUeXBlOk1JTUVUeXBlXTsKLSAgICBpZiAocGx1Z2lu
UGFja2FnZSkKLSAgICAgICAgcmV0dXJuIHBsdWdpblBhY2thZ2U7Ci0KLSNpZiAhUExBVEZPUk0o
SU9TKQotICAgIGlmIChfcHJpdmF0ZS0+cGx1Z2luRGF0YWJhc2UpCi0gICAgICAgIHJldHVybiBb
X3ByaXZhdGUtPnBsdWdpbkRhdGFiYXNlIHBsdWdpbkZvck1JTUVUeXBlOk1JTUVUeXBlXTsKLSNl
bmRpZgotCi0gICAgcmV0dXJuIG5pbDsKLX0KLSNlbmRpZgotCiAtIChXZWJCYXNlUGx1Z2luUGFj
a2FnZSAqKV9wbHVnaW5Gb3JFeHRlbnNpb246KE5TU3RyaW5nICopZXh0ZW5zaW9uCiB7CiAgICAg
aWYgKCFbX3ByaXZhdGUtPnByZWZlcmVuY2VzIGFyZVBsdWdJbnNFbmFibGVkXSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDhjNTBhOWE4MTQ2OGZj
MjUwMjM1NWViZWI5NTJkZTk1YzAzMDJkYmEuLjc3ZTc3NTYzNGU4YTFkYjM1MjAwZTJlZDA2ZDRl
OGI3OTBhMjhhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
d0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJu
YWwuaApAQCAtMTkwLDkgKzE5MCw2IEBAIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVzOwog
LSAodm9pZClfZGlkQ2hhbmdlVmFsdWVGb3JLZXk6KE5TU3RyaW5nICopa2V5OwogLSAoV2ViQmFz
ZVBsdWdpblBhY2thZ2UgKilfcGx1Z2luRm9yTUlNRVR5cGU6KE5TU3RyaW5nICopTUlNRVR5cGU7
CiAtIChXZWJCYXNlUGx1Z2luUGFja2FnZSAqKV9wbHVnaW5Gb3JFeHRlbnNpb246KE5TU3RyaW5n
ICopZXh0ZW5zaW9uOwotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotLSAoV2Vi
QmFzZVBsdWdpblBhY2thZ2UgKilfdmlkZW9Qcm94eVBsdWdpbkZvck1JTUVUeXBlOihOU1N0cmlu
ZyAqKU1JTUVUeXBlOwotI2VuZGlmCiAKIC0gKHZvaWQpc2V0Q3VycmVudE5vZGVIaWdobGlnaHQ6
KFdlYk5vZGVIaWdobGlnaHQgKilub2RlSGlnaGxpZ2h0OwogLSAoV2ViTm9kZUhpZ2hsaWdodCAq
KWN1cnJlbnROb2RlSGlnaGxpZ2h0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCAwYjc0MzNjMTU5YmVhZWVhN2I4
OTU3ZDgzNGI0OWY3MWEzNmRjM2NiLi5lMmFhOTY4YjAyZjAzZmYxNWJhYzFjYWYxMTBjMjFiYmQ5
YmUxODExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMTYwLDkgKzE2MCw2IEBAIEVOQUJMRV9OT1RJRklDQVRJ
T05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogRU5BQkxFX1BBR0VfVklTSUJJTElU
WV9BUEkgPSBFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSTsKIEVOQUJMRV9QREZLSVRfUExVR0lO
ID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFBMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9QREZL
SVRfUExVR0lOX21hY29zeCA9IEVOQUJMRV9QREZLSVRfUExVR0lOOwotRU5BQkxFX1BMVUdJTl9Q
Uk9YWV9GT1JfVklERU8gPSAkKEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVPXyQoUExBVEZP
Uk1fTkFNRSkpOwotRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1JfVklERU9faXBob25lb3MgPSBFTkFC
TEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTzsKLUVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVP
X2lwaG9uZXNpbXVsYXRvciA9ICQoRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1JfVklERU9faXBob25l
b3MpOwogRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQgPSBFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVDsK
IEVOQUJMRV9QUk9NSVNFUyA9IEVOQUJMRV9QUk9NSVNFUzsKIEVOQUJMRV9QUk9YSU1JVFlfRVZF
TlRTID0gOwpAQCAtMjQxLDQgKzIzOCw0IEBAIEVOQUJMRV9GVExfSklUX2lwaG9uZXNpbXVsYXRv
ciA9IDsKIAogRU5BQkxFX0xMSU5UX0NfTE9PUCA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChF
TkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5B
QkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVZGX0NBUFRJT05T
KSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NB
TlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFL
KSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElP
TikgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJM
RV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFC
TEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9D
U1NfU0hBUEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJB
TlNGT1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxf
UlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUsp
ICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRM
RVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5U
KSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQp
ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RS
VUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElB
X1YyKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJM
RV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04p
ICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdI
X0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfU0VSVklDRV9DT05U
Uk9MUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9W
RVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxF
X0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1IpICQoRU5BQkxFX0lPU19BSVJQTEFZKSAk
KEVOQUJMRV9JT1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9Q
UkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9W
RU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xFVFRF
UlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxF
X01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkg
JChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9V
VElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQ
SSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURF
TykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxF
X1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRU1PVEVf
SU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJ
UFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lO
VEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkg
JChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxF
UEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFC
TEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNI
X0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAk
KEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfVklF
V19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChF
TkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1J
TkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFC
TEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfTExJTlRfQ19MT09QKSAkKEZFQVRV
UkVfREVGSU5FU18kKFBMQVRGT1JNX05BTUUpKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxF
XzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9B
Q0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChF
TkFCTEVfQkxPQikgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNf
UEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykg
JChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChF
TkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQo
RU5BQkxFX0NTU19FWENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NT
X0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NT
U19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NI
QVBFUykgJChFTkFCTEVfQ1NTX1NUSUNLWV9QT1NJVElPTikgJChFTkFCTEVfQ1NTX1RSQU5TRk9S
TVNfQU5JTUFUSU9OU19VTlBSRUZJWEVEKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVT
KSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVO
QUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAk
KEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChF
TkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9S
KSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikg
JChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVM
TFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVO
QUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElf
Q0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMp
ICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5f
V09SS0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5D
T01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9JT1NfQUlSUExBWSkgJChFTkFC
TEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklY
RVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9S
X1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVT
UykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJ
QV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFf
U1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5B
QkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMp
ICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQo
RU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQpICQoRU5BQkxF
X1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VG
RklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFN
RSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9R
VUVSWSkgJChFTkFCTEVfU0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykg
JChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJM
RV9TVUJQSVhFTF9MQVlPVVQpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19G
T05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFTVBM
QVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZF
TlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxM
KSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVf
VkFMVUUpICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVO
QUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRT
KSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJChFTkFCTEVf
WEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0xM
SU5UX0NfTE9PUCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDYxYTEwOWE1NGUyZWQ2NjhhZGNhZmFmYmU3
MjVjMWVlMmFhZjZjMTUuLjcxOWI0NGEwMmE4YTM4MTJiZDgyNjY3ZjEzNGI2NGYyYzFlZjQ5ZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xNDA0LDI0ICsxNDA0LDYg
QEAgUGFzc1JlZlB0cjxXaWRnZXQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVKYXZhQXBw
bGV0V2lkZ2V0KGNvbnN0IEludFNpemUmIHAKICNlbmRpZgogfQogCi0jaWYgRU5BQkxFKFBMVUdJ
Tl9QUk9YWV9GT1JfVklERU8pCi1QYXNzUmVmUHRyPFdpZGdldD4gV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmNyZWF0ZU1lZGlhUGxheWVyUHJveHlQbHVnaW4oY29uc3QgSW50U2l6ZSYsIEhUTUxNZWRp
YUVsZW1lbnQqLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiAwOwotfQotCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpoaWRlTWVkaWFQbGF5
ZXJQcm94eVBsdWdpbihXaWRnZXQqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3dNZWRpYVBsYXllclByb3h5UGx1Z2luKFdpZGdl
dCopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLSNlbmRpZgotCiBzdGF0aWMgYm9vbCBw
bHVnaW5TdXBwb3J0c0V4dGVuc2lvbihjb25zdCBQbHVnaW5EYXRhJiBwbHVnaW5EYXRhLCBjb25z
dCBTdHJpbmcmIGV4dGVuc2lvbikKIHsKICAgICBBU1NFUlQoZXh0ZW5zaW9uLmxvd2VyKCkgPT0g
ZXh0ZW5zaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBmNzE1YzI2YmM3
YzI3NmJmZDU4NzRkYmVmOGQ5ZTE5ZWMwOTRkZDRjLi44MTExZTE1OGI5NDZmNDRjOTliNmQ0ODA0
ZTQ0MGYyNmM1OTBiYTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xOTMs
MTIgKzE5Myw2IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
V2lkZ2V0PiBjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBX
ZWJDb3JlOjpIVE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IFdlYkNvcmU6OlVSTCYgYmFzZVVSTCwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBw
YXJhbVZhbHVlcykgb3ZlcnJpZGU7CiAgICAgCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1Jf
VklERU8pCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRlTWVk
aWFQbGF5ZXJQcm94eVBsdWdpbihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudCosIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIHZvaWQgaGlkZU1lZGlhUGxheWVyUHJveHlQbHVnaW4oV2ViQ29yZTo6V2lkZ2V0Kikg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHNob3dNZWRpYVBsYXllclByb3h5UGx1Z2luKFdl
YkNvcmU6OldpZGdldCopIG92ZXJyaWRlOwotI2VuZGlmCi0KICAgICB2aXJ0dWFsIFdlYkNvcmU6
Ok9iamVjdENvbnRlbnRUeXBlIG9iamVjdENvbnRlbnRUeXBlKGNvbnN0IFdlYkNvcmU6OlVSTCYs
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgc2hvdWxkUHJlZmVyUGx1Z0luc0ZvckltYWdl
cykgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5cGUoKSBjb25z
dCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IDMxNDI0OTNiNDlkOTU1MWMxMDE5ZDBhNzhkMGY3NGQxNmIxMDgyMTQuLmIz
ZGMzY2E3YWYxNTU2Y2ZiNTdiNDk1N2M1NjM3YjUzZTBiYThjOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTI2MTIsMTAgKzI2MTIsNiBA
QCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3Rv
cmUmIHN0b3JlKQogICAgIHNldHRpbmdzLnNldFFUS2l0RW5hYmxlZChzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlzUVRLaXRFbmFibGVkS2V5KCkpKTsKICNlbmRp
ZgogCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgc2V0dGluZ3Muc2V0
VmlkZW9QbHVnaW5Qcm94eUVuYWJsZWQoZmFsc2UpOwotI2VuZGlmCi0KICNpZiBQTEFURk9STShJ
T1MpCiAgICAgc2V0dGluZ3Muc2V0QVZLaXRFbmFibGVkKHRydWUpOwogI2VuZGlmCg==
</data>
<flag name="review"
          id="254888"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>