<?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>167500</bug_id>
          
          <creation_ts>2017-01-27 07:26:13 -0800</creation_ts>
          <short_desc>Merge CachedModuleScript and LoadableModuleScript</short_desc>
          <delta_ts>2017-01-27 16:48:57 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>167501</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1270635</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-27 07:26:13 -0800</bug_when>
    <thetext>Merge CachedModuleScript and LoadableModuleScript</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270636</commentid>
    <comment_count>1</comment_count>
      <attachid>299932</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-27 07:28:30 -0800</bug_when>
    <thetext>Created attachment 299932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270637</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-27 07:31:38 -0800</bug_when>
    <thetext>Attachment 299932 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/ScriptController.cpp:383:  &apos;moduleScript&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedModuleScriptRef&apos;.  [readability/naming/protected] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270823</commentid>
    <comment_count>3</comment_count>
      <attachid>299932</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-27 16:23:34 -0800</bug_when>
    <thetext>Comment on attachment 299932
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270842</commentid>
    <comment_count>4</comment_count>
      <attachid>299932</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-27 16:48:53 -0800</bug_when>
    <thetext>Comment on attachment 299932
Patch

Clearing flags on attachment: 299932

Committed r211313: &lt;http://trac.webkit.org/changeset/211313&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270843</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-27 16:48:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299932</attachid>
            <date>2017-01-27 07:28:30 -0800</date>
            <delta_ts>2017-01-27 16:48:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167500-20170128002625.patch</filename>
            <type>text/plain</type>
            <size>33331</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmFmZGNkODdiZThhNzc5
