<?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>114011</bug_id>
          
          <creation_ts>2013-04-05 01:37:49 -0700</creation_ts>
          <short_desc>Remove Chromium code from WebCore/loader</short_desc>
          <delta_ts>2013-04-05 02:10:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>869638</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-04-05 01:37:49 -0700</bug_when>
    <thetext>Remove Chromium code from WebCore/loader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869640</commentid>
    <comment_count>1</comment_count>
      <attachid>196600</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-04-05 01:38:51 -0700</bug_when>
    <thetext>Created attachment 196600
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869642</commentid>
    <comment_count>2</comment_count>
      <attachid>196600</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-05 01:43:52 -0700</bug_when>
    <thetext>Comment on attachment 196600
Cleanup

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

&gt; Source/WebCore/loader/appcache/ApplicationCacheHost.h:-183
&gt; -        OwnPtr&lt;ApplicationCacheHostInternal&gt; m_internal;

I am surprised this is not referenced elsewhere in the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869650</commentid>
    <comment_count>3</comment_count>
      <attachid>196600</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-05 02:10:34 -0700</bug_when>
    <thetext>Comment on attachment 196600
Cleanup

Clearing flags on attachment: 196600

Committed r147730: &lt;http://trac.webkit.org/changeset/147730&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869651</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-05 02:10:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196600</attachid>
            <date>2013-04-05 01:38:51 -0700</date>
            <delta_ts>2013-04-05 02:10:34 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-114011-20130405013839.patch</filename>
            <type>text/plain</type>
            <size>30168</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NzcyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDEzLTA0LTA1ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBDaHJvbWl1bSBjb2Rl
