<?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>129439</bug_id>
          
          <creation_ts>2014-02-27 11:14:11 -0800</creation_ts>
          <short_desc>Remove FeatureObserver.</short_desc>
          <delta_ts>2014-02-27 12:18:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>985266</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-27 11:14:11 -0800</bug_when>
    <thetext>Remove FeatureObserver, since it was only used by the Chromium port and is now dead code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985269</commentid>
    <comment_count>1</comment_count>
      <attachid>225395</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-27 11:15:12 -0800</bug_when>
    <thetext>Created attachment 225395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985302</commentid>
    <comment_count>2</comment_count>
      <attachid>225395</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-27 12:18:30 -0800</bug_when>
    <thetext>Comment on attachment 225395
Patch

Clearing flags on attachment: 225395

Committed r164822: &lt;http://trac.webkit.org/changeset/164822&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985303</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-27 12:18:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225395</attachid>
            <date>2014-02-27 11:15:12 -0800</date>
            <delta_ts>2014-02-27 12:18:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129439.diff</filename>
            <type>text/plain</type>
            <size>54276</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODIyNzFjZC4uYzRiZWI5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE3MDQsNyArMTcwNCw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdl
L0RyYWdDb250cm9sbGVyLmNwcAogICAgIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcAogICAgIHBhZ2Uv
RXZlbnRTb3VyY2UuY3BwCi0gICAgcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwCiAgICAgcGFnZS9G
b2N1c0NvbnRyb2xsZXIuY3BwCiAgICAgcGFnZS9GcmFtZS5jcHAKICAgICBwYWdlL0ZyYW1lRGVz
dHJ1Y3Rpb25PYnNlcnZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMmUyZjRkLi4wYjc3ZTFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsODAgQEAKKzIwMTQtMDItMjcgIEFuZHJlYXMgS2xpbmcgIDxha2xp
bmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBGZWF0dXJlT2JzZXJ2ZXIuCisgICAgICAg
IDxodHRwczovL3dlYmtpdC5vcmcvYi8xMjk0Mzk+CisKKyAgICAgICAgVGhpcyBjb2RlIHdhcyBv
bmx5IHVzZWQgYnkgdGhlIENocm9taXVtIHBvcnQgYW5kIG5vYm9keSBlbHNlIGlzCisgICAgICAg
IG1ha2luZyB1c2Ugb2YgaXQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAg
ICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJn
ZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OmZpcmVFdmVudExpc3RlbmVy
cyk6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogaHRtbC9Db2xvcklu
cHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5oOgorICAgICAgICAq
IGh0bWwvRGF0ZUlucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmg6
CisgICAgICAgICogaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9E
YXRlVGltZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlw
ZS5jcHA6CisgICAgICAgICogaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmg6CisgICAgICAg
ICogaHRtbC9FbWFpbElucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9FbWFpbElucHV0VHlw
ZS5oOgorICAgICAgICAqIGh0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRGF0YUxpc3RFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRy
b2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZSk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvSW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRt
bC9Nb250aElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvUmFuZ2VJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuaDoKKyAgICAgICAg
KiBodG1sL1NlYXJjaElucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9TZWFyY2hJbnB1dFR5
cGUuaDoKKyAgICAgICAgKiBodG1sL1RlbGVwaG9uZUlucHV0VHlwZS5jcHA6CisgICAgICAgICog
aHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1RleHRJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAqIGh0bWwvVGV4dElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvVGlt
ZUlucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBlLmg6CisgICAgICAg
ICogaHRtbC9VUkxJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvVVJMSW5wdXRUeXBlLmg6
CisgICAgICAgICogaHRtbC9XZWVrSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1dlZWtJ
bnB1dFR5cGUuaDoKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
c2hvdWxkSW50ZXJydXB0TG9hZEZvclhGcmFtZU9wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCk6CisgICAgICAgICogcGFnZS9Db250
ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5
UG9saWN5OjpkaWRSZWNlaXZlSGVhZGVyKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcik6CisgICAg
ICAgICogcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBhZ2Uv
RmVhdHVyZU9ic2VydmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OlJlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMpOgorICAgICAgICAq
IHdvcmtlcnMvU2hhcmVkV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXI6OmNyZWF0ZSk6CisKIDIwMTQtMDItMjcgIENocmlzIEZsZWl6YWNoICA8Y2Zs
ZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBzcGVlY2hTeW50aGVzaXMuc3BlYWsgb2YgYSB6
ZXJvIGxlbmd0aCB1dHRlcmFuY2Uga2lsbHMgZnV0dXJlIHNwZWVjaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggMTllYWQ0ZS4uZWZjOTRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCkBAIC00MDgxLDggKzQwODEsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRTb3VyY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmggXAot
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9ic2VydmVyLmNwcCBcCi0JU291cmNlL1dlYkNv
cmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggZjg4MmMzYS4uNTIxOGI1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CkBAIC02OTk2LDcgKzY5OTYsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxF
dmVudEhhbmRsZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVx3aW5c
RXZlbnRIYW5kbGVyV2luLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2Vc
RXZlbnRTb3VyY2UuY3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxGZWF0
dXJlT2JzZXJ2ZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxGb2N1
c0NvbnRyb2xsZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxGcmFt
ZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXEZyYW1lRGVzdHJ1Y3Rp
b25PYnNlcnZlci5jcHAiIC8+CkBAIC0xODY3MCw3ICsxODY2OSw2IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwYWdlXERyYWdTdGF0ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccGFnZVxFdmVudEhhbmRsZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHBhZ2VcRXZlbnRTb3VyY2UuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2Vc
RmVhdHVyZU9ic2VydmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdlXEZv
Y3VzQ29udHJvbGxlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGFnZVxGb2N1
c0RpcmVjdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGFnZVxGcmFtZS5o
IiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCmluZGV4IGE2MTc0MDkuLmQzN2QxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAg
LTcyMyw5ICs3MjMsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxFdmVudFNv
dXJjZS5jcHAiPgogICAgICAgPEZpbHRlcj5wYWdlPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXEZlYXR1cmVPYnNlcnZlci5jcHAiPgot
ICAgICAgPEZpbHRlcj5wYWdlPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxwYWdlXEZvY3VzQ29udHJvbGxlci5jcHAiPgogICAgICAgPEZpbHRl
cj5wYWdlPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC03NTI5LDkgKzc1MjYsNiBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGFnZVxFdmVudFNvdXJjZS5oIj4KICAgICAgIDxG
aWx0ZXI+cGFnZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccGFnZVxGZWF0dXJlT2JzZXJ2ZXIuaCI+Ci0gICAgICA8RmlsdGVyPnBhZ2U8L0Zp
bHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2Vc
Rm9jdXNDb250cm9sbGVyLmgiPgogICAgICAgPEZpbHRlcj5wYWdlPC9GaWx0ZXI+CiAgICAgPC9D
bEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggZTRiZmU0NC4uNTZiYjUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzQ3NSw4ICszNDc1LDYgQEAK
IAkJOTdDMDc4NTAxMTY1RDVCRTAwM0EzMkVGIC8qIFN1ZmZpeFRyZWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3QzA3ODRGMTE2NUQ1QkUwMDNBMzJF
RiAvKiBTdWZmaXhUcmVlLmggKi87IH07CiAJCTk3QzQ3MURCMTJGOTI1QkQwMDg2MzU0QiAvKiBD
b250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTdDNDcxRDkxMkY5MjVCQzAwODYzNTRCIC8qIENvbnRlbnRTZWN1cml0
eVBvbGljeS5jcHAgKi87IH07CiAJCTk3QzQ3MURDMTJGOTI1QkQwMDg2MzU0QiAvKiBDb250ZW50
U2VjdXJpdHlQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk3QzQ3MURBMTJGOTI1QkQwMDg2MzU0QiAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3ku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5N0M3
NDAxNDE2MDNGN0ExMDAxMUZGMkQgLyogRmVhdHVyZU9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3Qzc0MDEyMTYwM0Y3QTEwMDExRkYy
RCAvKiBGZWF0dXJlT2JzZXJ2ZXIuY3BwICovOyB9OwotCQk5N0M3NDAxNTE2MDNGN0ExMDAxMUZG
MkQgLyogRmVhdHVyZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5N0M3NDAxMzE2MDNGN0ExMDAxMUZGMkQgLyogRmVhdHVyZU9ic2VydmVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTdE
MkFEMDMxNEI4MjNBNjAwOTNERjMyIC8qIERPTVdpbmRvd1Byb3BlcnR5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3RDJBRDAxMTRCODIzQTYwMDkz
REYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5jcHAgKi87IH07CiAJCTk3RDJBRDA0MTRCODIzQTYw
MDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTdEMkFEMDIxNEI4MjNBNjAwOTNERjMyIC8qIERPTVdpbmRv
d1Byb3BlcnR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTdEQ0UyMDExMDgwN0M3NTAwNTdEMzk0IC8qIEhpc3RvcnlDb250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3RENFMUZGMTA4
MDdDNzUwMDU3RDM5NCAvKiBIaXN0b3J5Q29udHJvbGxlci5jcHAgKi87IH07CkBAIC0xMDQzMyw4
ICsxMDQzMSw2IEBACiAJCTk3QzFGNTUyMTIyODU1Q0IwMEVERTYxNyAvKiBBdG9taWNIVE1MVG9r
ZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQXRvbWljSFRNTFRva2VuLmg7
IHBhdGggPSBwYXJzZXIvQXRvbWljSFRNTFRva2VuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk3QzQ3MUQ5MTJGOTI1QkMwMDg2MzU0QiAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3ku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTdDNDcxREExMkY5MjVC
RDAwODYzNTRCIC8qIENvbnRlbnRTZWN1cml0eVBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDb250ZW50U2VjdXJpdHlQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJOTdDNzQwMTIxNjAzRjdBMTAwMTFGRjJEIC8qIEZlYXR1cmVPYnNlcnZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGZWF0dXJlT2JzZXJ2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5N0M3NDAxMzE2MDNGN0ExMDAxMUZG
MkQgLyogRmVhdHVyZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZlYXR1cmVPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5N0QyQUQw
MTE0QjgyM0E2MDA5M0RGMzIgLyogRE9NV2luZG93UHJvcGVydHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NV2luZG93UHJvcGVydHkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5N0QyQUQwMjE0QjgyM0E2MDA5M0RGMzIgLyogRE9NV2luZG93
UHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2luZG93UHJv
cGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTdEQ0UxRkYxMDgwN0M3NTAw
NTdEMzk0IC8qIEhpc3RvcnlDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEhpc3RvcnlDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE2MDkwLDggKzE2MDg2LDYgQEAKIAkJCQlFMEZFRjM3MUIyN0M1M0VBQzFDMUZC
RUUgLyogRXZlbnRTb3VyY2UuY3BwICovLAogCQkJCUUwRkVGMzcxQjE3QzUzRUFDMUMxRkJFRSAv
KiBFdmVudFNvdXJjZS5oICovLAogCQkJCUUwRkVGMzcxQjA3QzUzRUFDMUMxRkJFRSAvKiBFdmVu
dFNvdXJjZS5pZGwgKi8sCi0JCQkJOTdDNzQwMTIxNjAzRjdBMTAwMTFGRjJEIC8qIEZlYXR1cmVP
YnNlcnZlci5jcHAgKi8sCi0JCQkJOTdDNzQwMTMxNjAzRjdBMTAwMTFGRjJEIC8qIEZlYXR1cmVP
YnNlcnZlci5oICovLAogCQkJCTE0OTkzQkUzMEIyRjJCMUMwMDUwNDk3RiAvKiBGb2N1c0NvbnRy
b2xsZXIuY3BwICovLAogCQkJCTE0OTkzQkU0MEIyRjJCMUMwMDUwNDk3RiAvKiBGb2N1c0NvbnRy
b2xsZXIuaCAqLywKIAkJCQkwNjIyODc4MzBCNERCMzIyMDAwQzM0REYgLyogRm9jdXNEaXJlY3Rp
b24uaCAqLywKQEAgLTIzNTMwLDcgKzIzNTI0LDYgQEAKIAkJCQk2RTY3RDJBNzEyODBFOEE0MDA4
NzU4RjcgLyogRXh0ZW5zaW9uczNET3BlbkdMLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NERBQjVC
MjE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3NzI4Njk0RjE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4dHVyZUZpbHRlckFu
aXNvdHJvcGljLmggaW4gSGVhZGVycyAqLywKLQkJCQk5N0M3NDAxNTE2MDNGN0ExMDAxMUZGMkQg
LyogRmVhdHVyZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzVFOEI4OTBFMURFMkQ2
MDA3RjI0ODEgLyogRkVCbGVuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc1RThCOEIwRTFERTJE
NjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NUU4QjhE
MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmggaW4gSGVhZGVycyAqLywK
QEAgLTI2OTM1LDcgKzI2OTI4LDYgQEAKIAkJCQk2RTY3RDJBNjEyODBFOEE0MDA4NzU4RjcgLyog
RXh0ZW5zaW9uczNET3BlbkdMLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0REFCNUIxMTVBNjIz
NTgwMDk3QzFFNCAvKiBFeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNzcyODY5NEUxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ry
b3BpYy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5N0M3NDAxNDE2MDNGN0ExMDAxMUZGMkQgLyog
RmVhdHVyZU9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4Qjg4MEUxREUyRDYw
MDdGMjQ4MSAvKiBGRUJsZW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4QjhBMEUxREUy
RDYwMDdGMjQ4MSAvKiBGRUNvbG9yTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4
QjhDMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKaW5kZXggYzRmOWQwMy4uNzM3NWVhYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCkBAIC0xNzcsNDEgKzE3Nyw2IEBAIHN0YXRp
YyBjb25zdCBBdG9taWNTdHJpbmcmIGxlZ2FjeVR5cGUoY29uc3QgRXZlbnQqIGV2ZW50KQogICAg
IHJldHVybiBlbXB0eUF0b207CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRPYnNlcnZl
TGVnYWN5VHlwZShjb25zdCBBdG9taWNTdHJpbmcmIGxlZ2FjeVR5cGVOYW1lLCBib29sIGhhc0xl
Z2FjeVR5cGVMaXN0ZW5lcnMsIGJvb2wgaGFzTmV3VHlwZUxpc3RlbmVycywgRmVhdHVyZU9ic2Vy
dmVyOjpGZWF0dXJlJiBmZWF0dXJlKQotewotICAgIGlmIChsZWdhY3lUeXBlTmFtZSA9PSBldmVu
dE5hbWVzKCkud2Via2l0VHJhbnNpdGlvbkVuZEV2ZW50KSB7Ci0gICAgICAgIGlmIChoYXNMZWdh
Y3lUeXBlTGlzdGVuZXJzKSB7Ci0gICAgICAgICAgICBpZiAoaGFzTmV3VHlwZUxpc3RlbmVycykK
LSAgICAgICAgICAgICAgICBmZWF0dXJlID0gRmVhdHVyZU9ic2VydmVyOjpQcmVmaXhlZEFuZFVu
cHJlZml4ZWRUcmFuc2l0aW9uRW5kRXZlbnQ7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgZmVhdHVyZSA9IEZlYXR1cmVPYnNlcnZlcjo6UHJlZml4ZWRUcmFuc2l0aW9uRW5kRXZl
bnQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBBU1NFUlQoaGFzTmV3VHlwZUxpc3Rl
bmVycyk7Ci0gICAgICAgICAgICBmZWF0dXJlID0gRmVhdHVyZU9ic2VydmVyOjpVbnByZWZpeGVk
VHJhbnNpdGlvbkVuZEV2ZW50OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgRXZlbnRUYXJnZXQ6OnNldHVwTGVnYWN5
VHlwZU9ic2VydmVySWZOZWVkZWQoY29uc3QgQXRvbWljU3RyaW5nJiBsZWdhY3lUeXBlTmFtZSwg
Ym9vbCBoYXNMZWdhY3lUeXBlTGlzdGVuZXJzLCBib29sIGhhc05ld1R5cGVMaXN0ZW5lcnMpCi17
Ci0gICAgQVNTRVJUKCFsZWdhY3lUeXBlTmFtZS5pc0VtcHR5KCkpOwotICAgIEFTU0VSVChoYXNM
ZWdhY3lUeXBlTGlzdGVuZXJzIHx8IGhhc05ld1R5cGVMaXN0ZW5lcnMpOwotCi0gICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAg
ICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChjb250ZXh0KTsKLSAgICBp
ZiAoIWRvY3VtZW50LT5kb21XaW5kb3coKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRmVhdHVy
ZU9ic2VydmVyOjpGZWF0dXJlIGZlYXR1cmU7Ci0gICAgaWYgKHNob3VsZE9ic2VydmVMZWdhY3lU
eXBlKGxlZ2FjeVR5cGVOYW1lLCBoYXNMZWdhY3lUeXBlTGlzdGVuZXJzLCBoYXNOZXdUeXBlTGlz
dGVuZXJzLCBmZWF0dXJlKSkKLSAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGRvY3Vt
ZW50LT5kb21XaW5kb3coKSwgZmVhdHVyZSk7Ci19Ci0KIGJvb2wgRXZlbnRUYXJnZXQ6OmZpcmVF
dmVudExpc3RlbmVycyhFdmVudCogZXZlbnQpCiB7CiAgICAgQVNTRVJUKCFOb0V2ZW50RGlzcGF0
Y2hBc3NlcnRpb246OmlzRXZlbnREaXNwYXRjaEZvcmJpZGRlbigpKTsKQEAgLTIzNyw5ICsyMDIs
NiBAQCBib29sIEV2ZW50VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQqIGV2ZW50KQog
ICAgICAgICBldmVudC0+c2V0VHlwZSh0eXBlTmFtZSk7CiAgICAgfQogCi0gICAgaWYgKCFsZWdh
Y3lUeXBlTmFtZS5pc0VtcHR5KCkgJiYgKGxlZ2FjeUxpc3RlbmVyc1ZlY3RvciB8fCBsaXN0ZW5l
cnNWZWN0b3IpKQotICAgICAgICBzZXR1cExlZ2FjeVR5cGVPYnNlcnZlcklmTmVlZGVkKGxlZ2Fj
eVR5cGVOYW1lLCAhIWxlZ2FjeUxpc3RlbmVyc1ZlY3RvciwgISFsaXN0ZW5lcnNWZWN0b3IpOwot
CiAgICAgcmV0dXJuICFldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOwogfQogICAgICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50VGFyZ2V0LmgKaW5kZXggZDExZWM2OS4uNTZiN2QxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50VGFyZ2V0LmgKQEAgLTE1NSw3ICsxNTUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgPSAwOwogICAgICAgICAKICAg
ICAgICAgdm9pZCBmaXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQqLCBFdmVudFRhcmdldERhdGEqLCBF
dmVudExpc3RlbmVyVmVjdG9yJik7Ci0gICAgICAgIHZvaWQgc2V0dXBMZWdhY3lUeXBlT2JzZXJ2
ZXJJZk5lZWRlZChjb25zdCBBdG9taWNTdHJpbmcmIGxlZ2FjeVR5cGVOYW1lLCBib29sIGhhc0xl
Z2FjeVR5cGVMaXN0ZW5lcnMsIGJvb2wgaGFzTmV3VHlwZUxpc3RlbmVycyk7CiAKICAgICAgICAg
ZnJpZW5kIGNsYXNzIEV2ZW50TGlzdGVuZXJJdGVyYXRvcjsKICAgICB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCA5N2NkNDM1Li4yZTJkOWJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtNjksMTEgKzY5LDYgQEAgQ29sb3JJbnB1
dFR5cGU6On5Db2xvcklucHV0VHlwZSgpCiAgICAgZW5kQ29sb3JDaG9vc2VyKCk7CiB9CiAKLXZv
aWQgQ29sb3JJbnB1dFR5cGU6OmF0dGFjaCgpCi17Ci0gICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2li
bGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVDb2xvcik7Ci19Ci0KIGJvb2wgQ29sb3JJbnB1
dFR5cGU6OmlzQ29sb3JDb250cm9sKCkgY29uc3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAppbmRleCAzNjBlMzAwLi5iZjk0ZTg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCkBAIC01MSw3ICs1MSw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIFZlY3RvcjxDb2xvcj4gc3VnZ2VzdGlvbnMoKSBjb25zdCBvdmVycmlkZTsKIAog
cHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBib29sIGlzQ29sb3JDb250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c1JlcXVpcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlSW5wdXRUeXBlLmNwcAppbmRleCA5MWE3YmMyLi45ZGU3ODVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKQEAgLTQ5LDExICs0OSw2IEBAIERhdGVJbnB1dFR5
cGU6OkRhdGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKIH0KIAotdm9p
ZCBEYXRlSW5wdXRUeXBlOjphdHRhY2goKQotewotICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxl
KEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlRGF0ZSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmlu
ZyYgRGF0ZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4g
SW5wdXRUeXBlTmFtZXM6OmRhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKaW5k
ZXggZjE0YTI5Zi4uODhlMGFhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRl
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKQEAg
LTQxLDcgKzQxLDYgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IERhdGVJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCYpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBEYXRlQ29tcG9uZW50czo6VHlwZSBkYXRlVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5n
ZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Rh
dGVUaW1lSW5wdXRUeXBlLmNwcAppbmRleCAxZTdmYjFmLi5kYzEwZjg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcApAQCAtNDUsMTEgKzQ1LDYgQEAgc3RhdGlj
IGNvbnN0IGludCBkYXRlVGltZURlZmF1bHRTdGVwID0gNjA7CiBzdGF0aWMgY29uc3QgaW50IGRh
dGVUaW1lRGVmYXVsdFN0ZXBCYXNlID0gMDsKIHN0YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVTdGVw
U2NhbGVGYWN0b3IgPSAxMDAwOwogCi12b2lkIERhdGVUaW1lSW5wdXRUeXBlOjphdHRhY2goKQot
ewotICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBl
RGF0ZVRpbWUpOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIERhdGVUaW1lSW5wdXRUeXBlOjpm
b3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6ZGF0
ZXRpbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaAppbmRleCBhYWIy
NmEzLi5mNWY3NDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5w
dXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5oCkBA
IC00Miw3ICs0Miw2IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBEYXRlVGltZUlucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VEYXRlVGltZUlucHV0VHlwZShlbGVtZW50
KSB7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFN0ZXBSYW5nZSBjcmVhdGVTdGVwUmFuZ2UoQW55U3Rl
cEhhbmRsaW5nKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVU
aW1lTG9jYWxJbnB1dFR5cGUuY3BwCmluZGV4IDZmMGYyNDkuLmViZGEzZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcApAQCAtNDQsMTEgKzQ0
LDYgQEAgc3RhdGljIGNvbnN0IGludCBkYXRlVGltZUxvY2FsRGVmYXVsdFN0ZXAgPSA2MDsKIHN0
YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVMb2NhbERlZmF1bHRTdGVwQmFzZSA9IDA7CiBzdGF0aWMg
Y29uc3QgaW50IGRhdGVUaW1lTG9jYWxTdGVwU2NhbGVGYWN0b3IgPSAxMDAwOwogCi12b2lkIERh
dGVUaW1lTG9jYWxJbnB1dFR5cGU6OmF0dGFjaCgpCi17Ci0gICAgb2JzZXJ2ZUZlYXR1cmVJZlZp
c2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVEYXRlVGltZUxvY2FsKTsKLX0KLQogY29u
c3QgQXRvbWljU3RyaW5nJiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUo
KSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWVsb2NhbCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaAppbmRleCBiMWJj
MDQ5Li5kOGE1M2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9j
YWxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1
dFR5cGUuaApAQCAtNDEsNyArNDEsNiBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgRGF0ZVRpbWVM
b2NhbElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIHZpcnR1
YWwgdm9pZCBhdHRhY2goKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBEYXRlQ29t
cG9uZW50czo6VHlwZSBkYXRlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgZG91
YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJ
bnB1dFR5cGUuY3BwCmluZGV4IDU3MDI3MDEuLmE1ZjY4MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RW1haWxJbnB1dFR5cGUuY3BwCkBAIC01MiwxMiArNTIsNiBAQCBzdGF0aWMgYm9vbCBpc1ZhbGlk
RW1haWxBZGRyZXNzKGNvbnN0IFN0cmluZyYgYWRkcmVzcykKICAgICByZXR1cm4gIW1hdGNoT2Zm
c2V0ICYmIG1hdGNoTGVuZ3RoID09IGFkZHJlc3NMZW5ndGg7CiB9CiAKLXZvaWQgRW1haWxJbnB1
dFR5cGU6OmF0dGFjaCgpCi17Ci0gICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRhY2goKTsKLSAg
ICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZUVtYWls
KTsKLX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBFbWFpbElucHV0VHlwZTo6Zm9ybUNvbnRyb2xU
eXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OmVtYWlsKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmgKaW5kZXggYTBjNjQ1MS4uMjBiNDBkZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaApAQCAtNDAsNyArNDAsNiBAQCBwdWJsaWM6CiAg
ICAgZXhwbGljaXQgRW1haWxJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBC
YXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZv
cm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCB0eXBlTWlz
bWF0Y2hGb3IoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IHR5cGVNaXNtYXRjaCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERhdGFMaXN0RWxlbWVudC5jcHAKaW5kZXggOGMyMDRlYi4uMWMwM2YxYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAj
aWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVu
dC5oIgogCi0jaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCiAjaW5jbHVkZSAiSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmgiCiAKQEAgLTQ2LDcgKzQ1
LDYgQEAgaW5saW5lIEhUTUxEYXRhTGlzdEVsZW1lbnQ6OkhUTUxEYXRhTGlzdEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG8KIAogUGFzc1JlZlB0cjxIVE1MRGF0YUxpc3RF
bGVtZW50PiBIVE1MRGF0YUxpc3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIEZlYXR1cmVPYnNlcnZlcjo6b2Jz
ZXJ2ZSgmZG9jdW1lbnQsIEZlYXR1cmVPYnNlcnZlcjo6RGF0YUxpc3RFbGVtZW50KTsKICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxEYXRhTGlzdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHAKaW5kZXggNTBiMGJmYi4uMGU0NjdkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiRXZl
bnQuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgi
Ci0jaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50Lmgi
CkBAIC0xMjQsMTAgKzEyMyw5IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6c2V0QW5j
ZXN0b3JEaXNhYmxlZChib29sIGlzRGlzYWJsZWQpCiAKIHZvaWQgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bWljU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBpZiAobmFtZSA9PSBmb3JtQXR0cikgeworICAgIGlm
IChuYW1lID09IGZvcm1BdHRyKQogICAgICAgICBmb3JtQXR0cmlidXRlQ2hhbmdlZCgpOwotICAg
ICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoJmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZl
cjo6Rm9ybUF0dHJpYnV0ZSk7Ci0gICAgfSBlbHNlIGlmIChuYW1lID09IGRpc2FibGVkQXR0cikg
eworICAgIGVsc2UgaWYgKG5hbWUgPT0gZGlzYWJsZWRBdHRyKSB7CiAgICAgICAgIGJvb2wgb2xk
RGlzYWJsZWQgPSBtX2Rpc2FibGVkOwogICAgICAgICBtX2Rpc2FibGVkID0gIXZhbHVlLmlzTnVs
bCgpOwogICAgICAgICBpZiAob2xkRGlzYWJsZWQgIT0gbV9kaXNhYmxlZCkKQEAgLTE0MiwxMCAr
MTQwLDYgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG8KICAgICAgICAgbV9pc1JlcXVpcmVkID0g
IXZhbHVlLmlzTnVsbCgpOwogICAgICAgICBpZiAod2FzUmVxdWlyZWQgIT0gbV9pc1JlcXVpcmVk
KQogICAgICAgICAgICAgcmVxdWlyZWRBdHRyaWJ1dGVDaGFuZ2VkKCk7Ci0gICAgICAgIEZlYXR1
cmVPYnNlcnZlcjo6b2JzZXJ2ZSgmZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVyOjpSZXF1aXJl
ZEF0dHJpYnV0ZSk7Ci0gICAgfSBlbHNlIGlmIChuYW1lID09IGF1dG9mb2N1c0F0dHIpIHsKLSAg
ICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKLSAgICAgICAg
RmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKCZkb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OkF1
dG9Gb2N1c0F0dHJpYnV0ZSk7CiAgICAgfSBlbHNlCiAgICAgICAgIEhUTUxFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcAppbmRleCA4ZmZhM2E3Li5kZjIwZDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTY4OCwzNCArNjg4LDI2IEBAIHZvaWQgSFRNTElucHV0
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbWljU3RyCiAgICAgICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKFJlY29uc3RydWN0UmVu
ZGVyVHJlZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMo
KTsKLSAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKCZkb2N1bWVudCgpLCBGZWF0dXJl
T2JzZXJ2ZXI6OlJlc3VsdHNBdHRyaWJ1dGUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBhdXRv
c2F2ZUF0dHIpIHsKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwotICAgICAgICBGZWF0
dXJlT2JzZXJ2ZXI6Om9ic2VydmUoJmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6QXV0b1Nh
dmVBdHRyaWJ1dGUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBpbmNyZW1lbnRhbEF0dHIpIHsK
ICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwotICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6
Om9ic2VydmUoJmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5jcmVtZW50YWxBdHRyaWJ1
dGUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBtaW5BdHRyKSB7CiAgICAgICAgIG1faW5wdXRU
eXBlLT5taW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKTsKICAgICAgICAgc2V0TmVlZHNWYWxpZGl0
eUNoZWNrKCk7Ci0gICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZSgmZG9jdW1lbnQoKSwg
RmVhdHVyZU9ic2VydmVyOjpNaW5BdHRyaWJ1dGUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBt
YXhBdHRyKSB7CiAgICAgICAgIG1faW5wdXRUeXBlLT5taW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQo
KTsKICAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7Ci0gICAgICAgIEZlYXR1cmVPYnNl
cnZlcjo6b2JzZXJ2ZSgmZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVyOjpNYXhBdHRyaWJ1dGUp
OwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBtdWx0aXBsZUF0dHIpIHsKICAgICAgICAgbV9pbnB1
dFR5cGUtPm11bHRpcGxlQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgICAgICBzZXROZWVkc1ZhbGlk
aXR5Q2hlY2soKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gc3RlcEF0dHIpIHsKICAgICAgICAg
bV9pbnB1dFR5cGUtPnN0ZXBBdHRyaWJ1dGVDaGFuZ2VkKCk7CiAgICAgICAgIHNldE5lZWRzVmFs
aWRpdHlDaGVjaygpOwotICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoJmRvY3VtZW50
KCksIEZlYXR1cmVPYnNlcnZlcjo6U3RlcEF0dHJpYnV0ZSk7CiAgICAgfSBlbHNlIGlmIChuYW1l
ID09IHBhdHRlcm5BdHRyKSB7CiAgICAgICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwotICAg
ICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoJmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZl
cjo6UGF0dGVybkF0dHJpYnV0ZSk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09IHByZWNpc2lvbkF0
dHIpIHsKICAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7Ci0gICAgICAgIEZlYXR1cmVP
YnNlcnZlcjo6b2JzZXJ2ZSgmZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVyOjpQcmVjaXNpb25B
dHRyaWJ1dGUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBkaXNhYmxlZEF0dHIpIHsKICAgICAg
ICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKICAgICAgICAgbV9pbnB1dFR5cGUtPmRpc2FibGVkQXR0cmlidXRlQ2hhbmdlZCgpOwpAQCAt
NzMwLDcgKzcyMiw2IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyCiAgICAgICAgICAgICByZXNl
dExpc3RBdHRyaWJ1dGVUYXJnZXRPYnNlcnZlcigpOwogICAgICAgICAgICAgbGlzdEF0dHJpYnV0
ZVRhcmdldENoYW5nZWQoKTsKICAgICAgICAgfQotICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9i
c2VydmUoJmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6TGlzdEF0dHJpYnV0ZSk7CiAgICAg
fQogI2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKQEAgLTc0NSw3ICs3MzYsNiBAQCB2
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21pY1N0cgogICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKFJlY29u
c3RydWN0UmVuZGVyVHJlZSk7CiAKICAgICAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNS
ZW5kZXJlcihmYWxzZSk7Ci0gICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZSgmZG9jdW1l
bnQoKSwgRmVhdHVyZU9ic2VydmVyOjpQcmVmaXhlZFNwZWVjaEF0dHJpYnV0ZSk7CiAgICAgfSBl
bHNlIGlmIChuYW1lID09IG9ud2Via2l0c3BlZWNoY2hhbmdlQXR0cikKICAgICAgICAgc2V0QXR0
cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkud2Via2l0c3BlZWNoY2hhbmdlRXZlbnQs
IG5hbWUsIHZhbHVlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA0YzhjMGYwLi5jYWY5YmQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApA
QCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgi
CiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1
ZGUgIkhUTUxCUkVsZW1lbnQuaCIKQEAgLTQ4NiwxMCArNDg1LDkgQEAgdm9pZCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6c2VsZWN0aW9uQ2hhbmdlZChib29sIHNob3VsZEZpcmVTZWxlY3RF
dmVudCkKIAogdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsK
LSAgICBpZiAobmFtZSA9PSBwbGFjZWhvbGRlckF0dHIpIHsKKyAgICBpZiAobmFtZSA9PSBwbGFj
ZWhvbGRlckF0dHIpCiAgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVmlzaWJpbGl0eSh0cnVlKTsK
LSAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKCZkb2N1bWVudCgpLCBGZWF0dXJlT2Jz
ZXJ2ZXI6OlBsYWNlaG9sZGVyQXR0cmlidXRlKTsKLSAgICB9IGVsc2UKKyAgICBlbHNlCiAgICAg
ICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OnBhcnNlQXR0cmlidXRlKG5hbWUs
IHZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IDVjOWM2MjMuLmI2
ZTM3NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTExNTAsMTIgKzExNTAsNCBA
QCB2b2lkIElucHV0VHlwZTo6c3RlcFVwRnJvbVJlbmRlcmVyKGludCBuKQogICAgIH0KIH0KIAot
dm9pZCBJbnB1dFR5cGU6Om9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6
RmVhdHVyZSBmZWF0dXJlKSBjb25zdAotewotICAgIGlmIChSZW5kZXJTdHlsZSogc3R5bGUgPSBl
bGVtZW50KCkucmVuZGVyU3R5bGUoKSkgewotICAgICAgICBpZiAoc3R5bGUtPnZpc2liaWxpdHko
KSAhPSBISURERU4pCi0gICAgICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoJmVsZW1l
bnQoKS5kb2N1bWVudCgpLCBmZWF0dXJlKTsKLSAgICB9Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGE1ZDYwNmQuLjU1NDliNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMzMsNyArMzMsNiBAQAogI2lmbmRlZiBJbnB1dFR5cGVf
aAogI2RlZmluZSBJbnB1dFR5cGVfaAogCi0jaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAj
aW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJQ
dHIuaCIKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKQEAgLTMyNSw3ICszMjQsNiBAQCBwcm90ZWN0
ZWQ6CiAgICAgSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxl
bWVudDsgfQogICAgIENocm9tZSogY2hyb21lKCkgY29uc3Q7CiAgICAgRGVjaW1hbCBwYXJzZVRv
TnVtYmVyT3JOYU4oY29uc3QgU3RyaW5nJikgY29uc3Q7Ci0gICAgdm9pZCBvYnNlcnZlRmVhdHVy
ZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OkZlYXR1cmUpIGNvbnN0OwogCiBwcml2YXRlOgog
ICAgIC8vIEhlbHBlciBmb3Igc3RlcFVwKCkvc3RlcERvd24oKS4gQWRkcyBzdGVwIHZhbHVlICog
Y291bnQgdG8gdGhlIGN1cnJlbnQgdmFsdWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01vbnRoSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5
cGUuY3BwCmluZGV4IGE4NTVlYTAuLjYyZjFhNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJ
bnB1dFR5cGUuY3BwCkBAIC00NywxMSArNDcsNiBAQCBzdGF0aWMgY29uc3QgaW50IG1vbnRoRGVm
YXVsdFN0ZXAgPSAxOwogc3RhdGljIGNvbnN0IGludCBtb250aERlZmF1bHRTdGVwQmFzZSA9IDA7
CiBzdGF0aWMgY29uc3QgaW50IG1vbnRoU3RlcFNjYWxlRmFjdG9yID0gMTsKIAotdm9pZCBNb250
aElucHV0VHlwZTo6YXR0YWNoKCkKLXsKLSAgICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0
dXJlT2JzZXJ2ZXI6OklucHV0VHlwZU1vbnRoKTsKLX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBN
b250aElucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5w
dXRUeXBlTmFtZXM6Om1vbnRoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01v
bnRoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKaW5k
ZXggZjMxMjUzMy4uY2I4NjlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250
aElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApA
QCAtNDEsNyArNDEsNiBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgTW9udGhJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0
VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0
ZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRGF0ZSgp
IGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCmlu
ZGV4IDU4ODgyMDguLjg0YjNjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVt
YmVySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlw
ZS5jcHAKQEAgLTkyLDEyICs5Miw2IEBAIHN0YXRpYyBSZWFsTnVtYmVyUmVuZGVyU2l6ZSBjYWxj
dWxhdGVSZW5kZXJTaXplKGNvbnN0IERlY2ltYWwmIHZhbHVlKQogICAgIHJldHVybiBSZWFsTnVt
YmVyUmVuZGVyU2l6ZShzaXplT2ZTaWduICsgc2l6ZU9mWmVybyAsIG51bWJlck9mWmVyb0FmdGVy
RGVjaW1hbFBvaW50ICsgc2l6ZU9mRGlnaXRzKTsKIH0KIAotdm9pZCBOdW1iZXJJbnB1dFR5cGU6
OmF0dGFjaCgpCi17Ci0gICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRhY2goKTsKLSAgICBvYnNl
cnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZU51bWJlcik7Ci19
Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgTnVtYmVySW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUo
KSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6bnVtYmVyKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCA3YWJhN2Y5Li4zNjNlYWUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTQwLDcgKzQwLDYgQEAgcHVibGljOgog
ICAgIGV4cGxpY2l0IE51bWJlcklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6
IFRleHRGaWVsZElucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFs
IHZvaWQgYXR0YWNoKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRW
YWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhh
dmlvcikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCAxYzU4
NTc2Li44MDk2YTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAt
ODEsMTEgKzgxLDYgQEAgUmFuZ2VJbnB1dFR5cGU6OlJhbmdlSW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQpCiB7CiB9CiAKLXZvaWQgUmFuZ2VJbnB1dFR5cGU6OmF0dGFjaCgpCi17
Ci0gICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVS
YW5nZSk7Ci19Ci0KIGJvb2wgUmFuZ2VJbnB1dFR5cGU6OmlzUmFuZ2VDb250cm9sKCkgY29uc3QK
IHsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFu
Z2VJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaAppbmRl
eCBmNTZjYTI2Li5lN2I1ZTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jhbmdl
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCkBA
IC00Miw3ICs0Miw2IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBSYW5nZUlucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1JhbmdlQ29udHJvbCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRG91YmxlKCkgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKaW5kZXggN2E5ZTRj
YS4uN2Q0NjgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcApAQCAt
NTEsMTIgKzUxLDYgQEAgU2VhcmNoSW5wdXRUeXBlOjpTZWFyY2hJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkKIHsKIH0KIAotdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmF0dGFjaCgp
Ci17Ci0gICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRhY2goKTsKLSAgICBvYnNlcnZlRmVhdHVy
ZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZVNlYXJjaCk7Ci19Ci0KIHZvaWQg
U2VhcmNoSW5wdXRUeXBlOjphZGRTZWFyY2hSZXN1bHQoKQogewogI2lmICFQTEFURk9STShJT1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaAppbmRleCAxNDc2MGYyLi4yZjliNmYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmgKQEAgLTQ2LDcgKzQ2LDYgQEAg
cHVibGljOgogICAgIHZvaWQgc3RvcFNlYXJjaEV2ZW50VGltZXIoKTsKIAogcHJpdmF0ZToKLSAg
ICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGFkZFNl
YXJjaFJlc3VsdCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUlucHV0UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcAppbmRl
eCA3N2ZkMGUwLi5iNmY1OTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVw
aG9uZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1
dFR5cGUuY3BwCkBAIC0zNiwxMiArMzYsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZv
aWQgVGVsZXBob25lSW5wdXRUeXBlOjphdHRhY2goKQotewotICAgIFRleHRGaWVsZElucHV0VHlw
ZTo6YXR0YWNoKCk7Ci0gICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVy
OjpJbnB1dFR5cGVUZWwpOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIFRlbGVwaG9uZUlucHV0
VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFt
ZXM6OnRlbGVwaG9uZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhv
bmVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgK
aW5kZXggNTgwNGY5Yi4uYjcyM2Y5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZWxlcGhvbmVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlu
cHV0VHlwZS5oCkBAIC00MCw3ICs0MCw2IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBUZWxlcGhv
bmVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlw
ZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0U3BlZWNoQXR0
cmlidXRlKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzVGVsZXBob25lRmllbGQoKSBj
b25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuY3BwCmluZGV4IGFh
MDgwNGUuLmUxYzVkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmNwcApAQCAt
MzksMTYgKzM5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogCi12b2lkIFRleHRJbnB1dFR5cGU6OmF0dGFjaCgpCi17Ci0gICAgVGV4dEZpZWxk
SW5wdXRUeXBlOjphdHRhY2goKTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUgPSBlbGVt
ZW50KCkuZmFzdEdldEF0dHJpYnV0ZSh0eXBlQXR0cik7Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdD
YXNlKHR5cGUsIElucHV0VHlwZU5hbWVzOjpkYXRldGltZSgpKSkKLSAgICAgICAgb2JzZXJ2ZUZl
YXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVEYXRlVGltZUZhbGxiYWNr
KTsKLSAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh0eXBlLCBJbnB1dFR5cGVOYW1lczo6
d2VlaygpKSkKLSAgICAgICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVy
OjpJbnB1dFR5cGVXZWVrRmFsbGJhY2spOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRJ
bnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlw
ZU5hbWVzOjp0ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5oCmluZGV4IDM0OTA1
YTIuLjVjY2NkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5oCkBAIC00MCw3ICs0
MCw2IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBUZXh0SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6
Ci0gICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUmVzcGVjdFNwZWVjaEF0dHJpYnV0ZSgpIG92ZXJyaWRlOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDlkYjU4NmQuLjA4ZDZiMzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcApAQCAtNTIsMTEgKzUyLDYgQEAgVGlt
ZUlucHV0VHlwZTo6VGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewog
fQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OmF0dGFjaCgpCi17Ci0gICAgb2JzZXJ2ZUZlYXR1cmVJ
ZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVUaW1lKTsKLX0KLQogY29uc3QgQXRv
bWljU3RyaW5nJiBUaW1lSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAg
IHJldHVybiBJbnB1dFR5cGVOYW1lczo6dGltZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5
cGUuaAppbmRleCAyYzU1YmRmLi40YjFlMDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5
cGUuaApAQCAtNDEsNyArNDEsNiBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgVGltZUlucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGF0dGFj
aCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJv
bFR5cGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpUeXBl
IGRhdGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBEZWNpbWFsIGRlZmF1bHRW
YWx1ZUZvclN0ZXBVcCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5
cGUuY3BwCmluZGV4IGNiYTI5ZWMuLmYzMjI5ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVVJMSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0
VHlwZS5jcHAKQEAgLTM4LDEyICszOCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9p
ZCBVUkxJbnB1dFR5cGU6OmF0dGFjaCgpCi17Ci0gICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRh
Y2goKTsKLSAgICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0
VHlwZVVSTCk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgVVJMSW5wdXRUeXBlOjpmb3JtQ29u
dHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6dXJsKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaAppbmRleCAzOTYwNTZmLi5lYWUzY2FmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVVJMSW5wdXRUeXBlLmgKQEAgLTQwLDcgKzQwLDYgQEAgcHVibGljOgogICAgIGV4
cGxpY2l0IFVSTElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0
SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2goKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRy
b2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHR5cGVNaXNtYXRjaEZv
cihjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1p
c21hdGNoKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1dlZWtJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNw
cAppbmRleCA1YmVlOTIxLi4xNDllZDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1dlZWtJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlw
ZS5jcHAKQEAgLTQ0LDExICs0NCw2IEBAIHN0YXRpYyBjb25zdCBpbnQgd2Vla0RlZmF1bHRTdGVw
QmFzZSA9IC0yNTkyMDAwMDA7IC8vIFRoZSBmaXJzdCBkYXkgb2YgMTk3MC1XMDEuCiBzdGF0aWMg
Y29uc3QgaW50IHdlZWtEZWZhdWx0U3RlcCA9IDE7CiBzdGF0aWMgY29uc3QgaW50IHdlZWtTdGVw
U2NhbGVGYWN0b3IgPSA2MDQ4MDAwMDA7CiAKLXZvaWQgV2Vla0lucHV0VHlwZTo6YXR0YWNoKCkK
LXsKLSAgICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlw
ZVdlZWspOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIFdlZWtJbnB1dFR5cGU6OmZvcm1Db250
cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjp3ZWVrKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oCmluZGV4IDg4MzFmNmQuLjNkZmRkZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oCkBAIC00MSw3ICs0MSw2IEBAIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBXZWVrSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFz
ZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6
Ci0gICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBTdGVwUmFuZ2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29uc3Qg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCA1
MzlhNTVkLi41OTA4OWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5j
cHAKQEAgLTYzNSwxMCArNjM1LDggQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNl
aXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmUKICAgICBpZiAo
bV9pc0xvYWRpbmdNdWx0aXBhcnRDb250ZW50KSB7CiAgICAgICAgIHNldHVwRm9yUmVwbGFjZSgp
OwogICAgICAgICBtX21haW5SZXNvdXJjZS0+Y2xlYXIoKTsKLSAgICB9IGVsc2UgaWYgKHJlc3Bv
bnNlLmlzTXVsdGlwYXJ0KCkpIHsKLSAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKG1f
ZnJhbWUtPmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6TXVsdGlwYXJ0TWFpblJlc291cmNl
KTsKKyAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLmlzTXVsdGlwYXJ0KCkpCiAgICAgICAgIG1faXNM
b2FkaW5nTXVsdGlwYXJ0Q29udGVudCA9IHRydWU7Ci0gICAgfQogCiAgICAgbV9yZXNwb25zZSA9
IHJlc3BvbnNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBiNjcy
ZTI1Li5mZmY2MjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTMw
MzYsOCArMzAzNiw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmFwcGx5VXNlckFnZW50KFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKIAogYm9vbCBGcmFtZUxvYWRlcjo6c2hvdWxkSW50ZXJydXB0TG9h
ZEZvclhGcmFtZU9wdGlvbnMoY29uc3QgU3RyaW5nJiBjb250ZW50LCBjb25zdCBVUkwmIHVybCwg
dW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKIHsKLSAgICBGZWF0dXJlT2JzZXJ2ZXI6
Om9ic2VydmUobV9mcmFtZS5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OlhGcmFtZU9wdGlv
bnMpOwotCiAgICAgRnJhbWUmIHRvcEZyYW1lID0gbV9mcmFtZS50cmVlKCkudG9wKCk7CiAgICAg
aWYgKCZtX2ZyYW1lID09ICZ0b3BGcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzA0
NiwxNSArMzA0NCwxMiBAQCBib29sIEZyYW1lTG9hZGVyOjpzaG91bGRJbnRlcnJ1cHRMb2FkRm9y
WEZyYW1lT3B0aW9ucyhjb25zdCBTdHJpbmcmIGNvbnRlbnQsIGNvbgogCiAgICAgc3dpdGNoIChk
aXNwb3NpdGlvbikgewogICAgIGNhc2UgWEZyYW1lT3B0aW9uc1NhbWVPcmlnaW46IHsKLSAgICAg
ICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKG1fZnJhbWUuZG9jdW1lbnQoKSwgRmVhdHVyZU9i
c2VydmVyOjpYRnJhbWVPcHRpb25zU2FtZU9yaWdpbik7CiAgICAgICAgIFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpOwogICAgICAgICBp
ZiAoIW9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wRnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZm9yIChG
cmFtZSogZnJhbWUgPSBtX2ZyYW1lLnRyZWUoKS5wYXJlbnQoKTsgZnJhbWU7IGZyYW1lID0gZnJh
bWUtPnRyZWUoKS5wYXJlbnQoKSkgewotICAgICAgICAgICAgaWYgKCFvcmlnaW4tPmlzU2FtZVNj
aGVtZUhvc3RQb3J0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkgewotICAg
ICAgICAgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShtX2ZyYW1lLmRvY3VtZW50KCks
IEZlYXR1cmVPYnNlcnZlcjo6WEZyYW1lT3B0aW9uc1NhbWVPcmlnaW5XaXRoQmFkQW5jZXN0b3JD
aGFpbik7CisgICAgICAgICAgICBpZiAoIW9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQoZnJh
bWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpKQogICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CkBAIC0zMzYyLDEyICszMzU3LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRpc3BhdGNoRGlkQ29t
bWl0TG9hZCgpCiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWQo
Jm1fZnJhbWUsIG1fZG9jdW1lbnRMb2FkZXIuZ2V0KCkpOwogCi0gICAgaWYgKG1fZnJhbWUuaXNN
YWluRnJhbWUoKSkgewotICAgICAgICBtX2ZyYW1lLnBhZ2UoKS0+ZmVhdHVyZU9ic2VydmVyKCkt
PmRpZENvbW1pdExvYWQoKTsKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKKyAgICBpZiAo
bV9mcmFtZS5pc01haW5GcmFtZSgpKQogICAgICAgICBtX2ZyYW1lLnBhZ2UoKS0+cmVtb3RlSW5z
cGVjdG9ySW5mb3JtYXRpb25EaWRDaGFuZ2UoKTsKICNlbmRpZgotICAgIH0KIH0KIAogdm9pZCBG
cmFtZUxvYWRlcjo6dGVsbENsaWVudEFib3V0UGFzdE1lbW9yeUNhY2hlTG9hZHMoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IDFmYTExMmEu
LjM3M2VmY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGlj
eS5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAi
RE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRmVhdHVy
ZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiRm9ybURhdGEuaCIKICNpbmNsdWRlICJGb3JtRGF0YUxp
c3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtMTU1LDIyICsxNTQsNiBAQCBib29sIGlzRGly
ZWN0aXZlTmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgKTsKIH0KIAotRmVhdHVyZU9ic2Vy
dmVyOjpGZWF0dXJlIGdldEZlYXR1cmVPYnNlcnZlclR5cGUoQ29udGVudFNlY3VyaXR5UG9saWN5
OjpIZWFkZXJUeXBlIHR5cGUpCi17Ci0gICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBDb250
ZW50U2VjdXJpdHlQb2xpY3k6OlByZWZpeGVkRW5mb3JjZToKLSAgICAgICAgcmV0dXJuIEZlYXR1
cmVPYnNlcnZlcjo6UHJlZml4ZWRDb250ZW50U2VjdXJpdHlQb2xpY3k7Ci0gICAgY2FzZSBDb250
ZW50U2VjdXJpdHlQb2xpY3k6OkVuZm9yY2U6Ci0gICAgICAgIHJldHVybiBGZWF0dXJlT2JzZXJ2
ZXI6OkNvbnRlbnRTZWN1cml0eVBvbGljeTsKLSAgICBjYXNlIENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6UHJlZml4ZWRSZXBvcnQ6Ci0gICAgICAgIHJldHVybiBGZWF0dXJlT2JzZXJ2ZXI6OlByZWZp
eGVkQ29udGVudFNlY3VyaXR5UG9saWN5UmVwb3J0T25seTsKLSAgICBjYXNlIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6UmVwb3J0OgotICAgICAgICByZXR1cm4gRmVhdHVyZU9ic2VydmVyOjpDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXBvcnRPbmx5OwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICByZXR1cm4gRmVhdHVyZU9ic2VydmVyOjpOdW1iZXJPZkZlYXR1cmVzOwotfQot
CiBjb25zdCBTY3JpcHRDYWxsRnJhbWUmIGdldEZpcnN0Tm9uTmF0aXZlRnJhbWUoUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrKQogewogICAgIGludCBmcmFtZU51bWJlciA9IDA7CkBA
IC0xNDY3LDEyICsxNDUwLDYgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmNvcHlTdGF0
ZUZyb20oY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5KiBvdGhlcikKIAogdm9pZCBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OmRpZFJlY2VpdmVIZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIsIEhl
YWRlclR5cGUgdHlwZSkKIHsKLSAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0Rv
Y3VtZW50KCkpIHsKLSAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgICAgICBpZiAoZG9jdW1lbnQtPmRvbVdpbmRvdygp
KQotICAgICAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGRvY3VtZW50LT5kb21XaW5k
b3coKSwgZ2V0RmVhdHVyZU9ic2VydmVyVHlwZSh0eXBlKSk7Ci0gICAgfQotCiAgICAgLy8gUkZD
MjYxNiwgc2VjdGlvbiA0LjIgc3BlY2lmaWVzIHRoYXQgaGVhZGVycyBhcHBlYXJpbmcgbXVsdGlw
bGUgdGltZXMgY2FuCiAgICAgLy8gYmUgY29tYmluZWQgd2l0aCBhIGNvbW1hLiBXYWxrIHRoZSBo
ZWFkZXIgc3RyaW5nLCBhbmQgcGFyc2UgZWFjaCBjb21tYQogICAgIC8vIHNlcGFyYXRlZCBjaHVu
ayBhcyBhIHNlcGFyYXRlIGhlYWRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApp
bmRleCA1ZTBmZmFjLi4wZjhhOWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CkBAIC0xMzE2LDEwICsxMzE2LDkgQEAgT3B0aW9uYWxDdXJzb3IgRXZlbnRIYW5kbGVyOjpzZWxl
Y3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBib29sIHNoaWYKICAgICBjb25z
dCBDdXJzb3ImIGlCZWFtID0gaG9yaXpvbnRhbFRleHQgPyBpQmVhbUN1cnNvcigpIDogdmVydGlj
YWxUZXh0Q3Vyc29yKCk7CiAKICNpZiBFTkFCTEUoQ1VSU09SX1ZJU0lCSUxJVFkpCi0gICAgaWYg
KHN0eWxlICYmIHN0eWxlLT5jdXJzb3JWaXNpYmlsaXR5KCkgPT0gQ3Vyc29yVmlzaWJpbGl0eUF1
dG9IaWRlKSB7Ci0gICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShtX2ZyYW1lLmRvY3Vt
ZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6Q3Vyc29yVmlzaWJpbGl0eSk7CisgICAgaWYgKHN0eWxl
ICYmIHN0eWxlLT5jdXJzb3JWaXNpYmlsaXR5KCkgPT0gQ3Vyc29yVmlzaWJpbGl0eUF1dG9IaWRl
KQogICAgICAgICBzdGFydEF1dG9IaWRlQ3Vyc29yVGltZXIoKTsKLSAgICB9IGVsc2UKKyAgICBl
bHNlCiAgICAgICAgIGNhbmNlbEF1dG9IaWRlQ3Vyc29yVGltZXIoKTsKICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGY1Mzk3YWIuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJl
T2JzZXJ2ZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCi0KLSNpbmNsdWRlICJET01X
aW5kb3cuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkhpc3RvZ3JhbVN1cHBv
cnQuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRmVhdHVy
ZU9ic2VydmVyOjpGZWF0dXJlT2JzZXJ2ZXIoKQotewotfQotCi1GZWF0dXJlT2JzZXJ2ZXI6On5G
ZWF0dXJlT2JzZXJ2ZXIoKQotewotICAgIHVwZGF0ZU1lYXN1cmVtZW50cygpOwotfQotCi12b2lk
IEZlYXR1cmVPYnNlcnZlcjo6dXBkYXRlTWVhc3VyZW1lbnRzKCkKLXsKLSAgICBpZiAoIW1fZmVh
dHVyZUJpdHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIENsZWFyaW5nIGZlYXR1cmUgYml0
cyBpcyB0aW1pbmcgc2Vuc2l0aXZlLiBQb3J0cyBvdGhlciB0aGFuIGNocm9taXVtIGRvIG5vdCB1
c2UgSGlzdG9ncmFtU3VwcG9ydCwKLSAgICAvLyBhbmQgcHVsbCB0aGUgcmVzdWx0cyBvbiBjZXJ0
YWluIG5hdmlnYXRpb24gZXZlbnRzIGluc3RlYWQuCi0gICAgbV9mZWF0dXJlQml0cy0+Y2xlYXJB
bGwoKTsKLX0KLQotdm9pZCBGZWF0dXJlT2JzZXJ2ZXI6OmRpZENvbW1pdExvYWQoKQotewotICAg
IHVwZGF0ZU1lYXN1cmVtZW50cygpOwotfQotCi12b2lkIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2
ZShEb2N1bWVudCogZG9jdW1lbnQsIEZlYXR1cmUgZmVhdHVyZSkKLXsKLSAgICBpZiAoIWRvY3Vt
ZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2Uo
KTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBhZ2UtPmZlYXR1cmVP
YnNlcnZlcigpLT5kaWRPYnNlcnZlKGZlYXR1cmUpOwotfQotCi12b2lkIEZlYXR1cmVPYnNlcnZl
cjo6b2JzZXJ2ZShET01XaW5kb3cqIGRvbVdpbmRvdywgRmVhdHVyZSBmZWF0dXJlKQotewotICAg
IEFTU0VSVChkb21XaW5kb3cpOwotICAgIG9ic2VydmUoZG9tV2luZG93LT5kb2N1bWVudCgpLCBm
ZWF0dXJlKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVh
dHVyZU9ic2VydmVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3ZjRlNDIuLjAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuaAorKysgL2Rl
di9udWxsCkBAIC0xLDEzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgRmVhdHVyZU9ic2VydmVyX2gKLSNk
ZWZpbmUgRmVhdHVyZU9ic2VydmVyX2gKLQotI2luY2x1ZGUgPHd0Zi9CaXRWZWN0b3IuaD4KLSNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBE
T01XaW5kb3c7Ci1jbGFzcyBEb2N1bWVudDsKLQotY2xhc3MgRmVhdHVyZU9ic2VydmVyIHsKLSAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShGZWF0dXJlT2JzZXJ2ZXIpOwotcHVibGljOgotICAgIEZl
YXR1cmVPYnNlcnZlcigpOwotICAgIH5GZWF0dXJlT2JzZXJ2ZXIoKTsKLQotICAgIGVudW0gRmVh
dHVyZSB7Ci0gICAgICAgIFBhZ2VEZXN0cnVjdGlvbiwKLSAgICAgICAgTGVnYWN5Tm90aWZpY2F0
aW9ucywKLSAgICAgICAgTXVsdGlwYXJ0TWFpblJlc291cmNlLAotICAgICAgICBQcmVmaXhlZElu
ZGV4ZWREQiwKLSAgICAgICAgV29ya2VyU3RhcnQsCi0gICAgICAgIFNoYXJlZFdvcmtlclN0YXJ0
LAotICAgICAgICBMZWdhY3lXZWJBdWRpbywKLSAgICAgICAgV2ViQXVkaW9TdGFydCwKLSAgICAg
ICAgUHJlZml4ZWRDb250ZW50U2VjdXJpdHlQb2xpY3ksCi0gICAgICAgIFVucHJlZml4ZWRJbmRl
eGVkREIsCi0gICAgICAgIE9wZW5XZWJEYXRhYmFzZSwKLSAgICAgICAgVW51c2VkU2xvdDAxLCAv
LyBXZSB1c2VkIHRoaXMgc2xvdCBmb3IgTGVnYWN5SFRNTE5vdGlmaWNhdGlvbnMuCi0gICAgICAg
IExlZ2FjeVRleHROb3RpZmljYXRpb25zLAotICAgICAgICBVbnByZWZpeGVkUmVxdWVzdEFuaW1h
dGlvbkZyYW1lLAotICAgICAgICBQcmVmaXhlZFJlcXVlc3RBbmltYXRpb25GcmFtZSwKLSAgICAg
ICAgQ29udGVudFNlY3VyaXR5UG9saWN5LAotICAgICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXBvcnRPbmx5LAotICAgICAgICBQcmVmaXhlZENvbnRlbnRTZWN1cml0eVBvbGljeVJlcG9ydE9u
bHksCi0gICAgICAgIFByZWZpeGVkVHJhbnNpdGlvbkVuZEV2ZW50LAotICAgICAgICBVbnByZWZp
eGVkVHJhbnNpdGlvbkVuZEV2ZW50LAotICAgICAgICBQcmVmaXhlZEFuZFVucHJlZml4ZWRUcmFu
c2l0aW9uRW5kRXZlbnQsCi0gICAgICAgIEF1dG9Gb2N1c0F0dHJpYnV0ZSwKLSAgICAgICAgQXV0
b1NhdmVBdHRyaWJ1dGUsCi0gICAgICAgIERhdGFMaXN0RWxlbWVudCwKLSAgICAgICAgRm9ybUF0
dHJpYnV0ZSwKLSAgICAgICAgSW5jcmVtZW50YWxBdHRyaWJ1dGUsCi0gICAgICAgIElucHV0VHlw
ZUNvbG9yLAotICAgICAgICBJbnB1dFR5cGVEYXRlLAotICAgICAgICBJbnB1dFR5cGVEYXRlVGlt
ZSwKLSAgICAgICAgSW5wdXRUeXBlRGF0ZVRpbWVGYWxsYmFjaywKLSAgICAgICAgSW5wdXRUeXBl
RGF0ZVRpbWVMb2NhbCwKLSAgICAgICAgSW5wdXRUeXBlRW1haWwsCi0gICAgICAgIElucHV0VHlw
ZU1vbnRoLAotICAgICAgICBJbnB1dFR5cGVOdW1iZXIsCi0gICAgICAgIElucHV0VHlwZVJhbmdl
LAotICAgICAgICBJbnB1dFR5cGVTZWFyY2gsCi0gICAgICAgIElucHV0VHlwZVRlbCwKLSAgICAg
ICAgSW5wdXRUeXBlVGltZSwKLSAgICAgICAgSW5wdXRUeXBlVVJMLAotICAgICAgICBJbnB1dFR5
cGVXZWVrLAotICAgICAgICBJbnB1dFR5cGVXZWVrRmFsbGJhY2ssCi0gICAgICAgIExpc3RBdHRy
aWJ1dGUsCi0gICAgICAgIE1heEF0dHJpYnV0ZSwKLSAgICAgICAgTWluQXR0cmlidXRlLAotICAg
ICAgICBQYXR0ZXJuQXR0cmlidXRlLAotICAgICAgICBQbGFjZWhvbGRlckF0dHJpYnV0ZSwKLSAg
ICAgICAgUHJlY2lzaW9uQXR0cmlidXRlLAotICAgICAgICBQcmVmaXhlZERpcmVjdG9yeUF0dHJp
YnV0ZSwKLSAgICAgICAgUHJlZml4ZWRTcGVlY2hBdHRyaWJ1dGUsCi0gICAgICAgIFJlcXVpcmVk
QXR0cmlidXRlLAotICAgICAgICBSZXN1bHRzQXR0cmlidXRlLAotICAgICAgICBTdGVwQXR0cmli
dXRlLAotICAgICAgICBQYWdlVmlzaXRzLAotICAgICAgICBIVE1MTWFycXVlZUVsZW1lbnQsCi0g
ICAgICAgIENTU092ZXJmbG93TWFycXVlZSwKLSAgICAgICAgUmVmbGVjdGlvbiwKLSAgICAgICAg
Q3Vyc29yVmlzaWJpbGl0eSwKLSAgICAgICAgU3RvcmFnZUluZm8sCi0gICAgICAgIFhGcmFtZU9w
dGlvbnMsCi0gICAgICAgIFhGcmFtZU9wdGlvbnNTYW1lT3JpZ2luLAotICAgICAgICBYRnJhbWVP
cHRpb25zU2FtZU9yaWdpbldpdGhCYWRBbmNlc3RvckNoYWluLAotICAgICAgICBEZXByZWNhdGVk
RmxleGJveFdlYkNvbnRlbnQsCi0gICAgICAgIERlcHJlY2F0ZWRGbGV4Ym94Q2hyb21lLAotICAg
ICAgICBEZXByZWNhdGVkRmxleGJveENocm9tZUV4dGVuc2lvbiwKLSAgICAgICAgLy8gQWRkIG5l
dyBmZWF0dXJlcyBhYm92ZSB0aGlzIGxpbmUuIERvbid0IGNoYW5nZSBhc3NpZ25lZCBudW1iZXJz
IG9mIGVhY2ggaXRlbXMuCi0gICAgICAgIE51bWJlck9mRmVhdHVyZXMsIC8vIFRoaXMgZW51bSB2
YWx1ZSBtdXN0IGJlIGxhc3QuCi0gICAgfTsKLQotICAgIHN0YXRpYyB2b2lkIG9ic2VydmUoRG9j
dW1lbnQqLCBGZWF0dXJlKTsKLSAgICBzdGF0aWMgdm9pZCBvYnNlcnZlKERPTVdpbmRvdyosIEZl
YXR1cmUpOwotICAgIHZvaWQgZGlkQ29tbWl0TG9hZCgpOwotCi0gICAgY29uc3QgQml0VmVjdG9y
KiBhY2N1bXVsYXRlZEZlYXR1cmVCaXRzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlQml0cy5n
ZXQoKTsgfQotCi1wcml2YXRlOgotICAgIHZvaWQgZGlkT2JzZXJ2ZShGZWF0dXJlIGZlYXR1cmUp
Ci0gICAgewotICAgICAgICBBU1NFUlQoZmVhdHVyZSAhPSBQYWdlRGVzdHJ1Y3Rpb24pOyAvLyBQ
YWdlRGVzdHJ1Y3Rpb24gaXMgcmVzZXJ2ZWQgYXMgYSBzY2FsaW5nIGZhY3Rvci4KLSAgICAgICAg
QVNTRVJUKGZlYXR1cmUgPCBOdW1iZXJPZkZlYXR1cmVzKTsKLSAgICAgICAgaWYgKCFtX2ZlYXR1
cmVCaXRzKSB7Ci0gICAgICAgICAgICBtX2ZlYXR1cmVCaXRzID0gYWRvcHRQdHIobmV3IEJpdFZl
Y3RvcihOdW1iZXJPZkZlYXR1cmVzKSk7Ci0gICAgICAgICAgICBtX2ZlYXR1cmVCaXRzLT5jbGVh
ckFsbCgpOwotICAgICAgICB9Ci0gICAgICAgIG1fZmVhdHVyZUJpdHMtPnF1aWNrU2V0KGZlYXR1
cmUpOwotICAgIH0KLQotICAgIHZvaWQgdXBkYXRlTWVhc3VyZW1lbnRzKCk7Ci0KLSAgICBPd25Q
dHI8Qml0VmVjdG9yPiBtX2ZlYXR1cmVCaXRzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotICAgIAotI2VuZGlmIC8vIEZlYXR1cmVPYnNlcnZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGU0
MWQxMjQuLjIwZjliZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0yMSw3ICsyMSw2IEBACiAjaWZuZGVm
IFBhZ2VfaAogI2RlZmluZSBQYWdlX2gKIAotI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgog
I2luY2x1ZGUgIkZpbmRPcHRpb25zLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgog
I2luY2x1ZGUgIkxheW91dE1pbGVzdG9uZXMuaCIKQEAgLTIxOCw4ICsyMTcsNiBAQCBwdWJsaWM6
CiAgICAgUHJvZ3Jlc3NUcmFja2VyJiBwcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuICptX3Byb2dy
ZXNzOyB9CiAgICAgQmFja0ZvcndhcmRDb250cm9sbGVyJiBiYWNrRm9yd2FyZCgpIGNvbnN0IHsg
cmV0dXJuICptX2JhY2tGb3J3YXJkQ29udHJvbGxlcjsgfQogCi0gICAgRmVhdHVyZU9ic2VydmVy
KiBmZWF0dXJlT2JzZXJ2ZXIoKSB7IHJldHVybiAmbV9mZWF0dXJlT2JzZXJ2ZXI7IH0KLQogI2lm
IEVOQUJMRShWSUVXX01PREVfQ1NTX01FRElBKQogICAgIGVudW0gVmlld01vZGUgewogICAgICAg
ICBWaWV3TW9kZUludmFsaWQsCkBAIC00NzIsOCArNDY5LDYgQEAgcHJpdmF0ZToKICAgICBQbHVn
SW5DbGllbnQqIG1fcGx1Z0luQ2xpZW50OwogICAgIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KiBt
X3ZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogCi0gICAgRmVhdHVyZU9ic2VydmVyIG1fZmVhdHVy
ZU9ic2VydmVyOwotCiAgICAgaW50IG1fc3ViZnJhbWVDb3VudDsKICAgICBTdHJpbmcgbV9ncm91
cE5hbWU7CiAgICAgYm9vbCBtX29wZW5lZEJ5RE9NOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCAzZGNk
OWUwLi44ZDljNmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oIgog
Ci0jaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiRm9udC5oIgogI2luY2x1
ZGUgIkxheW91dFJlcGFpbnRlci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCkBAIC0xMjMs
OCArMTIyLDYgQEAgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpSZW5kZXJEZXByZWNhdGVk
RmxleGlibGVCb3goRWxlbWVudCYgZWxlbWVudCwgUGFzc1IKIHsKICAgICBzZXRDaGlsZHJlbklu
bGluZShmYWxzZSk7IC8vIEFsbCBvZiBvdXIgY2hpbGRyZW4gbXVzdCBiZSBibG9jay1sZXZlbAog
ICAgIG1fc3RyZXRjaGluZ0NoaWxkcmVuID0gZmFsc2U7Ci0KLSAgICBGZWF0dXJlT2JzZXJ2ZXI6
Om9ic2VydmUoJmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6RGVwcmVjYXRlZEZsZXhib3hX
ZWJDb250ZW50KTsKIH0KIAogUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94Ojp+UmVuZGVyRGVw
cmVjYXRlZEZsZXhpYmxlQm94KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCmluZGV4IDkxYTkwZWIuLjk3MmZmMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcApAQCAtNTIsNyArNTIsNiBAQAogI2luY2x1ZGUgIkRvY3VtZW50RXZlbnRR
dWV1ZS5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIK
LSNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24u
aCIKICNpbmNsdWRlICJGbG9hdFBvaW50M0QuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKQEAg
LTY1MDYsNyArNjUwNSw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZChTdHlsZURp
ZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlCiAgICAgaWYgKHJlbmRl
cmVyKCkuc3R5bGUoKS5vdmVyZmxvd1goKSA9PSBPTUFSUVVFRSAmJiByZW5kZXJlcigpLnN0eWxl
KCkubWFycXVlZUJlaGF2aW9yKCkgIT0gTU5PTkUgJiYgcmVuZGVyZXIoKS5pc0JveCgpKSB7CiAg
ICAgICAgIGlmICghbV9tYXJxdWVlKQogICAgICAgICAgICAgbV9tYXJxdWVlID0gYWRvcHRQdHIo
bmV3IFJlbmRlck1hcnF1ZWUodGhpcykpOwotICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2Vy
dmUoJnJlbmRlcmVyKCkuZG9jdW1lbnQoKSwgcmVuZGVyZXIoKS5pc0hUTUxNYXJxdWVlKCkgPyBG
ZWF0dXJlT2JzZXJ2ZXI6OkhUTUxNYXJxdWVlRWxlbWVudCA6IEZlYXR1cmVPYnNlcnZlcjo6Q1NT
T3ZlcmZsb3dNYXJxdWVlKTsKICAgICAgICAgbV9tYXJxdWVlLT51cGRhdGVNYXJxdWVlU3R5bGUo
KTsKICAgICB9CiAgICAgZWxzZSBpZiAobV9tYXJxdWVlKSB7CkBAIC02NTI3LDcgKzY1MjUsNiBA
QCB2b2lkIFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQogICAgICAgICAgICAgY3JlYXRlUmVmbGVjdGlvbigp
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3JlZmxlY3Rpb24tPnNldFN0eWxlKGNyZWF0
ZVJlZmxlY3Rpb25TdHlsZSgpKTsKLSAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKCZy
ZW5kZXJlcigpLmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6UmVmbGVjdGlvbik7CiAgICAg
fQogICAgIAogICAgIC8vIEZJWE1FOiBOZWVkIHRvIGRldGVjdCBhIHN3YXAgZnJvbSBjdXN0b20g
dG8gbmF0aXZlIHNjcm9sbGJhcnMgKGFuZCB2aWNlIHZlcnNhKS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvU2hhcmVkV29ya2VyLmNwcAppbmRleCA4ODJlMjI5Li44ZWIzNWQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9TaGFyZWRXb3JrZXIuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAi
U2hhcmVkV29ya2VyLmgiCiAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAi
RmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgi
CiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUNoYW5uZWwuaCIKQEAgLTYwLDgg
KzU5LDYgQEAgUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXI+IFNoYXJlZFdvcmtlcjo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGMKICAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTihjb250ZXh0LmlzRG9jdW1lbnQoKSk7CiAgICAgRG9jdW1lbnQmIGRvY3Vt
ZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQmPihjb250ZXh0KTsKIAotICAgIEZlYXR1cmVPYnNl
cnZlcjo6b2JzZXJ2ZShkb2N1bWVudC5kb21XaW5kb3coKSwgRmVhdHVyZU9ic2VydmVyOjpTaGFy
ZWRXb3JrZXJTdGFydCk7Ci0KICAgICBSZWZQdHI8U2hhcmVkV29ya2VyPiB3b3JrZXIgPSBhZG9w
dFJlZihuZXcgU2hhcmVkV29ya2VyKGNvbnRleHQpKTsKIAogICAgIFJlZlB0cjxNZXNzYWdlQ2hh
bm5lbD4gY2hhbm5lbCA9IE1lc3NhZ2VDaGFubmVsOjpjcmVhdGUoY29udGV4dCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggNjI5Y2Y0ZS4uN2E5ODA0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgot
I2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIK
QEAgLTc5LDkgKzc4LDYgQEAgUGFzc1JlZlB0cjxXb3JrZXI+IFdvcmtlcjo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYKIAogICAgIC8vIFdlIGRv
bid0IGN1cnJlbnRseSBzdXBwb3J0IG5lc3RlZCB3b3JrZXJzLCBzbyB3b3JrZXJzIGNhbiBvbmx5
IGJlIGNyZWF0ZWQgZnJvbSBkb2N1bWVudHMuCiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oY29udGV4dC5pc0RvY3VtZW50KCkpOwotICAgIERvY3VtZW50JiBkb2N1bWVudCA9
IHN0YXRpY19jYXN0PERvY3VtZW50Jj4oY29udGV4dCk7Ci0KLSAgICBGZWF0dXJlT2JzZXJ2ZXI6
Om9ic2VydmUoZG9jdW1lbnQuZG9tV2luZG93KCksIEZlYXR1cmVPYnNlcnZlcjo6V29ya2VyU3Rh
cnQpOwogCiAgICAgUmVmUHRyPFdvcmtlcj4gd29ya2VyID0gYWRvcHRSZWYobmV3IFdvcmtlcihj
b250ZXh0KSk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>