MTRhOTlmNGZlNjQ1YTJiYTA2ZWI5ODJkNS4uYTk3NzQ2YjViZmM5Y2QxYjVmYzUxOGNiNWJiZWVl
MDVkMWNkNTI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUwIEBACiAyMDE3LTAxLTI3ICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCisgICAgICAgIE1lcmdlIENhY2hl
ZE1vZHVsZVNjcmlwdCBhbmQgTG9hZGFibGVNb2R1bGVTY3JpcHQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzUwMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhY2hlZE1vZHVsZVNjcmlwdCBiZWNvbWVz
IGR1cGxpY2F0ZSB3aXRoIExvYWRhYmxlTW9kdWxlU2NyaXB0LgorICAgICAgICBBbmQgQ2FjaGVk
TW9kdWxlU2NyaXB0IGRvZXMgbm90IG9mZmVyIGFueSBtZWFuaW5nZnVsIGZ1bmN0aW9uYWxpdHkK
KyAgICAgICAgdG8gTG9hZGFibGVNb2R1bGVTY3JpcHQuCisgICAgICAgIFRoaXMgcGF0Y2ggbWVy
Z2VzIENhY2hlZE1vZHVsZVNjcmlwdCB0byBMb2FkYWJsZU1vZHVsZVNjcmlwdC4KKworICAgICAg
ICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGlu
Z3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9DYWNoZWRNb2R1bGVTY3JpcHQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9DYWNoZWRNb2R1bGVTY3JpcHRDbGllbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bG9h
ZE1vZHVsZVNjcmlwdEluV29ybGQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxl
cjo6bG9hZE1vZHVsZVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVy
OjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVTY3JpcHRJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZVNjcmlwdCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpzZXR1cE1vZHVsZVNjcmlwdEhhbmRsZXJzKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogZG9t
L0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRhYmxlTW9k
dWxlU2NyaXB0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGFibGVNb2R1bGVTY3Jp
cHQ6OkxvYWRhYmxlTW9kdWxlU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRhYmxlTW9k
dWxlU2NyaXB0Ojp+TG9hZGFibGVNb2R1bGVTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6TG9h
ZGFibGVNb2R1bGVTY3JpcHQ6OmlzTG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRhYmxl
TW9kdWxlU2NyaXB0OjplcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJsZU1vZHVsZVNj
cmlwdDo6d2FzQ2FuY2VsZWQpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGFibGVNb2R1bGVTY3Jp
cHQ6Om5vdGlmeUxvYWRDb21wbGV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGFibGVNb2R1
bGVTY3JpcHQ6Om5vdGlmeUxvYWRGYWlsZWQpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGFibGVN
b2R1bGVTY3JpcHQ6Om5vdGlmeUxvYWRXYXNDYW5jZWxlZCk6CisgICAgICAgIChXZWJDb3JlOjpM
b2FkYWJsZU1vZHVsZVNjcmlwdDo6ZXhlY3V0ZSk6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJs
ZU1vZHVsZVNjcmlwdDo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJsZU1vZHVsZVNj
cmlwdDo6bm90aWZ5RmluaXNoZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Mb2FkYWJsZU1v
ZHVsZVNjcmlwdC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVNb2R1bGVTY3JpcHQpOgorICAgICAgICAq
IGRvbS9TY3JpcHRFbGVtZW50Lmg6CisKKzIwMTctMDEtMjcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgSW1wbGVtZW50IGR5bmFtaWMtaW1wb3J0IGZv
ciBXZWJDb3JlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjY5MjYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAzZTFkNTA0MTcyMjI4YTVlNDdjNjFl
YWVhZTVjODRiNTEzNGVhODEzLi5lNTUyYjVjZTYwNGJiMWY1ZjI5ZGEzYjdhYTkxMzliNzhmYzU0
MGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTA2Nyw3ICsxMDY3LDYgQEAgc2V0KFdlYkNv
cmVfU09VUkNFUwogICAgIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKICAgICBhbmltYXRp
b24vV2ViQW5pbWF0aW9uLmNwcAogCi0gICAgYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0
LmNwcAogICAgIGJpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAKICAgICBi
aW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0NhbGxi
YWNrRnVuY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggZTM2ZTEwZWFmMzcwYmZiOGI4NThjNmI2NDY1MTFhNjI0NTBi
OGJmMy4uMDExODU0YzE2NTI2M2RmNjBlN2VmMDUxZDkyODVjYzhmZWJlNDI1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMw
MSw5ICs2MzAxLDYgQEAKIAkJRTMwNTkyNjQxRTI3QTNBRDAwRDU3Qzk4IC8qIElubGluZUNsYXNz
aWNTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzMDU5MjYyMUUyN0EzOEMwMEQ1N0M5OCAvKiBJbmxpbmVDbGFzc2ljU2NyaXB0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMwNTkyNjcxRTI3
QTNEMTAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwNTkyNjUxRTI3QTNDNjAwRDU3Qzk4IC8q
IENhY2hlZFNjcmlwdEZldGNoZXIuY3BwICovOyB9OwogCQlFMzA1OTI2ODFFMjdBM0QxMDBENTdD
OTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTMwNTkyNjYxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlw
dEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQlFMzA3REVDQzFEODFFNEIzMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDdERUM5MUQ4
MUU0NkUwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHQuY3BwICovOyB9OwotCQlFMzA3REVD
RDFEODFFNEI2MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVDQTFEODFFNDZFMDAxNDFDQUYg
LyogQ2FjaGVkTW9kdWxlU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJRTMwN0RFQ0UxRDgxRTRCQTAwMTQxQ0FGIC8qIENhY2hlZE1vZHVs
ZVNjcmlwdENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTMwN0RFQ0IxRDgxRTQ5NTAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdENsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUz
MDdERUNGMUQ4MUU0QzMwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RFQzYxRDgx
RTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi87IH07CiAJCUUz
MDdERUQwMUQ4MUU0QzcwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDdERUM3MUQ4MUU0
NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzA3REVEMTFEODFFNENCMDAxNDFD
QUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVDODFEODFFNDQ4MDAxNDFDQUYgLyog
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE0MzU2LDkgKzE0MzUzLDYgQEAKIAkJRTMwN0RF
QzYxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA3REVDNzFEODFFNDQ4MDAxNDFD
QUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMzA3REVDODFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlF
MzA3REVDOTFEODFFNDZFMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZE1vZHVsZVNjcmlwdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUzMDdERUNBMUQ4MUU0NkUwMDE0MUNBRiAvKiBD
YWNoZWRNb2R1bGVTY3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2Fj
aGVkTW9kdWxlU2NyaXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUzMDdERUNC
MUQ4MUU0OTUwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkTW9kdWxlU2NyaXB0Q2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMDdERUQyMUQ4MUU0RUQwMDE0MUNBRiAvKiBMb2Fk
YWJsZU1vZHVsZVNjcmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBMb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzMDdERUQzMUQ4MUU0RUQwMDE0MUNBRiAvKiBMb2FkYWJsZU1vZHVsZVNjcmlwdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2FkYWJsZU1vZHVsZVNjcmlwdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzE1MEVBNTFEQTcyMThEMDAxOTQwMTIgLyogRE9N
SklUSGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRIZWxw
ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjEzMCw5ICsyMjEyNCw2IEBA
CiAJCQkJQkM0RURFRjcwQzA4RjQxNDAwN0VERDQ5IC8qIEN1c3RvbSAqLywKIAkJCQkxNERGQjMz
RjBBN0RGNzYzMDAxOEY3NjkgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTJERkE0ODhFMURC
NTQxQzIwMDM2MkI5OSAvKiBCdWZmZXJTb3VyY2UuaCAqLywKLQkJCQlFMzA3REVDOTFEODFFNDZF
MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0LmNwcCAqLywKLQkJCQlFMzA3REVDQTFEODFF
NDZFMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0LmggKi8sCi0JCQkJRTMwN0RFQ0IxRDgx
RTQ5NTAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdENsaWVudC5oICovLAogCQkJCUUzMDdE
RUM2MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwICovLAog
CQkJCUUzMDdERUM3MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIu
aCAqLywKIAkJCQlFMzA3REVDODFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmggKi8sCkBAIC0yNTE2Myw4ICsyNTE1NCw2IEBACiAJCQkJODMwMDMwRjgx
QjdEM0I3ODAwRUQzQUFDIC8qIENhY2hlZEhUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0IxNkMxQzA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkSW1hZ2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMxOUZCRDVGMTVEMkY0NjQwMDk2NDBBNiAvKiBDYWNoZWRJbWFnZUNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJRTMwN0RFQ0QxRDgxRTRCNjAwMTQxQ0FGIC8qIENhY2hlZE1v
ZHVsZVNjcmlwdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTMwN0RFQ0UxRDgxRTRCQTAwMTQxQ0FG
IC8qIENhY2hlZE1vZHVsZVNjcmlwdENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwN0RF
RDAxRDgxRTRDNzAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTMwN0RFRDExRDgxRTRDQjAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwMTg0NjkwQjA4NjAyQTAwNEE4
MjVGIC8qIENhY2hlZFBhZ2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjkwNzIsNyArMjkwNjEsNiBA
QAogCQkJCUJDNjRCNENCMENCNDI5NUQwMDVGMkI2MiAvKiBDYWNoZWRGb250LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxQzBBQTQxMEYyQUExNUUwMDE2NDhDMiAvKiBDYWNoZWRGcmFtZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQ0IxNkMxQjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkSW1h
Z2UuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTMwN0RFQ0MxRDgxRTRCMzAwMTQxQ0FGIC8qIENh
Y2hlZE1vZHVsZVNjcmlwdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzA3REVDRjFEODFFNEMz
MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxMDE4NDZBMEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUQwRURBNzc0MTQzRTMwM0MwMDI4RTM4MyAvKiBDYWNoZWRSYXdSZXNvdXJjZS5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0NhY2hlZE1vZHVsZVNjcmlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNo
ZWRNb2R1bGVTY3JpcHQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Mzc0ODEy
MmU0M2NmZjBlYTRhZjQzOTM2MjA5ZmE2YWQ3YmZkZDZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hl
ZE1vZHVsZVNjcmlwdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNj
cmlwdC5oIgotCi0jaW5jbHVkZSAiQ2FjaGVkTW9kdWxlU2NyaXB0Q2xpZW50LmgiCi0jaW5jbHVk
ZSAiRE9NV3JhcHBlcldvcmxkLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJTY3JpcHRDb250
cm9sbGVyLmgiCi0jaW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCi0jaW5jbHVkZSAiU2Ny
aXB0UnVubmVyLmgiCi0jaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLVJlZjxDYWNoZWRNb2R1bGVTY3JpcHQ+IENhY2hlZE1vZHVsZVNjcmlwdDo6
Y3JlYXRlKCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDYWNoZWRNb2R1bGVTY3JpcHQo
KSk7Ci19Ci0KLXZvaWQgQ2FjaGVkTW9kdWxlU2NyaXB0Ojpsb2FkKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgVVJMJiByb290VVJMLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVy
KQotewotICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0gICAgICAgIGZy
YW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KCp0aGlzLCByb290VVJMLnN0cmluZygpLCBz
Y3JpcHRGZXRjaGVyKTsKLX0KLQotdm9pZCBDYWNoZWRNb2R1bGVTY3JpcHQ6OmxvYWQoRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBDYWNoZWRT
Y3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyKQotewotICAgIGlmIChhdXRvKiBmcmFtZSA9IGRv
Y3VtZW50LmZyYW1lKCkpCi0gICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0
KCp0aGlzLCBzb3VyY2VDb2RlLCBzY3JpcHRGZXRjaGVyKTsKLX0KLQotdm9pZCBDYWNoZWRNb2R1
bGVTY3JpcHQ6Om5vdGlmeUxvYWRDb21wbGV0ZWQoVW5pcXVlZFN0cmluZ0ltcGwmIG1vZHVsZUtl
eSkKLXsKLSAgICBtX21vZHVsZUtleSA9ICZtb2R1bGVLZXk7Ci0gICAgbm90aWZ5Q2xpZW50Rmlu
aXNoZWQoKTsKLX0KLQotdm9pZCBDYWNoZWRNb2R1bGVTY3JpcHQ6Om5vdGlmeUxvYWRGYWlsZWQo
TG9hZGFibGVTY3JpcHQ6OkVycm9yJiYgZXJyb3IpCi17Ci0gICAgbV9lcnJvciA9IFdURk1vdmUo
ZXJyb3IpOwotICAgIG5vdGlmeUNsaWVudEZpbmlzaGVkKCk7Ci19Ci0KLXZvaWQgQ2FjaGVkTW9k
dWxlU2NyaXB0Ojpub3RpZnlMb2FkV2FzQ2FuY2VsZWQoKQotewotICAgIG1fd2FzQ2FuY2VsZWQg
PSB0cnVlOwotICAgIG5vdGlmeUNsaWVudEZpbmlzaGVkKCk7Ci19Ci0KLXZvaWQgQ2FjaGVkTW9k
dWxlU2NyaXB0Ojpub3RpZnlDbGllbnRGaW5pc2hlZCgpCi17Ci0gICAgbV9pc0xvYWRlZCA9IHRy
dWU7Ci0KLSAgICBSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsK
LQotICAgIFZlY3RvcjxDYWNoZWRNb2R1bGVTY3JpcHRDbGllbnQqPiBjbGllbnRzOwotICAgIGNv
cHlUb1ZlY3RvcihtX2NsaWVudHMsIGNsaWVudHMpOwotICAgIGZvciAoYXV0byYgY2xpZW50IDog
Y2xpZW50cykKLSAgICAgICAgY2xpZW50LT5ub3RpZnlGaW5pc2hlZCgqdGhpcyk7Ci19Ci0KLXZv
aWQgQ2FjaGVkTW9kdWxlU2NyaXB0OjphZGRDbGllbnQoQ2FjaGVkTW9kdWxlU2NyaXB0Q2xpZW50
JiBjbGllbnQpCi17Ci0gICAgbV9jbGllbnRzLmFkZCgmY2xpZW50KTsKLSAgICBpZiAoIWlzTG9h
ZGVkKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0PiBwcm90
ZWN0ZWRUaGlzKCp0aGlzKTsKLSAgICBjbGllbnQubm90aWZ5RmluaXNoZWQoKnRoaXMpOwotfQot
Ci12b2lkIENhY2hlZE1vZHVsZVNjcmlwdDo6cmVtb3ZlQ2xpZW50KENhY2hlZE1vZHVsZVNjcmlw
dENsaWVudCYgY2xpZW50KQotewotICAgIG1fY2xpZW50cy5yZW1vdmUoJmNsaWVudCk7Ci19Ci0K
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNj
cmlwdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0LmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiOGY5MGEzOWM2MWI2YzY1NzM4MmViYzhj
MGM0MjExZDJmOTlkYzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0LmgKKysr
IC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1LCAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpbmNsdWRlICJDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCIKLSNpbmNsdWRlICJM
b2FkYWJsZVNjcmlwdC5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRDbGllbnQ7
Ci1jbGFzcyBEb2N1bWVudDsKLWNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7Ci0KLWNsYXNzIENhY2hl
ZE1vZHVsZVNjcmlwdCA6IHB1YmxpYyBSZWZDb3VudGVkPENhY2hlZE1vZHVsZVNjcmlwdD4gewot
cHVibGljOgotICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXkoKSB7IHJldHVybiBtX21v
ZHVsZUtleS5nZXQoKTsgfQotCi0gICAgdm9pZCBub3RpZnlMb2FkQ29tcGxldGVkKFVuaXF1ZWRT
dHJpbmdJbXBsJiBtb2R1bGVLZXkpOwotICAgIHZvaWQgbm90aWZ5TG9hZEZhaWxlZChMb2FkYWJs
ZVNjcmlwdDo6RXJyb3ImJik7Ci0gICAgdm9pZCBub3RpZnlMb2FkV2FzQ2FuY2VsZWQoKTsKLQot
ICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8TG9hZGFibGVTY3JpcHQ6OkVycm9yPiYgZXJyb3IoKSBj
b25zdCB7IHJldHVybiBtX2Vycm9yOyB9Ci0gICAgYm9vbCB3YXNDYW5jZWxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fd2FzQ2FuY2VsZWQ7IH0KLSAgICBib29sIGlzTG9hZGVkKCkgY29uc3QgeyByZXR1
cm4gbV9pc0xvYWRlZDsgfQotCi0gICAgdm9pZCBhZGRDbGllbnQoQ2FjaGVkTW9kdWxlU2NyaXB0
Q2xpZW50Jik7Ci0gICAgdm9pZCByZW1vdmVDbGllbnQoQ2FjaGVkTW9kdWxlU2NyaXB0Q2xpZW50
Jik7Ci0KLSAgICBzdGF0aWMgUmVmPENhY2hlZE1vZHVsZVNjcmlwdD4gY3JlYXRlKCk7Ci0KLSAg
ICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBVUkwmIHJvb3RVUkwsIENhY2hlZFNjcmlwdEZl
dGNoZXImKTsKLSAgICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2Rl
JiwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYpOwotCi1wcml2YXRlOgotICAgIHZvaWQgbm90aWZ5Q2xp
ZW50RmluaXNoZWQoKTsKLQotICAgIFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4gbV9tb2R1bGVL
ZXk7Ci0gICAgSGFzaENvdW50ZWRTZXQ8Q2FjaGVkTW9kdWxlU2NyaXB0Q2xpZW50Kj4gbV9jbGll
bnRzOwotICAgIHN0ZDo6b3B0aW9uYWw8TG9hZGFibGVTY3JpcHQ6OkVycm9yPiBtX2Vycm9yOwot
ICAgIGJvb2wgbV93YXNDYW5jZWxlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzTG9hZGVkIHsg
ZmFsc2UgfTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdENsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0Q2xpZW50LmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1MzQ1MTZkZDk0ODhlZGNiYzVlYWQ5OGJhMTRmMDVjMDk2
NTM3NGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0Q2xpZW50LmgKKysrIC9k
ZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIENhY2hlZE1vZHVsZVNjcmlwdDsKLQotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0Q2xpZW50
IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5DYWNoZWRNb2R1bGVTY3JpcHRDbGllbnQoKSB7IH0K
LQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRNb2R1bGVTY3JpcHQmKSA9
IDA7Ci19OwotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5n
c0FsbEluT25lLmNwcAppbmRleCA0ZDQ3Zjk5ZmQ3MDZmNDgxN2M0ZmUxNmI3YTYwN2Q0NWQ4Mjc0
Y2YxLi41ZTViMzM0OTI0NmNiYWI4NDgwODc5MTljMzcyOGJjYTMxYjUyNWY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTI1
LDcgKzI1LDYgQEAKIAogLy8gVGhpcyBhbGwtaW4tb25lIGNwcCBmaWxlIGN1dHMgZG93biBvbiB0
ZW1wbGF0ZSBibG9hdCB0byBhbGxvdyB1cyB0byBidWlsZCBvdXIgV2luZG93cyByZWxlYXNlIGJ1
aWxkLgogCi0jaW5jbHVkZSAiQ2FjaGVkTW9kdWxlU2NyaXB0LmNwcCIKICNpbmNsdWRlICJDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwIgogI2luY2x1ZGUgIkNhbGxiYWNrRnVuY3Rpb24uY3Bw
IgogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGI5OTExOTRhNDM1ZWJkM2VmMDI2
MjNjYWNlZDFmMWFmYmYxMmIzZGIuLmMwZWIxYWM0NzNkZDBjYmJiYmI4ZDJkYzk1OWYzZjJkMDc4
YzA1MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuY3BwCkBAIC0yMiw3ICsyMiw2IEBACiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgog
CiAjaW5jbHVkZSAiQnJpZGdlSlNDLmgiCi0jaW5jbHVkZSAiQ2FjaGVkTW9kdWxlU2NyaXB0Lmgi
CiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0RmV0Y2hlci5oIgogI2luY2x1ZGUgIkNvbW1vblZNLmgi
CiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCkBAIC0zNiw2ICszNSw3IEBACiAj
aW5jbHVkZSAiSlNET01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0RvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW5jbHVkZSAiTG9hZGFibGVNb2R1bGVTY3Jp
cHQuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJNZW1vcnlQcmVzc3VyZUhh
bmRsZXIuaCIKICNpbmNsdWRlICJOUF9qc29iamVjdC5oIgpAQCAtMTg2LDM5ICsxODYsMzkgQEAg
SlNWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2Rl
JiBzb3VyY2VDb2RlLCBFeGNlcHRpb24KICAgICByZXR1cm4gZXZhbHVhdGVJbldvcmxkKHNvdXJj
ZUNvZGUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBleGNlcHRpb25EZXRhaWxzKTsKIH0KIAot
dm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlU2NyaXB0SW5Xb3JsZChDYWNoZWRNb2R1
bGVTY3JpcHQmIG1vZHVsZVNjcmlwdCwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBDYWNoZWRT
Y3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQordm9p
ZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlU2NyaXB0SW5Xb3JsZChMb2FkYWJsZU1vZHVs
ZVNjcmlwdCYgbW9kdWxlU2NyaXB0LCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIERPTVdyYXBw
ZXJXb3JsZCYgd29ybGQpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CiAK
ICAgICBhdXRvJiBzaGVsbCA9ICp3aW5kb3dTaGVsbCh3b3JsZCk7CiAgICAgYXV0byYgc3RhdGUg
PSAqc2hlbGwud2luZG93KCktPmdsb2JhbEV4ZWMoKTsKIAotICAgIGF1dG8mIHByb21pc2UgPSBK
U01haW5UaHJlYWRFeGVjU3RhdGU6OmxvYWRNb2R1bGUoc3RhdGUsIG1vZHVsZU5hbWUsIEpTQzo6
SlNTY3JpcHRGZXRjaGVyOjpjcmVhdGUoc3RhdGUudm0oKSwgeyAmc2NyaXB0RmV0Y2hlciB9KSk7
CisgICAgYXV0byYgcHJvbWlzZSA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZShz
dGF0ZSwgbW9kdWxlTmFtZSwgSlNDOjpKU1NjcmlwdEZldGNoZXI6OmNyZWF0ZShzdGF0ZS52bSgp
LCB7ICZtb2R1bGVTY3JpcHQgfSkpOwogICAgIHNldHVwTW9kdWxlU2NyaXB0SGFuZGxlcnMobW9k
dWxlU2NyaXB0LCBwcm9taXNlLCB3b3JsZCk7CiB9CiAKLXZvaWQgU2NyaXB0Q29udHJvbGxlcjo6
bG9hZE1vZHVsZVNjcmlwdChDYWNoZWRNb2R1bGVTY3JpcHQmIG1vZHVsZVNjcmlwdCwgY29uc3Qg
U3RyaW5nJiBtb2R1bGVOYW1lLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyKQor
dm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlU2NyaXB0KExvYWRhYmxlTW9kdWxlU2Ny
aXB0JiBtb2R1bGVTY3JpcHQsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKIHsKLSAgICBsb2Fk
TW9kdWxlU2NyaXB0SW5Xb3JsZChtb2R1bGVTY3JpcHQsIG1vZHVsZU5hbWUsIHNjcmlwdEZldGNo
ZXIsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKKyAgICBsb2FkTW9kdWxlU2NyaXB0SW5Xb3Js
ZChtb2R1bGVTY3JpcHQsIG1vZHVsZU5hbWUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKIH0K
IAotdm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlU2NyaXB0SW5Xb3JsZChDYWNoZWRN
b2R1bGVTY3JpcHQmIG1vZHVsZVNjcmlwdCwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNl
Q29kZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgRE9NV3JhcHBlcldvcmxk
JiB3b3JsZCkKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZVNjcmlwdEluV29ybGQo
TG9hZGFibGVNb2R1bGVTY3JpcHQmIG1vZHVsZVNjcmlwdCwgY29uc3QgU2NyaXB0U291cmNlQ29k
ZSYgc291cmNlQ29kZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKIHsKICAgICBKU0xvY2tIb2xk
ZXIgbG9jayh3b3JsZC52bSgpKTsKIAogICAgIGF1dG8mIHNoZWxsID0gKndpbmRvd1NoZWxsKHdv
cmxkKTsKICAgICBhdXRvJiBzdGF0ZSA9ICpzaGVsbC53aW5kb3coKS0+Z2xvYmFsRXhlYygpOwog
Ci0gICAgYXV0byYgcHJvbWlzZSA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZShz
dGF0ZSwgc291cmNlQ29kZS5qc1NvdXJjZUNvZGUoKSwgSlNDOjpKU1NjcmlwdEZldGNoZXI6OmNy
ZWF0ZShzdGF0ZS52bSgpLCB7ICZzY3JpcHRGZXRjaGVyIH0pKTsKKyAgICBhdXRvJiBwcm9taXNl
ID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsb2FkTW9kdWxlKHN0YXRlLCBzb3VyY2VDb2RlLmpz
U291cmNlQ29kZSgpLCBKU0M6OkpTU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKHN0YXRlLnZtKCksIHsg
Jm1vZHVsZVNjcmlwdCB9KSk7CiAgICAgc2V0dXBNb2R1bGVTY3JpcHRIYW5kbGVycyhtb2R1bGVT
Y3JpcHQsIHByb21pc2UsIHdvcmxkKTsKIH0KIAotdm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2Fk
TW9kdWxlU2NyaXB0KENhY2hlZE1vZHVsZVNjcmlwdCYgbW9kdWxlU2NyaXB0LCBjb25zdCBTY3Jp
cHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRj
aGVyKQordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlU2NyaXB0KExvYWRhYmxlTW9k
dWxlU2NyaXB0JiBtb2R1bGVTY3JpcHQsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNv
ZGUpCiB7Ci0gICAgbG9hZE1vZHVsZVNjcmlwdEluV29ybGQobW9kdWxlU2NyaXB0LCBzb3VyY2VD
b2RlLCBzY3JpcHRGZXRjaGVyLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CisgICAgbG9hZE1v
ZHVsZVNjcmlwdEluV29ybGQobW9kdWxlU2NyaXB0LCBzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9y
bWFsV29ybGQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5k
RXZhbHVhdGVNb2R1bGVTY3JpcHRJbldvcmxkKENhY2hlZE1vZHVsZVNjcmlwdCYgbW9kdWxlU2Ny
aXB0LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQorSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRyb2xs
ZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZVNjcmlwdEluV29ybGQoTG9hZGFibGVNb2R1bGVTY3Jp
cHQmIG1vZHVsZVNjcmlwdCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKIHsKICAgICBKU0xvY2tI
b2xkZXIgbG9jayh3b3JsZC52bSgpKTsKIApAQCAtMjQwLDcgKzI0MCw3IEBAIEpTQzo6SlNWYWx1
ZSBTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVTY3JpcHRJbldvcmxkKENh
Y2hlZE1vZHVsZVNjCiAgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCi1KU0M6OkpTVmFsdWUg
U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlU2NyaXB0KENhY2hlZE1vZHVs
ZVNjcmlwdCYgbW9kdWxlU2NyaXB0KQorSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRyb2xsZXI6Omxp
bmtBbmRFdmFsdWF0ZU1vZHVsZVNjcmlwdChMb2FkYWJsZU1vZHVsZVNjcmlwdCYgbW9kdWxlU2Ny
aXB0KQogewogICAgIHJldHVybiBsaW5rQW5kRXZhbHVhdGVNb2R1bGVTY3JpcHRJbldvcmxkKG1v
ZHVsZVNjcmlwdCwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOwogfQpAQCAtMzY4LDcgKzM2OCw3
IEBAIHN0YXRpYyBJZGVudGlmaWVyIGpzVmFsdWVUb01vZHVsZUtleShFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgdmFsdWUpCiAgICAgcmV0dXJuIGFzU3RyaW5nKHZhbHVlKS0+dG9JZGVudGlmaWVy
KGV4ZWMpOwogfQogCi12b2lkIFNjcmlwdENvbnRyb2xsZXI6OnNldHVwTW9kdWxlU2NyaXB0SGFu
ZGxlcnMoQ2FjaGVkTW9kdWxlU2NyaXB0JiBtb2R1bGVTY3JpcHRSZWYsIEpTSW50ZXJuYWxQcm9t
aXNlJiBwcm9taXNlLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQordm9pZCBTY3JpcHRDb250cm9s
bGVyOjpzZXR1cE1vZHVsZVNjcmlwdEhhbmRsZXJzKExvYWRhYmxlTW9kdWxlU2NyaXB0JiBtb2R1
bGVTY3JpcHRSZWYsIEpTSW50ZXJuYWxQcm9taXNlJiBwcm9taXNlLCBET01XcmFwcGVyV29ybGQm
IHdvcmxkKQogewogICAgIGF1dG8mIHNoZWxsID0gKndpbmRvd1NoZWxsKHdvcmxkKTsKICAgICBh
dXRvJiBzdGF0ZSA9ICpzaGVsbC53aW5kb3coKS0+Z2xvYmFsRXhlYygpOwpAQCAtMzgwLDcgKzM4
MCw3IEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6c2V0dXBNb2R1bGVTY3JpcHRIYW5kbGVycyhD
YWNoZWRNb2R1bGVTY3JpcHQmIG1vZHVsZVNjcmlwCiAgICAgSlNDOjpQcml2YXRlTmFtZSBtb2R1
bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCA9IG1fbW9kdWxlTG9hZGVyQWxyZWFk
eVJlcG9ydGVkRXJyb3JTeW1ib2w7CiAgICAgSlNDOjpQcml2YXRlTmFtZSBtb2R1bGVMb2FkZXJG
ZXRjaGluZ0lzQ2FuY2VsZWRTeW1ib2wgPSBtX21vZHVsZUxvYWRlckZldGNoaW5nSXNDYW5jZWxl
ZFN5bWJvbDsKIAotICAgIFJlZlB0cjxDYWNoZWRNb2R1bGVTY3JpcHQ+IG1vZHVsZVNjcmlwdCgm
bW9kdWxlU2NyaXB0UmVmKTsKKyAgICBSZWZQdHI8TG9hZGFibGVNb2R1bGVTY3JpcHQ+IG1vZHVs
ZVNjcmlwdCgmbW9kdWxlU2NyaXB0UmVmKTsKIAogICAgIGF1dG8mIGZ1bGZpbGxIYW5kbGVyID0g
KkpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShzdGF0ZS52bSgpLCBzaGVsbC53aW5kb3coKSwg
MSwgU3RyaW5nKCksIFttb2R1bGVTY3JpcHRdKEV4ZWNTdGF0ZSogZXhlYykgewogICAgICAgICBJ
ZGVudGlmaWVyIG1vZHVsZUtleSA9IGpzVmFsdWVUb01vZHVsZUtleShleGVjLCBleGVjLT5hcmd1
bWVudCgwKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVy
LmgKaW5kZXggMmU4NzY4Y2MzMTExM2QxYjQxMDMwNDRlZmM1MjlmOThjOTZjM2MzMy4uZGE0MjNl
N2ZmN2E4MDk1N2ZlNmY0ZTY0MjdlZDA4YTk1ZjkzOTA0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaApAQCAtNTEsMTEgKzUxLDExIEBAIGNsYXNz
IFJvb3RPYmplY3Q7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ2FjaGVkTW9kdWxl
U2NyaXB0OwogY2xhc3MgQ2FjaGVkU2NyaXB0RmV0Y2hlcjsKIGNsYXNzIEZyYW1lOwogY2xhc3Mg
SFRNTERvY3VtZW50OwogY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQ7CitjbGFzcyBMb2FkYWJsZU1v
ZHVsZVNjcmlwdDsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogY2xhc3MgU2NyaXB0U291cmNlQ29k
ZTsKIGNsYXNzIFdpZGdldDsKQEAgLTExNCwxMyArMTE0LDEzIEBAIGNsYXNzIFNjcmlwdENvbnRy
b2xsZXIgewogICAgIEpTQzo6SlNWYWx1ZSBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2Rl
JiwgRXhjZXB0aW9uRGV0YWlscyogPSBudWxscHRyKTsKICAgICBKU0M6OkpTVmFsdWUgZXZhbHVh
dGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBET01XcmFwcGVyV29ybGQmLCBFeGNl
cHRpb25EZXRhaWxzKiA9IG51bGxwdHIpOwogCi0gICAgdm9pZCBsb2FkTW9kdWxlU2NyaXB0SW5X
b3JsZChDYWNoZWRNb2R1bGVTY3JpcHQmLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIENhY2hl
ZFNjcmlwdEZldGNoZXImLCBET01XcmFwcGVyV29ybGQmKTsKLSAgICB2b2lkIGxvYWRNb2R1bGVT
Y3JpcHQoQ2FjaGVkTW9kdWxlU2NyaXB0JiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBDYWNo
ZWRTY3JpcHRGZXRjaGVyJik7Ci0gICAgdm9pZCBsb2FkTW9kdWxlU2NyaXB0SW5Xb3JsZChDYWNo
ZWRNb2R1bGVTY3JpcHQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgQ2FjaGVkU2NyaXB0RmV0
Y2hlciYsIERPTVdyYXBwZXJXb3JsZCYpOwotICAgIHZvaWQgbG9hZE1vZHVsZVNjcmlwdChDYWNo
ZWRNb2R1bGVTY3JpcHQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgQ2FjaGVkU2NyaXB0RmV0
Y2hlciYpOworICAgIHZvaWQgbG9hZE1vZHVsZVNjcmlwdEluV29ybGQoTG9hZGFibGVNb2R1bGVT
Y3JpcHQmLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIERPTVdyYXBwZXJXb3JsZCYpOworICAg
IHZvaWQgbG9hZE1vZHVsZVNjcmlwdChMb2FkYWJsZU1vZHVsZVNjcmlwdCYsIGNvbnN0IFN0cmlu
ZyYgbW9kdWxlTmFtZSk7CisgICAgdm9pZCBsb2FkTW9kdWxlU2NyaXB0SW5Xb3JsZChMb2FkYWJs
ZU1vZHVsZVNjcmlwdCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBET01XcmFwcGVyV29ybGQm
KTsKKyAgICB2b2lkIGxvYWRNb2R1bGVTY3JpcHQoTG9hZGFibGVNb2R1bGVTY3JpcHQmLCBjb25z
dCBTY3JpcHRTb3VyY2VDb2RlJik7CiAKLSAgICBKU0M6OkpTVmFsdWUgbGlua0FuZEV2YWx1YXRl
TW9kdWxlU2NyaXB0SW5Xb3JsZChDYWNoZWRNb2R1bGVTY3JpcHQmICwgRE9NV3JhcHBlcldvcmxk
Jik7Ci0gICAgSlNDOjpKU1ZhbHVlIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZVNjcmlwdChDYWNoZWRN
b2R1bGVTY3JpcHQmKTsKKyAgICBKU0M6OkpTVmFsdWUgbGlua0FuZEV2YWx1YXRlTW9kdWxlU2Ny
aXB0SW5Xb3JsZChMb2FkYWJsZU1vZHVsZVNjcmlwdCYgLCBET01XcmFwcGVyV29ybGQmKTsKKyAg
ICBKU0M6OkpTVmFsdWUgbGlua0FuZEV2YWx1YXRlTW9kdWxlU2NyaXB0KExvYWRhYmxlTW9kdWxl
U2NyaXB0Jik7CiAKICAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiwg
SlNDOjpKU01vZHVsZVJlY29yZCYsIERPTVdyYXBwZXJXb3JsZCYpOwogICAgIEpTQzo6SlNWYWx1
ZSBldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmLCBKU0M6OkpTTW9kdWxlUmVjb3JkJik7CkBAIC0x
ODEsNyArMTgxLDcgQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAKIHByaXZhdGU6CiAgICAg
V0VCQ09SRV9FWFBPUlQgSlNET01XaW5kb3dTaGVsbCogaW5pdFNjcmlwdChET01XcmFwcGVyV29y
bGQmKTsKLSAgICB2b2lkIHNldHVwTW9kdWxlU2NyaXB0SGFuZGxlcnMoQ2FjaGVkTW9kdWxlU2Ny
aXB0JiwgSlNDOjpKU0ludGVybmFsUHJvbWlzZSYsIERPTVdyYXBwZXJXb3JsZCYpOworICAgIHZv
aWQgc2V0dXBNb2R1bGVTY3JpcHRIYW5kbGVycyhMb2FkYWJsZU1vZHVsZVNjcmlwdCYsIEpTQzo6
SlNJbnRlcm5hbFByb21pc2UmLCBET01XcmFwcGVyV29ybGQmKTsKIAogICAgIHZvaWQgZGlzY29u
bmVjdFBsYXRmb3JtU2NyaXB0T2JqZWN0cygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRh
YmxlTW9kdWxlU2NyaXB0LmNwcAppbmRleCAwZWIxMGI1YjRkYmE3MjhlOWJkNGVlY2MyYTBiMzJl
MmZmZDIyMmQyLi4xMjU3NTk4MTE4N2I0ZjRkYjA2ZTgwYWQzNWM2OWFkOTM4ZjAxNDI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKQEAgLTI2LDYwICsy
Niw3OCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxvYWRhYmxlTW9kdWxlU2Ny
aXB0LmgiCiAKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5j
bHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWY8TG9hZGFibGVNb2R1bGVTY3JpcHQ+IExvYWRhYmxl
TW9kdWxlU2NyaXB0OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBj
cm9zc09yaWdpbk1vZGUsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgQXRvbWljU3RyaW5n
JiBpbml0aWF0b3JOYW1lLCBib29sIGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IExvYWRhYmxlTW9kdWxlU2NyaXB0KG5vbmNlLCBjcm9zc09yaWdp
bk1vZGUsIGNoYXJzZXQsIGluaXRpYXRvck5hbWUsIGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlLCBD
YWNoZWRNb2R1bGVTY3JpcHQ6OmNyZWF0ZSgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TG9hZGFibGVNb2R1bGVTY3JpcHQobm9uY2UsIGNyb3NzT3JpZ2luTW9kZSwgY2hhcnNldCwgaW5p
dGlhdG9yTmFtZSwgaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUpKTsKIH0KIAotTG9hZGFibGVNb2R1
bGVTY3JpcHQ6OkxvYWRhYmxlTW9kdWxlU2NyaXB0KGNvbnN0IFN0cmluZyYgbm9uY2UsIGNvbnN0
IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2RlLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIGNvbnN0IEF0
b21pY1N0cmluZyYgaW5pdGlhdG9yTmFtZSwgYm9vbCBpc0luVXNlckFnZW50U2hhZG93VHJlZSwg
UmVmPENhY2hlZE1vZHVsZVNjcmlwdD4mJiBtb2R1bGVTY3JpcHQpCitMb2FkYWJsZU1vZHVsZVNj
cmlwdDo6TG9hZGFibGVNb2R1bGVTY3JpcHQoY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3Ry
aW5nJiBjcm9zc09yaWdpbk1vZGUsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgQXRvbWlj
U3RyaW5nJiBpbml0aWF0b3JOYW1lLCBib29sIGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKQogICAg
IDogTG9hZGFibGVTY3JpcHQobm9uY2UsIGNyb3NzT3JpZ2luTW9kZSwgY2hhcnNldCwgaW5pdGlh
dG9yTmFtZSwgaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUpCi0gICAgLCBtX21vZHVsZVNjcmlwdChX
VEZNb3ZlKG1vZHVsZVNjcmlwdCkpCiB7Ci0gICAgbV9tb2R1bGVTY3JpcHQtPmFkZENsaWVudCgq
dGhpcyk7CiB9CiAKIExvYWRhYmxlTW9kdWxlU2NyaXB0Ojp+TG9hZGFibGVNb2R1bGVTY3JpcHQo
KQogewotICAgIG1fbW9kdWxlU2NyaXB0LT5yZW1vdmVDbGllbnQoKnRoaXMpOwogfQogCiBib29s
IExvYWRhYmxlTW9kdWxlU2NyaXB0Ojppc0xvYWRlZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1f
bW9kdWxlU2NyaXB0LT5pc0xvYWRlZCgpOworICAgIHJldHVybiBtX2lzTG9hZGVkOwogfQogCiBz
dGQ6Om9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpFcnJvcj4gTG9hZGFibGVNb2R1bGVTY3JpcHQ6
OmVycm9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9tb2R1bGVTY3JpcHQtPmVycm9yKCk7Cisg
ICAgcmV0dXJuIG1fZXJyb3I7CiB9CiAKIGJvb2wgTG9hZGFibGVNb2R1bGVTY3JpcHQ6Ondhc0Nh
bmNlbGVkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9tb2R1bGVTY3JpcHQtPndhc0NhbmNlbGVk
KCk7CisgICAgcmV0dXJuIG1fd2FzQ2FuY2VsZWQ7CiB9CiAKLXZvaWQgTG9hZGFibGVNb2R1bGVT
Y3JpcHQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZE1vZHVsZVNjcmlwdCYpCit2b2lkIExvYWRhYmxl
TW9kdWxlU2NyaXB0Ojpub3RpZnlMb2FkQ29tcGxldGVkKFVuaXF1ZWRTdHJpbmdJbXBsJiBtb2R1
bGVLZXkpCiB7CisgICAgbV9tb2R1bGVLZXkgPSAmbW9kdWxlS2V5OworICAgIG1faXNMb2FkZWQg
PSB0cnVlOworICAgIG5vdGlmeUNsaWVudEZpbmlzaGVkKCk7Cit9CisKK3ZvaWQgTG9hZGFibGVN
b2R1bGVTY3JpcHQ6Om5vdGlmeUxvYWRGYWlsZWQoTG9hZGFibGVTY3JpcHQ6OkVycm9yJiYgZXJy
b3IpCit7CisgICAgbV9lcnJvciA9IFdURk1vdmUoZXJyb3IpOworICAgIG1faXNMb2FkZWQgPSB0
cnVlOworICAgIG5vdGlmeUNsaWVudEZpbmlzaGVkKCk7Cit9CisKK3ZvaWQgTG9hZGFibGVNb2R1
bGVTY3JpcHQ6Om5vdGlmeUxvYWRXYXNDYW5jZWxlZCgpCit7CisgICAgbV93YXNDYW5jZWxlZCA9
IHRydWU7CisgICAgbV9pc0xvYWRlZCA9IHRydWU7CiAgICAgbm90aWZ5Q2xpZW50RmluaXNoZWQo
KTsKIH0KIAogdm9pZCBMb2FkYWJsZU1vZHVsZVNjcmlwdDo6ZXhlY3V0ZShTY3JpcHRFbGVtZW50
JiBzY3JpcHRFbGVtZW50KQogewotICAgIHNjcmlwdEVsZW1lbnQuZXhlY3V0ZU1vZHVsZVNjcmlw
dChtX21vZHVsZVNjcmlwdC5nZXQoKSk7CisgICAgc2NyaXB0RWxlbWVudC5leGVjdXRlTW9kdWxl
U2NyaXB0KCp0aGlzKTsKIH0KIAogdm9pZCBMb2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZChEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgcm9vdFVSTCkKIHsKLSAgICBtX21vZHVsZVNjcmlw
dC0+bG9hZChkb2N1bWVudCwgcm9vdFVSTCwgKnRoaXMpOworICAgIGlmIChhdXRvKiBmcmFtZSA9
IGRvY3VtZW50LmZyYW1lKCkpCisgICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2Ny
aXB0KCp0aGlzLCByb290VVJMLnN0cmluZygpKTsKIH0KIAogdm9pZCBMb2FkYWJsZU1vZHVsZVNj
cmlwdDo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNv
dXJjZUNvZGUpCiB7Ci0gICAgbV9tb2R1bGVTY3JpcHQtPmxvYWQoZG9jdW1lbnQsIHNvdXJjZUNv
ZGUsICp0aGlzKTsKKyAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQorICAg
ICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhpcywgc291cmNlQ29kZSk7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNj
cmlwdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmgKaW5kZXgg
YmQxMWMwNjM1Zjk0MGFjMjFhMGE0NWE2OTA2NjRlNDE5ZTMyNDc0ZS4uN2M1NWZlNzEwNjU3N2Y1
M2NjNDgxNWI1ZTU5NGM3NjY0ZGM3ZDE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0xvYWRhYmxlTW9kdWxlU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxl
TW9kdWxlU2NyaXB0LmgKQEAgLTI1LDE0ICsyNSwxNCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdC5oIgotI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlw
dENsaWVudC5oIgogI2luY2x1ZGUgIkxvYWRhYmxlU2NyaXB0LmgiCiAjaW5jbHVkZSA8d3RmL1R5
cGVDYXN0cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIExvYWRhYmxlTW9kdWxl
U2NyaXB0IGZpbmFsIDogcHVibGljIExvYWRhYmxlU2NyaXB0LCBwcml2YXRlIENhY2hlZE1vZHVs
ZVNjcmlwdENsaWVudCB7CitjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOworCitjbGFzcyBMb2FkYWJs
ZU1vZHVsZVNjcmlwdCBmaW5hbCA6IHB1YmxpYyBMb2FkYWJsZVNjcmlwdCB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+TG9hZGFibGVNb2R1bGVTY3JpcHQoKTsKIApAQCAtNDIsOCArNDIsNiBAQCBj
bGFzcyBMb2FkYWJsZU1vZHVsZVNjcmlwdCBmaW5hbCA6IHB1YmxpYyBMb2FkYWJsZVNjcmlwdCwg
cHJpdmF0ZSBDYWNoZWRNb2R1bGVTYwogICAgIHN0ZDo6b3B0aW9uYWw8RXJyb3I+IGVycm9yKCkg
Y29uc3QgZmluYWw7CiAgICAgYm9vbCB3YXNDYW5jZWxlZCgpIGNvbnN0IGZpbmFsOwogCi0gICAg
Q2FjaGVkTW9kdWxlU2NyaXB0JiBtb2R1bGVTY3JpcHQoKSB7IHJldHVybiBtX21vZHVsZVNjcmlw
dC5nZXQoKTsgfQotCiAgICAgYm9vbCBpc0NsYXNzaWNTY3JpcHQoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNNb2R1bGVTY3JpcHQoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CiAKQEAgLTU0LDEyICs1MiwxOSBAQCBjbGFzcyBMb2FkYWJsZU1vZHVsZVNj
cmlwdCBmaW5hbCA6IHB1YmxpYyBMb2FkYWJsZVNjcmlwdCwgcHJpdmF0ZSBDYWNoZWRNb2R1bGVT
YwogICAgIHZvaWQgbG9hZChEb2N1bWVudCYsIGNvbnN0IFVSTCYgcm9vdFVSTCk7CiAgICAgdm9p
ZCBsb2FkKERvY3VtZW50JiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOwogCi1wcml2YXRlOgot
ICAgIExvYWRhYmxlTW9kdWxlU2NyaXB0KGNvbnN0IFN0cmluZyYgbm9uY2UsIGNvbnN0IFN0cmlu
ZyYgY3Jvc3NPcmlnaW5Nb2RlLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIGNvbnN0IEF0b21pY1N0
cmluZyYgaW5pdGlhdG9yTmFtZSwgYm9vbCBpc0luVXNlckFnZW50U2hhZG93VHJlZSwgUmVmPENh
Y2hlZE1vZHVsZVNjcmlwdD4mJik7CisgICAgdm9pZCBub3RpZnlMb2FkQ29tcGxldGVkKFVuaXF1
ZWRTdHJpbmdJbXBsJik7CisgICAgdm9pZCBub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0
OjpFcnJvciYmKTsKKyAgICB2b2lkIG5vdGlmeUxvYWRXYXNDYW5jZWxlZCgpOwogCi0gICAgdm9p
ZCBub3RpZnlGaW5pc2hlZChDYWNoZWRNb2R1bGVTY3JpcHQmKSBmaW5hbDsKKyAgICBVbmlxdWVk
U3RyaW5nSW1wbCogbW9kdWxlS2V5KCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVLZXkuZ2V0KCk7
IH0KKworcHJpdmF0ZToKKyAgICBMb2FkYWJsZU1vZHVsZVNjcmlwdChjb25zdCBTdHJpbmcmIG5v
bmNlLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSwgY29uc3QgU3RyaW5nJiBjaGFyc2V0
LCBjb25zdCBBdG9taWNTdHJpbmcmIGluaXRpYXRvck5hbWUsIGJvb2wgaXNJblVzZXJBZ2VudFNo
YWRvd1RyZWUpOwogCi0gICAgUmVmPENhY2hlZE1vZHVsZVNjcmlwdD4gbV9tb2R1bGVTY3JpcHQ7
CisgICAgUmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPiBtX21vZHVsZUtleTsKKyAgICBzdGQ6Om9w
dGlvbmFsPExvYWRhYmxlU2NyaXB0OjpFcnJvcj4gbV9lcnJvcjsKKyAgICBib29sIG1fd2FzQ2Fu
Y2VsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0xvYWRlZCB7IGZhbHNlIH07CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggZmQ4YmVlMDY5YzI2NjQ1Y2Vi
ZmI1NDBkZTcwOWFmMTg0ZDA1NTg5ZS4uMGJkYTNiOTdkZThiMDM0NjA1ZmM1MTQzODM1M2Y0MTQ4
MGQyYjA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMjQsNyArMjQs
NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIAot
I2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
TG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
Q2FjaGVkU2NyaXB0LmgiCkBAIC0zOTAsMTEgKzM4OSwxMSBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6
OmV4ZWN1dGVDbGFzc2ljU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUp
CiAgICAgZnJhbWUtPnNjcmlwdCgpLmV2YWx1YXRlKHNvdXJjZUNvZGUpOwogfQogCi12b2lkIFNj
cmlwdEVsZW1lbnQ6OmV4ZWN1dGVNb2R1bGVTY3JpcHQoQ2FjaGVkTW9kdWxlU2NyaXB0JiBtb2R1
bGVTY3JpcHQpCit2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVNb2R1bGVTY3JpcHQoTG9hZGFi
bGVNb2R1bGVTY3JpcHQmIGxvYWRhYmxlTW9kdWxlU2NyaXB0KQogewogICAgIC8vIGh0dHBzOi8v
aHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3NjcmlwdGluZy5odG1sI2V4ZWN1dGUtdGhl
LXNjcmlwdC1ibG9jawogCi0gICAgQVNTRVJUKCFtb2R1bGVTY3JpcHQuZXJyb3IoKSk7CisgICAg
QVNTRVJUKCFsb2FkYWJsZU1vZHVsZVNjcmlwdC5lcnJvcigpKTsKIAogICAgIGF1dG8mIGRvY3Vt
ZW50ID0gbV9lbGVtZW50LmRvY3VtZW50KCk7CiAgICAgYXV0byogZnJhbWUgPSBkb2N1bWVudC5m
cmFtZSgpOwpAQCAtNDA0LDcgKzQwMyw3IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZU1v
ZHVsZVNjcmlwdChDYWNoZWRNb2R1bGVTY3JpcHQmIG1vZHVsZVNjcmlwdCkKICAgICBJZ25vcmVE
ZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlciBpZ25vcmVEZXNjdHJ1Y3RpdmVXcml0ZUNv
dW50SW5jcmVtZW50ZXIoJmRvY3VtZW50KTsKICAgICBDdXJyZW50U2NyaXB0SW5jcmVtZW50ZXIg
Y3VycmVudFNjcmlwdEluY3JlbWVudGVyKGRvY3VtZW50LCBtX2VsZW1lbnQpOwogCi0gICAgZnJh
bWUtPnNjcmlwdCgpLmxpbmtBbmRFdmFsdWF0ZU1vZHVsZVNjcmlwdChtb2R1bGVTY3JpcHQpOwor
ICAgIGZyYW1lLT5zY3JpcHQoKS5saW5rQW5kRXZhbHVhdGVNb2R1bGVTY3JpcHQobG9hZGFibGVN
b2R1bGVTY3JpcHQpOwogfQogCiB2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVTY3JpcHRBbmRE
aXNwYXRjaEV2ZW50KExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlwdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RWxlbWVudC5oCmluZGV4IGI4MjExOGMxYzc5NjcyMmM1MWRkNTgzNTc4ZWU3ZDNhMjYy
YzRiOTguLjYzMmNkMDRiMWQ4MDY4MTMzZTJhNzY5YzBiY2U3MmNiOWU1ZmExZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEVsZW1lbnQuaApAQCAtMzAsMTAgKzMwLDEwIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0OwogY2xhc3MgQ2FjaGVkU2NyaXB0
OwogY2xhc3MgQ29udGFpbmVyTm9kZTsKIGNsYXNzIEVsZW1lbnQ7CitjbGFzcyBMb2FkYWJsZU1v
ZHVsZVNjcmlwdDsKIGNsYXNzIFBlbmRpbmdTY3JpcHQ7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2Rl
OwogY2xhc3MgVVJMOwpAQCAtNTEsNyArNTEsNyBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IHsKICAg
ICBTdHJpbmcgc2NyaXB0Q2hhcnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhcmFjdGVyRW5jb2Rp
bmc7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2NyaXB0Q29udGVudCgpIGNvbnN0Owog
ICAgIHZvaWQgZXhlY3V0ZUNsYXNzaWNTY3JpcHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOwot
ICAgIHZvaWQgZXhlY3V0ZU1vZHVsZVNjcmlwdChDYWNoZWRNb2R1bGVTY3JpcHQmKTsKKyAgICB2
b2lkIGV4ZWN1dGVNb2R1bGVTY3JpcHQoTG9hZGFibGVNb2R1bGVTY3JpcHQmKTsKIAogICAgIHZv
aWQgZXhlY3V0ZVBlbmRpbmdTY3JpcHQoUGVuZGluZ1NjcmlwdCYpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>