IGZyb20gV2ViQ29yZS9sb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExNDAxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZWQuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQp
OgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OkZyYW1lTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpkZWZhdWx0T2Jq
ZWN0Q29udGVudFR5cGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmg6CisgICAgICAgIChGcmFtZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVudCk6CisgICAgICAg
ICogbG9hZGVyL1BpbmdMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6
bG9hZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnNlbmRQaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQpOgorICAgICAg
ICAqIGxvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OlJlc291cmNlTG9hZFNj
aGVkdWxlcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVk
dWxlTG9hZCk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICog
bG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL1RocmVhZGFibGVM
b2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFRocmVhZGFibGVMb2FkZXJDbGllbnQpOgorICAgICAg
ICAqIGxvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlci5oOgorICAgICAgICAoVGhy
ZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlSG9zdC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChBcHBs
aWNhdGlvbkNhY2hlSG9zdCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291
cmNlLmg6CisgICAgICAgIChDYWNoZWRSYXdSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRSYXdSZXNvdXJjZUNsaWVudDo6cmVkaXJlY3RSZWNlaXZlZCk6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmRp
ZFNlbmREYXRhKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJlbG9hZCk6
CisgICAgICAgICogbG9hZGVyL2Nocm9taXVtOiBSZW1vdmVkLgorICAgICAgICAqIGxvYWRlci9j
aHJvbWl1bS9DYWNoZWRSYXdSZXNvdXJjZUNocm9taXVtLmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBsb2FkZXIvY2hyb21pdW0vRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyQ2hyb21pdW0uY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIGxvYWRlci9jaHJvbWl1bS9SZXNvdXJjZUxvYWRlckNocm9taXVt
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBsb2FkZXIvY2hyb21pdW0vU3VicmVzb3VyY2VMb2Fk
ZXJDaHJvbWl1bS5jcHA6IFJlbW92ZWQuCisKIDIwMTMtMDQtMDUgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIENocm9taXVtIGNvZGUgZnJvbSBXZWJD
b3JlL2VkaXRpbmcKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNw
cAkocmV2aXNpb24gMTQ3NzIxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9h
ZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTY3LDE0ICs1NjcsNyBAQCB2b2lkIERvY3VtZW50
TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKENhCiAKICAgICAvLyBUaGUgbWVtb3J5IGNhY2hlIGRv
ZXNuJ3QgdW5kZXJzdGFuZCB0aGUgYXBwbGljYXRpb24gY2FjaGUgb3IgaXRzIGNhY2hpbmcgcnVs
ZXMuIFNvIGlmIGEgbWFpbiByZXNvdXJjZSBpcyBzZXJ2ZWQKICAgICAvLyBmcm9tIHRoZSBhcHBs
aWNhdGlvbiBjYWNoZSwgZW5zdXJlIHdlIGRvbid0IHNhdmUgdGhlIHJlc3VsdCBmb3IgZnV0dXJl
IHVzZS4KLSAgICBib29sIHNob3VsZFJlbW92ZVJlc291cmNlRnJvbUNhY2hlID0gd2lsbExvYWRG
YWxsYmFjazsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAvLyBjaHJvbWl1bSdzIEFwcGxp
Y2F0aW9uQ2FjaGVIb3N0IGltcGxlbWVudGF0aW9uIGFsd2F5cyByZXR1cm5zIHRydWUgZm9yIG1h
eWJlTG9hZEZhbGxiYWNrRm9yTWFpblJlc3BvbnNlKCkuIEhvd2V2ZXIsIGFsbCByZXNwb25zZXMg
bG9hZGVkCi0gICAgLy8gZnJvbSBhcHBjYWNoZSB3aWxsIGhhdmUgYSBub24temVybyBhcHBDYWNo
ZUlEKCkuCi0gICAgaWYgKHJlc3BvbnNlLmFwcENhY2hlSUQoKSkKLSAgICAgICAgc2hvdWxkUmVt
b3ZlUmVzb3VyY2VGcm9tQ2FjaGUgPSB0cnVlOwotI2VuZGlmCi0gICAgaWYgKHNob3VsZFJlbW92
ZVJlc291cmNlRnJvbUNhY2hlKQorICAgIGlmICh3aWxsTG9hZEZhbGxiYWNrKQogICAgICAgICBt
ZW1vcnlDYWNoZSgpLT5yZW1vdmUobV9tYWluUmVzb3VyY2UuZ2V0KCkpOwogCiAgICAgaWYgKHdp
bGxMb2FkRmFsbGJhY2spCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlci5oCShyZXZpc2lvbiAxNDc3MjEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTgy
LDkgKzgyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGF0
YVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5n
dGgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChDYWNoZWRSZXNvdXJj
ZSosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7Ci0jaWYgUExBVEZP
Uk0oQ0hST01JVU0pCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkYXRhRG93bmxvYWRlZChDYWNoZWRS
ZXNvdXJjZSosIGludCk7Ci0jZW5kaWYKIAogICAgICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25z
ZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAg
ICAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0
IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAkocmV2aXNpb24gMTQ3NzIxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMyLDEwICsyMzIsNiBAQCBGcmFt
ZUxvYWRlcjo6RnJhbWVMb2FkZXIoRnJhbWUqIGZyYW1lLCBGCiAgICAgLCBtX3Nob3VsZENhbGxD
aGVja0NvbXBsZXRlZChmYWxzZSkKICAgICAsIG1fc2hvdWxkQ2FsbENoZWNrTG9hZENvbXBsZXRl
KGZhbHNlKQogICAgICwgbV9vcGVuZXIoMCkKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAs
IG1fZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KGZhbHNlKQotICAgICwgbV9kaWRBY2Nlc3NJbml0
aWFsRG9jdW1lbnRUaW1lcih0aGlzLCAmRnJhbWVMb2FkZXI6OmRpZEFjY2Vzc0luaXRpYWxEb2N1
bWVudFRpbWVyRmlyZWQpCi0jZW5kaWYKICAgICAsIG1fZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlv
bihmYWxzZSkKICAgICAsIG1fbG9hZGluZ0Zyb21DYWNoZWRQYWdlKGZhbHNlKQogICAgICwgbV9z
dXBwcmVzc09wZW5lckluTmV3RnJhbWUoZmFsc2UpCkBAIC04ODQsNyArODgwLDcgQEAgT2JqZWN0
Q29udGVudFR5cGUgRnJhbWVMb2FkZXI6OmRlZmF1bHRPYgogICAgIGlmIChtaW1lVHlwZS5pc0Vt
cHR5KCkpCiAgICAgICAgIG1pbWVUeXBlID0gbWltZVR5cGVGcm9tVVJMKHVybCk7CiAKLSNpZiAh
UExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oQ0hST01JVU0pICYmICFQTEFURk9STShFRkwpIC8v
IE1hYyBoYXMgbm8gUGx1Z2luRGF0YWJhc2UsIG5vciBkb2VzIENocm9taXVtIG9yIEVGTAorI2lm
ICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShFRkwpIC8vIE1hYyBoYXMgbm8gUGx1Z2luRGF0
YWJhc2UsIG5vciBkb2VzIENocm9taXVtIG9yIEVGTAogICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5
KCkpIHsKICAgICAgICAgU3RyaW5nIGRlY29kZWRQYXRoID0gZGVjb2RlVVJMRXNjYXBlU2VxdWVu
Y2VzKHVybC5wYXRoKCkpOwogICAgICAgICBtaW1lVHlwZSA9IFBsdWdpbkRhdGFiYXNlOjppbnN0
YWxsZWRQbHVnaW5zKCktPk1JTUVUeXBlRm9yRXh0ZW5zaW9uKGRlY29kZWRQYXRoLnN1YnN0cmlu
ZyhkZWNvZGVkUGF0aC5yZXZlcnNlRmluZCgnLicpICsgMSkpOwpAQCAtODk0LDcgKzg5MCw3IEBA
IE9iamVjdENvbnRlbnRUeXBlIEZyYW1lTG9hZGVyOjpkZWZhdWx0T2IKICAgICBpZiAobWltZVR5
cGUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudEZyYW1lOyAvLyBHbyBh
aGVhZCBhbmQgaG9wZSB0aGF0IHdlIGNhbiBkaXNwbGF5IHRoZSBjb250ZW50LgogCi0jaWYgIVBM
QVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKENIUk9NSVVNKSAmJiAhUExBVEZPUk0oRUZMKSAvLyBN
YWMgaGFzIG5vIFBsdWdpbkRhdGFiYXNlLCBub3IgZG9lcyBDaHJvbWl1bSBvciBFRkwKKyNpZiAh
UExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oRUZMKSAvLyBNYWMgaGFzIG5vIFBsdWdpbkRhdGFi
YXNlLCBub3IgZG9lcyBDaHJvbWl1bSBvciBFRkwKICAgICBib29sIHBsdWdJblN1cHBvcnRzTUlN
RVR5cGUgPSBQbHVnaW5EYXRhYmFzZTo6aW5zdGFsbGVkUGx1Z2lucygpLT5pc01JTUVUeXBlUmVn
aXN0ZXJlZChtaW1lVHlwZSk7CiAjZWxzZQogICAgIGJvb2wgcGx1Z0luU3VwcG9ydHNNSU1FVHlw
ZSA9IGZhbHNlOwpAQCAtMTU4MSwyMyArMTU3Nyw2IEBAIERvY3VtZW50TG9hZGVyKiBGcmFtZUxv
YWRlcjo6YWN0aXZlRG9jdW0KICAgICByZXR1cm4gbV9kb2N1bWVudExvYWRlci5nZXQoKTsKIH0K
IAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotdm9pZCBGcmFtZUxvYWRlcjo6ZGlkQWNjZXNzSW5p
dGlhbERvY3VtZW50KCkKLXsKLSAgICAvLyBXZSBvbmx5IG5lZWQgdG8gbm90aWZ5IHRoZSBjbGll
bnQgb25jZSwgYW5kIG9ubHkgZm9yIHRoZSBtYWluIGZyYW1lLgotICAgIGlmIChpc0xvYWRpbmdN
YWluRnJhbWUoKSAmJiAhbV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQpIHsKLSAgICAgICAgbV9k
aWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQgPSB0cnVlOwotICAgICAgICAvLyBOb3RpZnkgYXN5bmNo
cm9ub3VzbHksIHNpbmNlIHRoaXMgaXMgY2FsbGVkIHdpdGhpbiBhIEphdmFTY3JpcHQgc2VjdXJp
dHkgY2hlY2suCi0gICAgICAgIG1fZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50VGltZXIuc3RhcnRP
bmVTaG90KDApOwotICAgIH0KLX0KLQotdm9pZCBGcmFtZUxvYWRlcjo6ZGlkQWNjZXNzSW5pdGlh
bERvY3VtZW50VGltZXJGaXJlZChUaW1lcjxGcmFtZUxvYWRlcj4qKQotewotICAgIG1fY2xpZW50
LT5kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQoKTsKLX0KLSNlbmRpZgotCiBib29sIEZyYW1lTG9h
ZGVyOjppc0xvYWRpbmcoKSBjb25zdAogewogICAgIERvY3VtZW50TG9hZGVyKiBkb2NMb2FkZXIg
PSBhY3RpdmVEb2N1bWVudExvYWRlcigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmgJKHJldmlzaW9uIDE0NzcyMSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsMTEgKzEzNyw2IEBAIHB1YmxpYzoKICAgICAv
LyBGSVhNRTogY2xlYXIoKSBpcyB0cnlpbmcgdG8gZG8gdG9vIG1hbnkgdGhpbmdzLiBXZSBzaG91
bGQgYnJlYWsgaXQgZG93biBpbnRvIHNtYWxsZXIgZnVuY3Rpb25zIChpZGVhbGx5IHdpdGggZmV3
ZXIgcmF3IEJvb2xlYW4gcGFyYW1ldGVycykuCiAgICAgdm9pZCBjbGVhcihEb2N1bWVudCogbmV3
RG9jdW1lbnQsIGJvb2wgY2xlYXJXaW5kb3dQcm9wZXJ0aWVzID0gdHJ1ZSwgYm9vbCBjbGVhclNj
cmlwdE9iamVjdHMgPSB0cnVlLCBib29sIGNsZWFyRnJhbWVWaWV3ID0gdHJ1ZSk7CiAKLSNpZiBQ
TEFURk9STShDSFJPTUlVTSkKLSAgICB2b2lkIGRpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCgpOwot
ICAgIHZvaWQgZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50VGltZXJGaXJlZChUaW1lcjxGcmFtZUxv
YWRlcj4qKTsKLSNlbmRpZgotCiAgICAgYm9vbCBpc0xvYWRpbmcoKSBjb25zdDsKICAgICBib29s
IGZyYW1lSGFzTG9hZGVkKCkgY29uc3Q7CiAKQEAgLTQzNywxMCArNDMyLDYgQEAgcHJpdmF0ZToK
ICAgICBGcmFtZSogbV9vcGVuZXI7CiAgICAgSGFzaFNldDxGcmFtZSo+IG1fb3BlbmVkRnJhbWVz
OwogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgYm9vbCBtX2RpZEFjY2Vzc0luaXRpYWxE
b2N1bWVudDsKLSAgICBUaW1lcjxGcmFtZUxvYWRlcj4gbV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1l
bnRUaW1lcjsKLSNlbmRpZgogICAgIGJvb2wgbV9kaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uOwog
ICAgIGJvb2wgbV9sb2FkaW5nRnJvbUNhY2hlZFBhZ2U7CiAgICAgYm9vbCBtX3N1cHByZXNzT3Bl
bmVySW5OZXdGcmFtZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oCShyZXZpc2lvbiAxNDc3MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjA5LDEzICsyMDksNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wTG9hZGluZ0Zvckhp
c3RvcnlJdGVtKEhpc3RvcnlJdGVtKikgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlR2xvYmFsSGlzdG9yeUl0ZW1Gb3JQYWdlKCkgeyB9CiAKLSNpZiBQTEFURk9STShDSFJP
TUlVTSkKLSAgICAgICAgLy8gQW5vdGhlciBwYWdlIGhhcyBhY2Nlc3NlZCB0aGUgaW5pdGlhbCBl
bXB0eSBkb2N1bWVudCBvZiB0aGlzIGZyYW1lLgotICAgICAgICAvLyBJdCBpcyBubyBsb25nZXIg
c2FmZSB0byBkaXNwbGF5IGEgcHJvdmlzaW9uYWwgVVJMLCBzaW5jZSBhIFVSTCBzcG9vZgotICAg
ICAgICAvLyBpcyBub3cgcG9zc2libGUuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRBY2Nlc3NJ
bml0aWFsRG9jdW1lbnQoKSB7IH0KLSNlbmRpZgotCiAgICAgICAgIC8vIFRoaXMgZnJhbWUgaGFz
IHNldCBpdHMgb3BlbmVyIHRvIG51bGwsIGRpc293bmluZyBpdCBmb3IgdGhlIGxpZmV0aW1lIG9m
IHRoZSBmcmFtZS4KICAgICAgICAgLy8gU2VlIGh0dHA6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8j
ZG9tLW9wZW5lci4KICAgICAgICAgLy8gRklYTUU6IEpTQyBzaG91bGQgYWxsb3cgZGlzb3duaW5n
IG9wZW5lci4gLSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkx
Mz4uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCShyZXZpc2lvbiAxNDc3
MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBQaW5nTG9hZGVyOjpsb2FkSW1hZ2UoRnJhbWUqIGZy
YW1lLAogICAgIH0KIAogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHVybCk7Ci0jaWYgUExB
VEZPUk0oQ0hST01JVU0pIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgUExBVEZPUk0oQkxB
Q0tCRVJSWSkKICAgICByZXF1ZXN0LnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJn
ZXRJc0ltYWdlKTsKICNlbmRpZgogICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKCJDYWNo
ZS1Db250cm9sIiwgIm1heC1hZ2U9MCIpOwpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIFBpbmdMb2Fk
ZXI6OmxvYWRJbWFnZShGcmFtZSogZnJhbWUsCiB2b2lkIFBpbmdMb2FkZXI6OnNlbmRQaW5nKEZy
YW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgcGluZ1VSTCwgY29uc3QgS1VSTCYgZGVzdGluYXRpb25V
UkwpCiB7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QocGluZ1VSTCk7Ci0jaWYgUExBVEZP
Uk0oQ0hST01JVU0pIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgUExBVEZPUk0oQkxBQ0tC
RVJSWSkKICAgICByZXF1ZXN0LnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJ
c1N1YnJlc291cmNlKTsKICNlbmRpZgogICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiUE9TVCIp
OwpAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFBpbmcoRnJhbWUqIGZy
YW1lLCAKIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSogZnJhbWUs
IGNvbnN0IEtVUkwmIHJlcG9ydFVSTCwgUGFzc1JlZlB0cjxGb3JtRGF0YT4gcmVwb3J0KQogewog
ICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHJlcG9ydFVSTCk7Ci0jaWYgUExBVEZPUk0oQ0hS
T01JVU0pIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkK
ICAgICByZXF1ZXN0LnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YnJl
c291cmNlKTsKICNlbmRpZgogICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiUE9TVCIpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAJ
KHJldmlzaW9uIDE0NzcyMSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MiwyMiArNDIsMTEgQEAKICNpbmNsdWRl
IDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jZGVmaW5lIFJFUVVFU1RfTUFOQUdFTUVOVF9FTkFC
TEVEIDAKLSNlbHNlCi0jZGVmaW5lIFJFUVVFU1RfTUFOQUdFTUVOVF9FTkFCTEVEIDEKLSNlbmRp
ZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBSRVFVRVNUX01BTkFHRU1FTlRfRU5BQkxF
RAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFJlcXVlc3RzSW5GbGlnaHRGb3JOb25IVFRQUHJv
dG9jb2xzID0gMjA7CiAvLyBNYXRjaCB0aGUgcGFyYWxsZWwgY29ubmVjdGlvbiBjb3VudCB1c2Vk
IGJ5IHRoZSBuZXR3b3JraW5nIGxheWVyLgogc3RhdGljIHVuc2lnbmVkIG1heFJlcXVlc3RzSW5G
bGlnaHRQZXJIb3N0OwotI2Vsc2UKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhSZXF1ZXN0c0lu
RmxpZ2h0Rm9yTm9uSFRUUFByb3RvY29scyA9IDEwMDAwOwotc3RhdGljIGNvbnN0IHVuc2lnbmVk
IG1heFJlcXVlc3RzSW5GbGlnaHRQZXJIb3N0ID0gMTAwMDA7Ci0jZW5kaWYKIAogUmVzb3VyY2VM
b2FkU2NoZWR1bGVyOjpIb3N0SW5mb3JtYXRpb24qIFJlc291cmNlTG9hZFNjaGVkdWxlcjo6aG9z
dEZvclVSTChjb25zdCBLVVJMJiB1cmwsIENyZWF0ZUhvc3RQb2xpY3kgY3JlYXRlSG9zdFBvbGlj
eSkKIHsKQEAgLTEwNyw5ICs5Niw3IEBAIFJlc291cmNlTG9hZFNjaGVkdWxlcjo6UmVzb3VyY2VM
b2FkU2NoZWQKICAgICAsIG1fc3VzcGVuZFBlbmRpbmdSZXF1ZXN0c0NvdW50KDApCiAgICAgLCBt
X2lzU2VyaWFsTG9hZGluZ0VuYWJsZWQoZmFsc2UpCiB7Ci0jaWYgUkVRVUVTVF9NQU5BR0VNRU5U
X0VOQUJMRUQKICAgICBtYXhSZXF1ZXN0c0luRmxpZ2h0UGVySG9zdCA9IGluaXRpYWxpemVNYXhp
bXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QoKTsKLSNlbmRpZgogfQogCiBSZXNvdXJjZUxv
YWRTY2hlZHVsZXI6On5SZXNvdXJjZUxvYWRTY2hlZHVsZXIoKQpAQCAtMTM2LDkgKzEyMyw2IEBA
IHZvaWQgUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQKIHsKICAgICBBU1NFUlQo
cmVzb3VyY2VMb2FkZXIpOwogICAgIEFTU0VSVChwcmlvcml0eSAhPSBSZXNvdXJjZUxvYWRQcmlv
cml0eVVucmVzb2x2ZWQpOwotI2lmICFSRVFVRVNUX01BTkFHRU1FTlRfRU5BQkxFRAotICAgIHBy
aW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlIaWdoZXN0OwotI2VuZGlmCiAKICAgICBMT0co
UmVzb3VyY2VMb2FkaW5nLCAiUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpsb2FkIHJlc291cmNlICVw
ICclcyciLCByZXNvdXJjZUxvYWRlciwgcmVzb3VyY2VMb2FkZXItPnVybCgpLnN0cmluZygpLmxh
dGluMSgpLmRhdGEoKSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5oCShyZXZpc2lvbiAxNDc3MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTMzLDEwICsxMzMsNiBAQCBwdWJsaWM6CiAgICAg
Ly8gRklYTUU6IFdpbmRvd3Mgc2hvdWxkIHVzZSB3aWxsQ2FjaGVSZXNwb25zZSAtIDxodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcyNTc+LgogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxSZXNwb25z
ZVJlZikgT1ZFUlJJREU7CiAjZW5kaWYKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkRG93bmxvYWREYXRhKFJlc291cmNlSGFuZGxlKiwgaW50KTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkRG93bmxvYWREYXRhKGludCk7Ci0jZW5kaWYKIAogICAgIGNvbnN0IEtVUkwm
IHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdC51cmwoKTsgfSAKICAgICBSZXNvdXJjZUhh
bmRsZSogaGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGUuZ2V0KCk7IH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAxNDc3MjEp
CisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNzIsOSArNzIsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c0RhdGFBcnJheSgpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZURhdGFBcnJheShDRkFycmF5UmVmKSBPVkVSUklERTsKICNlbmRpZgotI2lmIFBM
QVRGT1JNKENIUk9NSVVNKQotICAgIHZpcnR1YWwgdm9pZCBkaWREb3dubG9hZERhdGEoaW50KSBP
VkVSUklERTsKLSNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlUmVzb3VyY2VzKCkgT1ZF
UlJJREU7CiAKICAgICBib29sIGNoZWNrRm9ySFRUUFN0YXR1c0NvZGVFcnJvcigpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oCShyZXZp
c2lvbiAxNDc3MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MiwxMCArNTIsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyQ2xp
ZW50KCkgeyByZXR1cm4gZmFsc2U7IH0KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkRG93bmxvYWREYXRhKGludCAvKmRhdGFMZW5ndGgqLykgeyB9Ci0j
ZW5kaWYKLQogICAgIHByb3RlY3RlZDoKICAgICAgICAgVGhyZWFkYWJsZUxvYWRlckNsaWVudCgp
IHsgfQogICAgICAgICB2aXJ0dWFsIH5UaHJlYWRhYmxlTG9hZGVyQ2xpZW50KCkgeyB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVu
dFdyYXBwZXIuaAkocmV2aXNpb24gMTQ3NzIxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Ro
cmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNCwxNCAr
MTE0LDYgQEAgcHVibGljOgogICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVSZXNwb25z
ZShpZGVudGlmaWVyLCByZXNwb25zZSk7CiAgICAgfQogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0p
Ci0gICAgdm9pZCBkaWREb3dubG9hZERhdGEoaW50IGRhdGFMZW5ndGgpCi0gICAgewotICAgICAg
ICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+ZGlkRG93bmxvYWREYXRhKGRh
dGFMZW5ndGgpOwotICAgIH0KLSNlbmRpZgotCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgVGhy
ZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIoVGhyZWFkYWJsZUxvYWRlckNsaWVudCogY2xpZW50
KQogICAgICAgICA6IG1fY2xpZW50KGNsaWVudCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oCShyZXZpc2lvbiAx
NDc3MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUhvc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsMTQgKzQ3LDEwIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXNw
b25zZTsKICAgICBjbGFzcyBTdWJzdGl0dXRlRGF0YTsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkK
LSAgICBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlSG9zdEludGVybmFsOwotI2Vsc2UKICAgICBjbGFz
cyBBcHBsaWNhdGlvbkNhY2hlOwogICAgIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDsKICAg
ICBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U7CiAgICAgY2xhc3MgQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2U7Ci0jZW5kaWYKIAogICAgIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVIb3N0IHsK
ICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXBwbGljYXRpb25DYWNoZUhvc3QpOyBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTE1NSwxMCArMTUxLDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBDYWNoZUluZm8gYXBwbGljYXRpb25DYWNoZUluZm8oKTsKICNlbmRpZgog
Ci0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogICAgICAgICBib29sIHNob3VsZExvYWRSZXNvdXJj
ZUZyb21BcHBsaWNhdGlvbkNhY2hlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEFwcGxpY2F0aW9u
Q2FjaGVSZXNvdXJjZSomKTsKICAgICAgICAgYm9vbCBnZXRBcHBsaWNhdGlvbkNhY2hlRmFsbGJh
Y2tSZXNvdXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBBcHBsaWNhdGlvbkNhY2hlUmVzb3Vy
Y2UqJiwgQXBwbGljYXRpb25DYWNoZSogPSAwKTsKLSNlbmRpZgogCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgYm9vbCBpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCk7CkBAIC0xNzgsMTAgKzE3Miw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGRpc3BhdGNoRE9NRXZlbnQo
RXZlbnRJRCwgaW50IHByb2dyZXNzVG90YWwsIGludCBwcm9ncmVzc0RvbmUpOwogCi0jaWYgUExB
VEZPUk0oQ0hST01JVU0pCi0gICAgICAgIGZyaWVuZCBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlSG9z
dEludGVybmFsOwotICAgICAgICBPd25QdHI8QXBwbGljYXRpb25DYWNoZUhvc3RJbnRlcm5hbD4g
bV9pbnRlcm5hbDsKLSNlbHNlCiAgICAgICAgIGZyaWVuZCBjbGFzcyBBcHBsaWNhdGlvbkNhY2hl
R3JvdXA7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTsKIApA
QCAtMjAyLDcgKzE5Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBUaGlz
IGlzIHRoZSBhcHBsaWNhdGlvbiBjYWNoZSB0aGUgbWFpbiByZXNvdXJjZSB3YXMgbG9hZGVkIGZy
b20gKGlmIGFueSkuCiAgICAgICAgIFJlZlB0cjxBcHBsaWNhdGlvbkNhY2hlPiBtX21haW5SZXNv
dXJjZUFwcGxpY2F0aW9uQ2FjaGU7Ci0jZW5kaWYKICAgICB9OwogCiB9ICAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291
cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJh
d1Jlc291cmNlLmgJKHJldmlzaW9uIDE0NzcyMSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw5ICs2Miw2IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIHJlc3BvbnNl
UmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRT
ZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcg
dG90YWxCeXRlc1RvQmVTZW50KTsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkRG93bmxvYWREYXRhKGludCk7Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBz
d2l0Y2hDbGllbnRzVG9SZXZhbGlkYXRlZFJlc291cmNlKCkgT1ZFUlJJREU7CiAKQEAgLTk2LDkg
KzkzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKENhY2hl
ZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBjaGFyKiAvKiBkYXRhICovLCBp
bnQgLyogbGVuZ3RoICovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChD
YWNoZWRSZXNvdXJjZSosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KSB7IH0KLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICB2aXJ0dWFsIHZvaWQgZGF0YURvd25s
b2FkZWQoQ2FjaGVkUmVzb3VyY2UqLCBpbnQpIHsgfQotI2VuZGlmCiB9OwogCiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAJKHJldmlz
aW9uIDE0NzcyMSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw3ICsxNTIsNyBAQCBzdGF0aWMgUmVzb3VyY2VM
b2FkUHJpb3JpdHkgZGVmYXVsdFByaW9yCiAgICAgcmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5
TG93OwogfQogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkp
CisjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKIHN0YXRpYyBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdl
dFR5cGUgY2FjaGVkUmVzb3VyY2VUeXBlVG9UYXJnZXRUeXBlKENhY2hlZFJlc291cmNlOjpUeXBl
IHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CkBAIC0zMTEsNyArMzExLDcgQEAgdm9pZCBD
YWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZQogICAgIG1fb3B0aW9ucyA9IG9wdGlv
bnM7CiAgICAgbV9sb2FkaW5nID0gdHJ1ZTsKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKSB8fCBQ
TEFURk9STShCTEFDS0JFUlJZKQorI2lmIFBMQVRGT1JNKEJMQUNLQkVSUlkpCiAgICAgaWYgKG1f
cmVzb3VyY2VSZXF1ZXN0LnRhcmdldFR5cGUoKSA9PSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElz
VW5zcGVjaWZpZWQpCiAgICAgICAgIG1fcmVzb3VyY2VSZXF1ZXN0LnNldFRhcmdldFR5cGUoY2Fj
aGVkUmVzb3VyY2VUeXBlVG9UYXJnZXRUeXBlKHR5cGUoKSkpOwogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAkocmV2aXNpb24gMTQ3
NzIxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI1Myw5ICsyNTMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVS
ZXNwb25zZUFmdGVyUmV2YWxpZGF0aW9uKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHZhbGlkYXRp
bmdSZXNwb25zZSk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGRpZFNlbmREYXRhKHVuc2lnbmVk
IGxvbmcgbG9uZyAvKiBieXRlc1NlbnQgKi8sIHVuc2lnbmVkIGxvbmcgbG9uZyAvKiB0b3RhbEJ5
dGVzVG9CZVNlbnQgKi8pIHsgfQotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIHZpcnR1YWwg
dm9pZCBkaWREb3dubG9hZERhdGEoaW50KSB7IH0KLSNlbmRpZgogCiAgICAgdm9pZCBzZXRMb2Fk
RmluaXNoVGltZShkb3VibGUgZmluaXNoVGltZSkgeyBtX2xvYWRGaW5pc2hUaW1lID0gZmluaXNo
VGltZTsgfQogICAgIGRvdWJsZSBsb2FkRmluaXNoVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9h
ZEZpbmlzaFRpbWU7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMTQ3NzIxKQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDkwLDE4ICs0OTAsNiBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNv
dXJjZT4gQ2FjCiAgICAgICAgIH0KICAgICB9CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAg
ICAvLyBGSVhNRTogVGVtcG9yYXJpbHkgbGVhdmUgbWFpbiByZXNvdXJjZSBjYWNoaW5nIGRpc2Fi
bGVkIGZvciBjaHJvbWl1bSwgc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDc5NjIKLSAgICAvLyBFbnN1cmUgbWFpbiByZXNvdXJjZXMgYXJlbid0IHByZWxvYWRl
ZCwgYW5kIG90aGVyIG1haW4gcmVzb3VyY2UgbG9hZHMgYXJlIHJlbW92ZWQgZnJvbSBjYWNoZSB0
byBwcmV2ZW50IHJldXNlLgotICAgIGlmICh0eXBlID09IENhY2hlZFJlc291cmNlOjpNYWluUmVz
b3VyY2UpIHsKLSAgICAgICAgQVNTRVJUKHBvbGljeSAhPSBVc2UpOwotICAgICAgICBBU1NFUlQo
cG9saWN5ICE9IFJldmFsaWRhdGUpOwotICAgICAgICBtZW1vcnlDYWNoZSgpLT5yZW1vdmUocmVz
b3VyY2UuZ2V0KCkpOwotICAgICAgICBpZiAocmVxdWVzdC5mb3JQcmVsb2FkKCkpCi0gICAgICAg
ICAgICByZXR1cm4gMDsKLSAgICB9Ci0jZW5kaWYKLQogICAgIGlmICghcmVxdWVzdC5yZXNvdXJj
ZVJlcXVlc3QoKS51cmwoKS5wcm90b2NvbElzRGF0YSgpKQogICAgICAgICBtX3ZhbGlkYXRlZFVS
THMuYWRkKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpOwogCkBAIC04NDQsMTQgKzgz
Miw5IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlY3JlbWVudFJlcXUKIHZvaWQgQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCiB7CiAg
ICAgYm9vbCBkZWxheVN1YnJlc291cmNlTG9hZCA9IHRydWU7Ci0jaWYgUExBVEZPUk0oSU9TKSB8
fCBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBQTEFURk9STShJT1MpCiAgICAgZGVsYXlTdWJyZXNv
dXJjZUxvYWQgPSBmYWxzZTsKICNlbmRpZgotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIC8v
IEZJWE1FOiBBbGwgcG9ydHMgc2hvdWxkIHRha2UgYWR2YW50YWdlIG9mIHRoaXMsIGJ1dCBmaXJz
dCBtdXN0IHN1cHBvcnQgUmVzb3VyY2VIYW5kbGU6OmRpZENoYW5nZVByaW9yaXR5KCkuCi0gICAg
aWYgKHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UpCi0gICAgICAgIHJlcXVl
c3Quc2V0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93KTsKLSNlbmRpZgogICAg
IGlmIChkZWxheVN1YnJlc291cmNlTG9hZCkgewogICAgICAgICBib29sIGhhc1JlbmRlcmluZyA9
IG1fZG9jdW1lbnQtPmJvZHkoKSAmJiBtX2RvY3VtZW50LT5ib2R5KCktPnJlbmRlcmVyKCk7CiAg
ICAgICAgIGJvb2wgY2FuQmxvY2tQYXJzZXIgPSB0eXBlID09IENhY2hlZFJlc291cmNlOjpTY3Jp
cHQgfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jaHJvbWl1bS9DYWNoZWRSYXdSZXNvdXJjZUNocm9taXVtLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2hyb21pdW0vQ2FjaGVkUmF3UmVz
b3VyY2VDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDE0NzcyMSkKKysrIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jaHJvbWl1bS9DYWNoZWRSYXdSZXNvdXJjZUNocm9taXVtLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDExLCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSAqIG1ldDoKLSAqIAotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDYWNo
ZWRSYXdSZXNvdXJjZS5oIgotCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKLSNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oIgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLXZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OmRpZERvd25sb2FkRGF0YShpbnQgZGF0YUxl
bmd0aCkKLXsKLSAgICBDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlcjxDYWNoZWRSYXdSZXNvdXJj
ZUNsaWVudD4gdyhtX2NsaWVudHMpOwotICAgIHdoaWxlIChDYWNoZWRSYXdSZXNvdXJjZUNsaWVu
dCogYyA9IHcubmV4dCgpKQotICAgICAgICBjLT5kYXRhRG93bmxvYWRlZCh0aGlzLCBkYXRhTGVu
Z3RoKTsKLX0KLQotfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nocm9taXVtL0RvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlckNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2hyb21pdW0vRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyQ2hyb21pdW0uY3Bw
CShyZXZpc2lvbiAxNDc3MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2hyb21pdW0vRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTEsIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0
OgotICogCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0g
KiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5oIgotCi0jaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKLSNpbmNsdWRl
ICJUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9p
ZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmRhdGFEb3dubG9hZGVkKENhY2hlZFJlc291cmNl
KiByZXNvdXJjZSwgaW50IGRhdGFMZW5ndGgpCi17Ci0gICAgQVNTRVJUKG1fY2xpZW50KTsKLSAg
ICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCByZXNvdXJjZSA9PSBtX3Jlc291cmNlKTsKLSAgICBB
U1NFUlQoIW1fYWN0dWFsUmVxdWVzdCk7Ci0KLSAgICBtX2NsaWVudC0+ZGlkRG93bmxvYWREYXRh
KGRhdGFMZW5ndGgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2hyb21pdW0vUmVzb3VyY2VMb2FkZXJDaHJvbWl1bS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nocm9taXVtL1Jlc291cmNlTG9hZGVyQ2hy
b21pdW0uY3BwCShyZXZpc2lvbiAxNDc3MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2hy
b21pdW0vUmVzb3VyY2VMb2FkZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNTMg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxMSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6
Ci0gKiAKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAq
IAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXIu
aCIKLQotI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVIb3N0LmgiCi0jaW5jbHVkZSAiRG9jdW1l
bnRMb2FkZXIuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LXZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZERvd25sb2FkRGF0YShSZXNvdXJjZUhhbmRsZSosIGlu
dCBsZW5ndGgpCi17Ci0gICAgZGlkRG93bmxvYWREYXRhKGxlbmd0aCk7Ci19Ci0KLXZvaWQgUmVz
b3VyY2VMb2FkZXI6OmRpZERvd25sb2FkRGF0YShpbnQgbGVuZ3RoKQotewotICAgIGlmICghbV9j
YW5jZWxsZWQgJiYgIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9u
Q2FjaGVIb3N0KCkpKQotICAgICAgICBDUkFTSCgpOwotICAgIGlmICghbV9jYW5jZWxsZWQgJiYg
IWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkpKQotICAgICAgICBDUkFT
SCgpOwotfQotCi19CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2hyb21pdW0vU3VicmVz
b3VyY2VMb2FkZXJDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2Nocm9taXVtL1N1YnJlc291cmNlTG9hZGVyQ2hyb21pdW0uY3BwCShyZXZpc2lvbiAxNDc3
MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2hyb21pdW0vU3VicmVzb3VyY2VMb2FkZXJD
aHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoYykgMjAxMSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKiAKLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmli
dXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKLQotI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZERvd25s
b2FkRGF0YShpbnQgbGVuZ3RoKQotewotICAgIC8vIFJlZmVyZW5jZSB0aGUgb2JqZWN0IGluIHRo
aXMgbWV0aG9kIHNpbmNlIHRoZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgY2FuIGRvCi0gICAgLy8g
YW55dGhpbmcgaW5jbHVkaW5nIHJlbW92aW5nIHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0aGlzIG9i
amVjdDsgb25lIGV4YW1wbGUgb2YgdGhpcyBpcyAzMjY2MjE2LgotICAgIFJlZlB0cjxTdWJyZXNv
dXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKLSAgICAKLSAgICBSZXNvdXJjZUxvYWRlcjo6ZGlk
RG93bmxvYWREYXRhKGxlbmd0aCk7Ci0gICAgbV9yZXNvdXJjZS0+ZGlkRG93bmxvYWREYXRhKGxl
bmd0aCk7Ci19Ci0KLX0K
</data>

          </attachment>
      

    </bug>

</bugzilla>