<?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>213722</bug_id>
          
          <creation_ts>2020-06-29 03:26:17 -0700</creation_ts>
          <short_desc>[MSE][GStreamer] Rename MediaSourceGStreamer to MediaSourcePrivateGStreamer</short_desc>
          <delta_ts>2020-06-29 04:50:26 -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>WebKitGTK</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alicia Boya García">aboya</reporter>
          <assigned_to name="Alicia Boya García">aboya</assigned_to>
          <cc>annulen</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1667049</commentid>
    <comment_count>0</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2020-06-29 03:26:17 -0700</bug_when>
    <thetext>It&apos;s about time to remove this FIXME:

// FIXME: Should this be called MediaSourcePrivateGStreamer?

Yes, it should. Because it&apos;s a MediaSourcePrivate, and that is an
important fact. The MSE class diagram is confusing enough already,
let&apos;s fix this.

To rebase commits after this change use `git format-patch` first to
get them in a patch format and then run:

sed -i &apos;s|\&lt;MediaSourceGStreamer\&gt;|MediaSourcePrivateGStreamer|g&apos; *.patch

This patch is a refactor that produces no behavior changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667050</commentid>
    <comment_count>1</comment_count>
      <attachid>403047</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2020-06-29 03:27:44 -0700</bug_when>
    <thetext>Created attachment 403047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667060</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-29 04:50:24 -0700</bug_when>
    <thetext>Committed r263656: &lt;https://trac.webkit.org/changeset/263656&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403047.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403047</attachid>
            <date>2020-06-29 03:27:44 -0700</date>
            <delta_ts>2020-06-29 04:50:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213722-20200629122742.patch</filename>
            <type>text/plain</type>
            <size>33173</size>
            <attacher name="Alicia Boya García">aboya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGIwYjQxN2QxNTVkY2Nj
YmZlN2FmMDYxMTAxZjUzNjhiY2E5ZTVlMy4uZDdjM2Y5MzljYWI1OTYzMWY4N2MzMzIyOWRmODky
YTQ2NTAyMmU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA2LTI5ICBBbGlj
aWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbTVNFXVtHU3Ry
ZWFtZXJdIFJlbmFtZSBNZWRpYVNvdXJjZUdTdHJlYW1lciB0byBNZWRpYVNvdXJjZVByaXZhdGVH
U3RyZWFtZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMzcyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEl0J3MgYWJvdXQgdGltZSB0byByZW1vdmUgdGhpcyBGSVhNRToKKworICAgICAgICAvLyBGSVhN
RTogU2hvdWxkIHRoaXMgYmUgY2FsbGVkIE1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lcj8KKwor
ICAgICAgICBZZXMsIGl0IHNob3VsZC4gQmVjYXVzZSBpdCdzIGEgTWVkaWFTb3VyY2VQcml2YXRl
LCBhbmQgdGhhdCBpcyBhbgorICAgICAgICBpbXBvcnRhbnQgZmFjdC4gVGhlIE1TRSBjbGFzcyBk
aWFncmFtIGlzIGNvbmZ1c2luZyBlbm91Z2ggYWxyZWFkeSwKKyAgICAgICAgbGV0J3MgZml4IHRo
aXMuCisKKyAgICAgICAgVG8gcmViYXNlIGNvbW1pdHMgYWZ0ZXIgdGhpcyBjaGFuZ2UgdXNlIGBn
aXQgZm9ybWF0LXBhdGNoYCBmaXJzdCB0bworICAgICAgICBnZXQgdGhlbSBpbiBhIHBhdGNoIGZv
cm1hdCBhbmQgdGhlbiBydW46CisKKyAgICAgICAgc2VkIC1pICdzfFw8TWVkaWFTb3VyY2VHU3Ry
ZWFtZXJcPnxNZWRpYVNvdXJjZVByaXZhdGVHU3RyZWFtZXJ8ZycgKi5wYXRjaAorCisgICAgICAg
IFRoaXMgcGF0Y2ggaXMgYSByZWZhY3RvciB0aGF0IHByb2R1Y2VzIG5vIGJlaGF2aW9yIGNoYW5n
ZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9HU3RyZWFtZXIuY21ha2U6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJN
U0UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNF
Ojpzb3VyY2VTZXR1cCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZVByaXZh
dGVHU3RyZWFtZXIuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVHU3RyZWFtZXI6Om9wZW4pOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTb3VyY2VQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVNvdXJjZVByaXZhdGVHU3Ry
ZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VQcml2YXRlR1N0cmVhbWVyOjp+
TWVkaWFTb3VyY2VQcml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291
cmNlUHJpdmF0ZUdTdHJlYW1lcjo6YWRkU291cmNlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lcjo6cmVtb3ZlU291cmNlQnVmZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lcjo6ZHVyYXRpb25DaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lcjo6bWFya0Vu
ZE9mU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1l
cjo6dW5tYXJrRW5kT2ZTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VQcml2
YXRlR1N0cmVhbWVyOjpyZWFkeVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U291cmNlUHJpdmF0ZUdTdHJlYW1lcjo6c2V0UmVhZHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNvdXJjZVByaXZhdGVHU3RyZWFtZXI6OndhaXRGb3JTZWVrQ29tcGxldGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lcjo6c2Vla0NvbXBsZXRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVHU3RyZWFtZXI6OnNvdXJj
ZUJ1ZmZlclByaXZhdGVEaWRDaGFuZ2VBY3RpdmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNvdXJjZVByaXZhdGVHU3RyZWFtZXI6OmJ1ZmZlcmVkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lcjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZVByaXZhdGVHU3Ry
ZWFtZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL1BsYXliYWNrUGlwZWxpbmUuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OlNv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFt
ZXIuY3BwOgorCiAyMDIwLTA2LTI5ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgd2luZG93LmxvY2F0aW9uLnJlcGxhY2Ugd2l0aCBpbnZhbGlkIHVybHMgc2hvdWxkIHRo
cm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HU3RyZWFtZXIuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HU3RyZWFtZXIuY21ha2UKaW5kZXggMTYwOWU5MWJj
MGQ0NWQyYjdjZDFmNjY2ZDQxYzAzOTE0ZWFjYWI0OS4uNzk1NDdjYmFmMGQ1YjVjMDBkMzVlYjE0
NWE5MTQwOGM5ZDUzZDE0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR1N0
cmVhbWVyLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dTdHJlYW1lci5jbWFr
ZQpAQCAtMzMsNyArMzMsNyBAQCBpZiAoRU5BQkxFX1ZJREVPIE9SIEVOQUJMRV9XRUJfQVVESU8p
CiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyUmVnaXN0
cnlTY2FubmVyTVNFLmNwcAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRS5jcHAKLSAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1l
ci5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJj
ZVByaXZhdGVHU3RyZWFtZXIuY3BwCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvUGxheWJhY2tQaXBlbGluZS5jcHAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAogICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJNU0UuY3BwCmluZGV4IDZkOWE0YWM0ZDFkOGMyZGYyNThiNDZlMjQwMThlZmNlM2Y2YTM3M2Iu
LjJmNzhmOWU2NDg2ZjVhOGQxYjA1ODE3OWRmYWNjM2Q1ZGRlYTBkM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyTVNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKQEAg
LTQ5MSw3ICs0OTEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6c291
cmNlU2V0dXAoR3N0RWxlbWVudCogc291cmNlRWxlbWVudCkKIAogICAgIG1fcGxheWJhY2tQaXBl
bGluZS0+c2V0V2ViS2l0TWVkaWFTcmMoV0VCS0lUX01FRElBX1NSQyhtX3NvdXJjZS5nZXQoKSkp
OwogCi0gICAgTWVkaWFTb3VyY2VHU3RyZWFtZXI6Om9wZW4oKm1fbWVkaWFTb3VyY2UuZ2V0KCks
ICp0aGlzKTsKKyAgICBNZWRpYVNvdXJjZVByaXZhdGVHU3RyZWFtZXI6Om9wZW4oKm1fbWVkaWFT
b3VyY2UuZ2V0KCksICp0aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9zb3Vy
Y2UuZ2V0KCksICJ2aWRlby1jaGFuZ2VkIiwgR19DQUxMQkFDSyh2aWRlb0NoYW5nZWRDYWxsYmFj
ayksIHRoaXMpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtX3NvdXJjZS5nZXQoKSwg
ImF1ZGlvLWNoYW5nZWQiLCBHX0NBTExCQUNLKGF1ZGlvQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7
CiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fc291cmNlLmdldCgpLCAidGV4dC1jaGFu
Z2VkIiwgR19DQUxMQkFDSyh0ZXh0Q2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaAppbmRleCA0
MzEyYjBhMzQ0MGFmOTZjMjJhYjk2M2IyODBlYzNjZWFjNzQ2NzAxLi40MzMxZjZlMDQ4NTI3OGQ4
YTMyOTBkOTUxNzQyOTUwODVlMzI2YzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1T
RS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNs
dWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuaCIKICNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgotI2luY2x1ZGUgIk1lZGlhU291cmNl
R1N0cmVhbWVyLmgiCisjaW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2YXRlR1N0cmVhbWVyLmgiCiAj
aW5jbHVkZSAiV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1l
ck1TRS5oCmluZGV4IDUwMDhhMDYxM2FjY2Q0MDYxYjJmY2ZkZTM2MjFhMjliNGExNWI5MTUuLmUx
N2U3YWQzNmZkMjQ0YjcyMDE2NWZiMjQ0YWJlY2VkNzVkODFiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VDbGll
bnRHU3RyZWFtZXJNU0UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmgKQEAgLTQwLDcgKzQw
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJN
U0U+IGNyZWF0ZShNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UmKTsKICAgICB2aXJ0dWFs
IH5NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRSgpOwogCi0gICAgLy8gRnJvbSBNZWRpYVNv
dXJjZUdTdHJlYW1lci4KKyAgICAvLyBGcm9tIE1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lci4K
ICAgICBNZWRpYVNvdXJjZVByaXZhdGU6OkFkZFN0YXR1cyBhZGRTb3VyY2VCdWZmZXIoUmVmUHRy
PFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI+LCBjb25zdCBDb250ZW50VHlwZSYpOwogICAg
IHZvaWQgZHVyYXRpb25DaGFuZ2VkKGNvbnN0IE1lZGlhVGltZSYpOwogICAgIHZvaWQgbWFya0Vu
ZE9mU3RyZWFtKE1lZGlhU291cmNlUHJpdmF0ZTo6RW5kT2ZTdHJlYW1TdGF0dXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRp
YVNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYzhmNTgwNTZlYWQ0NWRlNjE1YTg4MmMxYjkzZjkyYzQxOTJlMDZhMC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDE1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMgT3JhbmdlCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0
aWFuQGNlbnRyaWN1bGFyLmNvbT4KLSAqIENvcHlyaWdodCAoQykgMjAxNSwgMjAxNiBNZXRyb2xv
Z2ljYWwgR3JvdXAgQi5WLgotICogQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IElnYWxpYSwgUy5M
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAq
IGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1lZGlhU291cmNlR1N0cmVhbWVyLmgiCi0KLSNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoR1NUUkVBTUVSKQotCi0jaW5jbHVkZSAiQ29u
dGVudFR5cGUuaCIKLSNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmgiCi0jaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
TVNFLmgiCi0jaW5jbHVkZSAiTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuaCIKLSNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXIuaCIKLSNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCi0jaW5jbHVkZSAiV2ViS2l0TWVkaWFT
b3VyY2VHU3RyZWFtZXIuaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L2dsaWIvR1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgTWVkaWFTb3Vy
Y2VHU3RyZWFtZXI6Om9wZW4oTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50JiBtZWRpYVNvdXJjZSwg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFJiBwbGF5ZXJQcml2YXRlKQotewotICAgIG1l
ZGlhU291cmNlLnNldFByaXZhdGVBbmRPcGVuKGFkb3B0UmVmKCpuZXcgTWVkaWFTb3VyY2VHU3Ry
ZWFtZXIobWVkaWFTb3VyY2UsIHBsYXllclByaXZhdGUpKSk7Ci19Ci0KLU1lZGlhU291cmNlR1N0
cmVhbWVyOjpNZWRpYVNvdXJjZUdTdHJlYW1lcihNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQmIG1l
ZGlhU291cmNlLCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UmIHBsYXllclByaXZhdGUp
Ci0gICAgOiBNZWRpYVNvdXJjZVByaXZhdGUoKQotICAgICwgbV9jbGllbnQoTWVkaWFTb3VyY2VD
bGllbnRHU3RyZWFtZXJNU0U6OmNyZWF0ZShwbGF5ZXJQcml2YXRlKSkKLSAgICAsIG1fbWVkaWFT
b3VyY2UobWVkaWFTb3VyY2UpCi0gICAgLCBtX3BsYXllclByaXZhdGUocGxheWVyUHJpdmF0ZSkK
LSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICAsIG1fbG9nZ2VyKG1fcGxheWVyUHJpdmF0
ZS5tZWRpYVBsYXllckxvZ2dlcigpKQotICAgICwgbV9sb2dJZGVudGlmaWVyKG1fcGxheWVyUHJp
dmF0ZS5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKLSNlbmRpZgotewotfQotCi1NZWRpYVNv
dXJjZUdTdHJlYW1lcjo6fk1lZGlhU291cmNlR1N0cmVhbWVyKCkKLXsKLSAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOwotICAgIGZvciAoYXV0byYgc291cmNlQnVmZmVyUHJpdmF0ZSA6IG1f
c291cmNlQnVmZmVycykKLSAgICAgICAgc291cmNlQnVmZmVyUHJpdmF0ZS0+Y2xlYXJNZWRpYVNv
dXJjZSgpOwotfQotCi1NZWRpYVNvdXJjZUdTdHJlYW1lcjo6QWRkU3RhdHVzIE1lZGlhU291cmNl
R1N0cmVhbWVyOjphZGRTb3VyY2VCdWZmZXIoY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBl
LCBSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4mIHNvdXJjZUJ1ZmZlclByaXZhdGUpCi17Ci0g
ICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsIGNvbnRlbnRUeXBlKTsKLSAgICBzb3VyY2VCdWZm
ZXJQcml2YXRlID0gU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKHRoaXMsIG1f
Y2xpZW50LmdldCgpLCBjb250ZW50VHlwZSk7Ci0gICAgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXI+IHNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIgPSBzdGF0aWNfY2FzdDxT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKj4oc291cmNlQnVmZmVyUHJpdmF0ZS5nZXQoKSk7
Ci0gICAgbV9zb3VyY2VCdWZmZXJzLmFkZChzb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKTsK
LSAgICByZXR1cm4gbV9jbGllbnQtPmFkZFNvdXJjZUJ1ZmZlcihzb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyLCBjb250ZW50VHlwZSk7Ci19Ci0KLXZvaWQgTWVkaWFTb3VyY2VHU3RyZWFtZXI6
OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXJQcml2YXRlKiBzb3VyY2VCdWZmZXJQcml2
YXRlKQotewotICAgIFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiBzb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyID0gc3RhdGljX2Nhc3Q8U291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lcio+KHNvdXJjZUJ1ZmZlclByaXZhdGUpOwotICAgIEFTU0VSVChtX3NvdXJjZUJ1ZmZl
cnMuY29udGFpbnMoc291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcikpOwotCi0gICAgc291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lci0+Y2xlYXJNZWRpYVNvdXJjZSgpOwotICAgIG1fc291cmNl
QnVmZmVycy5yZW1vdmUoc291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcik7Ci0gICAgbV9hY3Rp
dmVTb3VyY2VCdWZmZXJzLnJlbW92ZShzb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmdldCgp
KTsKLX0KLQotdm9pZCBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6ZHVyYXRpb25DaGFuZ2VkKCkKLXsK
LSAgICBtX2NsaWVudC0+ZHVyYXRpb25DaGFuZ2VkKG1fbWVkaWFTb3VyY2UtPmR1cmF0aW9uKCkp
OwotfQotCi12b2lkIE1lZGlhU291cmNlR1N0cmVhbWVyOjptYXJrRW5kT2ZTdHJlYW0oRW5kT2ZT
dHJlYW1TdGF0dXMgc3RhdHVzKQotewotICAgIG1fY2xpZW50LT5tYXJrRW5kT2ZTdHJlYW0oc3Rh
dHVzKTsKLX0KLQotdm9pZCBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6dW5tYXJrRW5kT2ZTdHJlYW0o
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLU1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
IE1lZGlhU291cmNlR1N0cmVhbWVyOjpyZWFkeVN0YXRlKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9wbGF5ZXJQcml2YXRlLnJlYWR5U3RhdGUoKTsKLX0KLQotdm9pZCBNZWRpYVNvdXJjZUdTdHJl
YW1lcjo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBzdGF0ZSkKLXsKLSAg
ICBtX3BsYXllclByaXZhdGUuc2V0UmVhZHlTdGF0ZShzdGF0ZSk7Ci19Ci0KLXZvaWQgTWVkaWFT
b3VyY2VHU3RyZWFtZXI6OndhaXRGb3JTZWVrQ29tcGxldGVkKCkKLXsKLSAgICBtX3BsYXllclBy
aXZhdGUud2FpdEZvclNlZWtDb21wbGV0ZWQoKTsKLX0KLQotdm9pZCBNZWRpYVNvdXJjZUdTdHJl
YW1lcjo6c2Vla0NvbXBsZXRlZCgpCi17Ci0gICAgbV9wbGF5ZXJQcml2YXRlLnNlZWtDb21wbGV0
ZWQoKTsKLX0KLQotdm9pZCBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6c291cmNlQnVmZmVyUHJpdmF0
ZURpZENoYW5nZUFjdGl2ZVN0YXRlKFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIqIHNvdXJj
ZUJ1ZmZlclByaXZhdGUsIGJvb2wgaXNBY3RpdmUpCi17Ci0gICAgaWYgKCFpc0FjdGl2ZSkKLSAg
ICAgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLnJlbW92ZShzb3VyY2VCdWZmZXJQcml2YXRlKTsK
LSAgICBlbHNlIGlmICghbV9hY3RpdmVTb3VyY2VCdWZmZXJzLmNvbnRhaW5zKHNvdXJjZUJ1ZmZl
clByaXZhdGUpKQotICAgICAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMuYWRkKHNvdXJjZUJ1ZmZl
clByaXZhdGUpOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRp
YVNvdXJjZUdTdHJlYW1lcjo6YnVmZmVyZWQoKQotewotICAgIHJldHVybiBtX21lZGlhU291cmNl
LT5idWZmZXJlZCgpOwotfQotCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi1XVEZMb2dDaGFu
bmVsJiBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6bG9nQ2hhbm5lbCgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIExvZ01lZGlhU291cmNlOwotfQotCi0jZW5kaWYKLQotfQotI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291
cmNlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDUxY2FiMmUzZWYyZjg2MTJhY2RmMGY2ODBiNWE4MGM1YWExNzJlOGQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1lci5oCisrKyAvZGV2
L251bGwKQEAgLTEsMTA3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMyBPcmFuZ2UK
LSAqIENvcHlyaWdodCAoQykgMjAxNCBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJp
Y3VsYXIuY29tPgotICogQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IE1ldHJvbG9naWNhbCBHcm91
cCBCLlYuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUsIDIwMTYgSWdhbGlhLCBTLkwKLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0
aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShHU1RSRUFNRVIpCi0jaW5jbHVkZSAi
TWVkaWFTb3VyY2VQcml2YXRlLmgiCi0KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgotCi10eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0TWVkaWFTcmMgV2ViS2l0TWVkaWFTcmM7Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjsKLWNsYXNzIE1l
ZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFOwotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyTVNFOwotY2xhc3MgUGxhdGZvcm1UaW1lUmFuZ2VzOwotCi0vLyBGSVhNRTogU2hvdWxk
IHRoaXMgYmUgY2FsbGVkIE1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lcj8KLWNsYXNzIE1lZGlh
U291cmNlR1N0cmVhbWVyIGZpbmFsIDogcHVibGljIE1lZGlhU291cmNlUHJpdmF0ZQotI2lmICFS
RUxFQVNFX0xPR19ESVNBQkxFRAotICAgICwgcHJpdmF0ZSBMb2dnZXJIZWxwZXIKLSNlbmRpZgot
ewotcHVibGljOgotICAgIHN0YXRpYyB2b2lkIG9wZW4oTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50
JiwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFJik7Ci0gICAgdmlydHVhbCB+TWVkaWFT
b3VyY2VHU3RyZWFtZXIoKTsKLQotICAgIE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFJiBj
bGllbnQoKSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQotICAgIEFkZFN0YXR1cyBhZGRTb3Vy
Y2VCdWZmZXIoY29uc3QgQ29udGVudFR5cGUmLCBSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4m
KSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXJQcml2
YXRlKik7Ci0KLSAgICB2b2lkIGR1cmF0aW9uQ2hhbmdlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQg
bWFya0VuZE9mU3RyZWFtKEVuZE9mU3RyZWFtU3RhdHVzKSBvdmVycmlkZTsKLSAgICB2b2lkIHVu
bWFya0VuZE9mU3RyZWFtKCkgb3ZlcnJpZGU7Ci0KLSAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0
ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKLQotICAgIHZvaWQgd2FpdEZvclNlZWtD
b21wbGV0ZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHNlZWtDb21wbGV0ZWQoKSBvdmVycmlkZTsK
LQotICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZENoYW5nZUFjdGl2ZVN0YXRlKFNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIqLCBib29sKTsKLQotICAgIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCk7Ci0KLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKLSAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9n
Z2VyOyB9Ci0gICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gIk1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lciI7IH0KLSAgICBjb25zdCB2b2lkKiBs
b2dJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9Ci0g
ICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFsOwotCi0gICAgY29uc3Qg
dm9pZCogbmV4dFNvdXJjZUJ1ZmZlckxvZ0lkZW50aWZpZXIoKSB7IHJldHVybiBjaGlsZExvZ0lk
ZW50aWZpZXIobV9sb2dJZGVudGlmaWVyLCArK21fbmV4dFNvdXJjZUJ1ZmZlcklEKTsgfQotI2Vu
ZGlmCi0KLXByaXZhdGU6Ci0gICAgTWVkaWFTb3VyY2VHU3RyZWFtZXIoTWVkaWFTb3VyY2VQcml2
YXRlQ2xpZW50JiwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFJik7Ci0KLSAgICBIYXNo
U2V0PFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPj4gbV9zb3VyY2VCdWZmZXJz
OwotICAgIEhhc2hTZXQ8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcio+IG1fYWN0aXZlU291
cmNlQnVmZmVyczsKLSAgICBSZWY8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U+IG1fY2xp
ZW50OwotICAgIFJlZjxNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQ+IG1fbWVkaWFTb3VyY2U7Ci0g
ICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFJiBtX3BsYXllclByaXZhdGU7Ci0jaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7Ci0g
ICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwotICAgIHVpbnQ2NF90IG1fbmV4dFNvdXJj
ZUJ1ZmZlcklEIHsgMCB9OwotI2VuZGlmCi19OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJj
ZVByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZVByaXZhdGVHU3RyZWFtZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMzZTg1MDc1MWY5YmY2YjExNTM5OTBmN2FhNjUwNTI0Y2I2MjZmZmMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlh
U291cmNlUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTAsMCArMSwxNTQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMyBPcmFuZ2UKKyAqIENvcHlyaWdodCAoQykgMjAxNCBTZWJhc3RpYW4gRHLD
tmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDE1LCAy
MDE2IE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUsIDIwMTYg
SWdhbGlhLCBTLkwKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2YXRl
R1N0cmVhbWVyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoR1NUUkVBTUVS
KQorCisjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgiCisjaW5jbHVkZSAiTWVkaWFTb3VyY2VDbGllbnRHU3Ry
ZWFtZXJNU0UuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaCIKKyNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCisjaW5j
bHVkZSAiV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3ZvaWQgTWVkaWFTb3VyY2VQcml2YXRlR1N0cmVhbWVyOjpvcGVuKE1lZGlhU291cmNlUHJp
dmF0ZUNsaWVudCYgbWVkaWFTb3VyY2UsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRSYg
cGxheWVyUHJpdmF0ZSkKK3sKKyAgICBtZWRpYVNvdXJjZS5zZXRQcml2YXRlQW5kT3BlbihhZG9w
dFJlZigqbmV3IE1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lcihtZWRpYVNvdXJjZSwgcGxheWVy
UHJpdmF0ZSkpKTsKK30KKworTWVkaWFTb3VyY2VQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVNvdXJj
ZVByaXZhdGVHU3RyZWFtZXIoTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50JiBtZWRpYVNvdXJjZSwg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFJiBwbGF5ZXJQcml2YXRlKQorICAgIDogTWVk
aWFTb3VyY2VQcml2YXRlKCkKKyAgICAsIG1fY2xpZW50KE1lZGlhU291cmNlQ2xpZW50R1N0cmVh
bWVyTVNFOjpjcmVhdGUocGxheWVyUHJpdmF0ZSkpCisgICAgLCBtX21lZGlhU291cmNlKG1lZGlh
U291cmNlKQorICAgICwgbV9wbGF5ZXJQcml2YXRlKHBsYXllclByaXZhdGUpCisjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECisgICAgLCBtX2xvZ2dlcihtX3BsYXllclByaXZhdGUubWVkaWFQbGF5
ZXJMb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllcihtX3BsYXllclByaXZhdGUubWVkaWFQ
bGF5ZXJMb2dJZGVudGlmaWVyKCkpCisjZW5kaWYKK3sKK30KKworTWVkaWFTb3VyY2VQcml2YXRl
R1N0cmVhbWVyOjp+TWVkaWFTb3VyY2VQcml2YXRlR1N0cmVhbWVyKCkKK3sKKyAgICBBTFdBWVNf
TE9HKExPR0lERU5USUZJRVIpOworICAgIGZvciAoYXV0byYgc291cmNlQnVmZmVyUHJpdmF0ZSA6
IG1fc291cmNlQnVmZmVycykKKyAgICAgICAgc291cmNlQnVmZmVyUHJpdmF0ZS0+Y2xlYXJNZWRp
YVNvdXJjZSgpOworfQorCitNZWRpYVNvdXJjZVByaXZhdGVHU3RyZWFtZXI6OkFkZFN0YXR1cyBN
ZWRpYVNvdXJjZVByaXZhdGVHU3RyZWFtZXI6OmFkZFNvdXJjZUJ1ZmZlcihjb25zdCBDb250ZW50
VHlwZSYgY29udGVudFR5cGUsIFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiYgc291cmNlQnVm
ZmVyUHJpdmF0ZSkKK3sKKyAgICBERUJVR19MT0coTE9HSURFTlRJRklFUiwgY29udGVudFR5cGUp
OworICAgIHNvdXJjZUJ1ZmZlclByaXZhdGUgPSBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
OjpjcmVhdGUodGhpcywgbV9jbGllbnQuZ2V0KCksIGNvbnRlbnRUeXBlKTsKKyAgICBSZWZQdHI8
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4gc291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
ciA9IHN0YXRpY19jYXN0PFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIqPihzb3VyY2VCdWZm
ZXJQcml2YXRlLmdldCgpKTsKKyAgICBtX3NvdXJjZUJ1ZmZlcnMuYWRkKHNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIpOworICAgIHJldHVybiBtX2NsaWVudC0+YWRkU291cmNlQnVmZmVyKHNv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIsIGNvbnRlbnRUeXBlKTsKK30KKwordm9pZCBNZWRp
YVNvdXJjZVByaXZhdGVHU3RyZWFtZXI6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXJQ
cml2YXRlKiBzb3VyY2VCdWZmZXJQcml2YXRlKQoreworICAgIFJlZlB0cjxTb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyPiBzb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyID0gc3RhdGljX2Nh
c3Q8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcio+KHNvdXJjZUJ1ZmZlclByaXZhdGUpOwor
ICAgIEFTU0VSVChtX3NvdXJjZUJ1ZmZlcnMuY29udGFpbnMoc291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lcikpOworCisgICAgc291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci0+Y2xlYXJNZWRp
YVNvdXJjZSgpOworICAgIG1fc291cmNlQnVmZmVycy5yZW1vdmUoc291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcik7CisgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLnJlbW92ZShzb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyLmdldCgpKTsKK30KKwordm9pZCBNZWRpYVNvdXJjZVByaXZhdGVH
U3RyZWFtZXI6OmR1cmF0aW9uQ2hhbmdlZCgpCit7CisgICAgbV9jbGllbnQtPmR1cmF0aW9uQ2hh
bmdlZChtX21lZGlhU291cmNlLT5kdXJhdGlvbigpKTsKK30KKwordm9pZCBNZWRpYVNvdXJjZVBy
aXZhdGVHU3RyZWFtZXI6Om1hcmtFbmRPZlN0cmVhbShFbmRPZlN0cmVhbVN0YXR1cyBzdGF0dXMp
Cit7CisgICAgbV9jbGllbnQtPm1hcmtFbmRPZlN0cmVhbShzdGF0dXMpOworfQorCit2b2lkIE1l
ZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lcjo6dW5tYXJrRW5kT2ZTdHJlYW0oKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK01lZGlhUGxheWVyOjpSZWFkeVN0YXRlIE1lZGlhU291cmNl
UHJpdmF0ZUdTdHJlYW1lcjo6cmVhZHlTdGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGxh
eWVyUHJpdmF0ZS5yZWFkeVN0YXRlKCk7Cit9CisKK3ZvaWQgTWVkaWFTb3VyY2VQcml2YXRlR1N0
cmVhbWVyOjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHN0YXRlKQorewor
ICAgIG1fcGxheWVyUHJpdmF0ZS5zZXRSZWFkeVN0YXRlKHN0YXRlKTsKK30KKwordm9pZCBNZWRp
YVNvdXJjZVByaXZhdGVHU3RyZWFtZXI6OndhaXRGb3JTZWVrQ29tcGxldGVkKCkKK3sKKyAgICBt
X3BsYXllclByaXZhdGUud2FpdEZvclNlZWtDb21wbGV0ZWQoKTsKK30KKwordm9pZCBNZWRpYVNv
dXJjZVByaXZhdGVHU3RyZWFtZXI6OnNlZWtDb21wbGV0ZWQoKQoreworICAgIG1fcGxheWVyUHJp
dmF0ZS5zZWVrQ29tcGxldGVkKCk7Cit9CisKK3ZvaWQgTWVkaWFTb3VyY2VQcml2YXRlR1N0cmVh
bWVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkQ2hhbmdlQWN0aXZlU3RhdGUoU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lciogc291cmNlQnVmZmVyUHJpdmF0ZSwgYm9vbCBpc0FjdGl2ZSkKK3sK
KyAgICBpZiAoIWlzQWN0aXZlKQorICAgICAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMucmVtb3Zl
KHNvdXJjZUJ1ZmZlclByaXZhdGUpOworICAgIGVsc2UgaWYgKCFtX2FjdGl2ZVNvdXJjZUJ1ZmZl
cnMuY29udGFpbnMoc291cmNlQnVmZmVyUHJpdmF0ZSkpCisgICAgICAgIG1fYWN0aXZlU291cmNl
QnVmZmVycy5hZGQoc291cmNlQnVmZmVyUHJpdmF0ZSk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybVRpbWVSYW5nZXM+IE1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lcjo6YnVmZmVyZWQo
KQoreworICAgIHJldHVybiBtX21lZGlhU291cmNlLT5idWZmZXJlZCgpOworfQorCisjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECitXVEZMb2dDaGFubmVsJiBNZWRpYVNvdXJjZVByaXZhdGVHU3Ry
ZWFtZXI6OmxvZ0NoYW5uZWwoKSBjb25zdAoreworICAgIHJldHVybiBMb2dNZWRpYVNvdXJjZTsK
K30KKworI2VuZGlmCisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZVByaXZhdGVHU3RyZWFtZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFT
b3VyY2VQcml2YXRlR1N0cmVhbWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2JmMThiMDQ3ZWQ5YjRkZjVhNjdl
MTJkOGUyMTcwNjM2ZTZjNDdhNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VQcml2YXRlR1N0cmVhbWVy
LmgKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBPcmFuZ2UKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3Vs
YXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IE1ldHJvbG9naWNhbCBHcm91cCBC
LlYuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUsIDIwMTYgSWdhbGlhLCBTLkwKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVkZSAiTWVk
aWFTb3VyY2VQcml2YXRlLmgiCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgorCit0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0TWVkaWFTcmMgV2ViS2l0TWVkaWFTcmM7CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjsKK2NsYXNzIE1lZGlh
U291cmNlQ2xpZW50R1N0cmVhbWVyTVNFOworY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyTVNFOworY2xhc3MgUGxhdGZvcm1UaW1lUmFuZ2VzOworCitjbGFzcyBNZWRpYVNvdXJjZVBy
aXZhdGVHU3RyZWFtZXIgZmluYWwgOiBwdWJsaWMgTWVkaWFTb3VyY2VQcml2YXRlCisjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBwcml2YXRlIExvZ2dlckhlbHBlcgorI2VuZGlmCit7
CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgb3BlbihNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQm
LCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UmKTsKKyAgICB2aXJ0dWFsIH5NZWRpYVNv
dXJjZVByaXZhdGVHU3RyZWFtZXIoKTsKKworICAgIE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVy
TVNFJiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQorICAgIEFkZFN0YXR1cyBh
ZGRTb3VyY2VCdWZmZXIoY29uc3QgQ29udGVudFR5cGUmLCBSZWZQdHI8U291cmNlQnVmZmVyUHJp
dmF0ZT4mKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZm
ZXJQcml2YXRlKik7CisKKyAgICB2b2lkIGR1cmF0aW9uQ2hhbmdlZCgpIG92ZXJyaWRlOworICAg
IHZvaWQgbWFya0VuZE9mU3RyZWFtKEVuZE9mU3RyZWFtU3RhdHVzKSBvdmVycmlkZTsKKyAgICB2
b2lkIHVubWFya0VuZE9mU3RyZWFtKCkgb3ZlcnJpZGU7CisKKyAgICBNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRSZWFkeVN0
YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKKworICAgIHZvaWQgd2FpdEZv
clNlZWtDb21wbGV0ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNlZWtDb21wbGV0ZWQoKSBvdmVy
cmlkZTsKKworICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZENoYW5nZUFjdGl2ZVN0YXRl
KFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIqLCBib29sKTsKKworICAgIHN0ZDo6dW5pcXVl
X3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCk7CisKKyNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fbG9nZ2VyOyB9CisgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gIk1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lciI7IH0KKyAgICBjb25zdCB2
b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVy
OyB9CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFsOworCisgICAg
Y29uc3Qgdm9pZCogbmV4dFNvdXJjZUJ1ZmZlckxvZ0lkZW50aWZpZXIoKSB7IHJldHVybiBjaGls
ZExvZ0lkZW50aWZpZXIobV9sb2dJZGVudGlmaWVyLCArK21fbmV4dFNvdXJjZUJ1ZmZlcklEKTsg
fQorI2VuZGlmCisKK3ByaXZhdGU6CisgICAgTWVkaWFTb3VyY2VQcml2YXRlR1N0cmVhbWVyKE1l
ZGlhU291cmNlUHJpdmF0ZUNsaWVudCYsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRSYp
OworCisgICAgSGFzaFNldDxSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4+IG1f
c291cmNlQnVmZmVyczsKKyAgICBIYXNoU2V0PFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIq
PiBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnM7CisgICAgUmVmPE1lZGlhU291cmNlQ2xpZW50R1N0cmVh
bWVyTVNFPiBtX2NsaWVudDsKKyAgICBSZWY8TWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50PiBtX21l
ZGlhU291cmNlOworICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRSYgbV9wbGF5ZXJQ
cml2YXRlOworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIFJlZjxjb25zdCBMb2dnZXI+
IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKyAgICB1aW50NjRf
dCBtX25leHRTb3VyY2VCdWZmZXJJRCB7IDAgfTsKKyNlbmRpZgorfTsKKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvUGxheWJhY2tQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9QbGF5YmFja1BpcGVsaW5lLmgKaW5kZXggZmM3Y2EwZWFkNGYxYmVhMTFl
MTRjN2Y0NzA5OWQ1NzEyNzY1NTM2ZS4uZTBiYzkxNTYwNWExNzRiYWQ4NGZiMjRkNTY4YWViYjBl
MjlhYzYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9QbGF5YmFja1BpcGVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9QbGF5YmFja1BpcGVsaW5lLmgKQEAgLTQxLDcgKzQx
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50VHlwZTsKIGNsYXNzIFNv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI7Ci1jbGFzcyBNZWRpYVNvdXJjZUdTdHJlYW1lcjsK
K2NsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lcjsKIAogY2xhc3MgUGxheWJhY2tQaXBl
bGluZTogcHVibGljIFJlZkNvdW50ZWQ8UGxheWJhY2tQaXBlbGluZT4gewogcHVibGljOgpAQCAt
NjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWF0dGFjaFRyYWNrKFJlZlB0cjxTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiwgUmVmUHRyPFRyYWNrUHJpdmF0ZUJhc2U+LCBHc3RD
YXBzKik7CiAgICAgdm9pZCBub3RpZnlEdXJhdGlvbkNoYW5nZWQoKTsKIAotICAgIC8vIEZyb20g
TWVkaWFTb3VyY2VHU3RyZWFtZXIuCisgICAgLy8gRnJvbSBNZWRpYVNvdXJjZVByaXZhdGVHU3Ry
ZWFtZXIuCiAgICAgdm9pZCBtYXJrRW5kT2ZTdHJlYW0oTWVkaWFTb3VyY2VQcml2YXRlOjpFbmRP
ZlN0cmVhbVN0YXR1cyk7CiAKICAgICAvLyBGcm9tIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAppbmRleCA3MjBkMzQ0ZmZkMmNjNjllMTMwOWMyM2E1MGU0MGZlNTE2NjA0YjZlLi5k
NjEyN2M4NWRhNjQ1ZTMyYjdiZTdjOTZlNmJhODkxNDY5YTYxOWI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTQyLDE4
ICs0MiwxOCBAQAogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oIgog
I2luY2x1ZGUgIk1lZGlhU2FtcGxlLmgiCiAjaW5jbHVkZSAiTWVkaWFTb3VyY2VDbGllbnRHU3Ry
ZWFtZXJNU0UuaCIKLSNpbmNsdWRlICJNZWRpYVNvdXJjZUdTdHJlYW1lci5oIgorI2luY2x1ZGUg
Ik1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCiAjaW5jbHVkZSAiV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1SZWY8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4gU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKE1lZGlhU291cmNlR1N0cmVhbWVyKiBtZWRpYVNv
dXJjZSwgUmVmPE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFPiBjbGllbnQsIGNvbnN0IENv
bnRlbnRUeXBlJiBjb250ZW50VHlwZSkKK1JlZjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
PiBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUoTWVkaWFTb3VyY2VQcml2YXRl
R1N0cmVhbWVyKiBtZWRpYVNvdXJjZSwgUmVmPE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNF
PiBjbGllbnQsIGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSkKIHsKICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKG1lZGlhU291cmNlLCBj
bGllbnQuZ2V0KCksIGNvbnRlbnRUeXBlKSk7CiB9CiAKLVNvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXI6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIoTWVkaWFTb3VyY2VHU3RyZWFtZXIq
IG1lZGlhU291cmNlLCBSZWY8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U+IGNsaWVudCwg
Y29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlKQorU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJl
YW1lcjo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVNvdXJjZVByaXZhdGVHU3Ry
ZWFtZXIqIG1lZGlhU291cmNlLCBSZWY8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U+IGNs
aWVudCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlKQogICAgIDogU291cmNlQnVmZmVy
UHJpdmF0ZSgpCiAgICAgLCBtX21lZGlhU291cmNlKG1lZGlhU291cmNlKQogICAgICwgbV90eXBl
KGNvbnRlbnRUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuaAppbmRleCA1MzIxZGRjYTVlMzQ0ZTQ2M2IyMGQxOGY3YTVmM2IxOWM1NDQw
MDE3Li5lMGI3YmE3YTgxY2U2YzM4YWIyYzdhZjk4ZTE5NTJjODNhY2ZlOTEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNDUs
NyArNDUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1lZGlhU291cmNlR1N0
cmVhbWVyOworY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlR1N0cmVhbWVyOwogCiBjbGFzcyBTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyIGZpbmFsIDogcHVibGljIFNvdXJjZUJ1ZmZlclByaXZh
dGUKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKQEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lciBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2
YXRlCiB7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXI+IGNyZWF0ZShNZWRpYVNvdXJjZUdTdHJlYW1lciosIFJlZjxNZWRpYVNvdXJjZUNsaWVu
dEdTdHJlYW1lck1TRT4sIGNvbnN0IENvbnRlbnRUeXBlJik7CisgICAgc3RhdGljIFJlZjxTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiBjcmVhdGUoTWVkaWFTb3VyY2VQcml2YXRlR1N0cmVh
bWVyKiwgUmVmPE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFPiwgY29uc3QgQ29udGVudFR5
cGUmKTsKICAgICB2aXJ0dWFsIH5Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKCkgPSBkZWZh
dWx0OwogCiAgICAgdm9pZCBjbGVhck1lZGlhU291cmNlKCkgeyBtX21lZGlhU291cmNlID0gbnVs
bHB0cjsgfQpAQCAtOTQsMTAgKzk0LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgot
ICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIoTWVkaWFTb3VyY2VHU3RyZWFtZXIqLCBS
ZWY8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U+LCBjb25zdCBDb250ZW50VHlwZSYpOwor
ICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIoTWVkaWFTb3VyY2VQcml2YXRlR1N0cmVh
bWVyKiwgUmVmPE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFPiwgY29uc3QgQ29udGVudFR5
cGUmKTsKICAgICBmcmllbmQgY2xhc3MgTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U7CiAK
LSAgICBNZWRpYVNvdXJjZUdTdHJlYW1lciogbV9tZWRpYVNvdXJjZTsKKyAgICBNZWRpYVNvdXJj
ZVByaXZhdGVHU3RyZWFtZXIqIG1fbWVkaWFTb3VyY2U7CiAgICAgQ29udGVudFR5cGUgbV90eXBl
OwogICAgIFJlZjxNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRT4gbV9jbGllbnQ7CiAgICAg
U291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCogbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50IHsg
bnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0
cmVhbWVyLmNwcAppbmRleCBkMWVhOWEzNGIyNmNhYzY3M2RhOGZkODQ3MmEwMjVjNjgwYmM0OTg5
Li5iZDczN2RiMDM1ODA4MjFmMDVlZjZiMTE2YzFhNDA4MGM2ZjVlMjk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlh
U291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMzMsNyAr
MzMsNyBAQAogI2luY2x1ZGUgIk1lZGlhRGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJNU0UuaCIKICNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgotI2lu
Y2x1ZGUgIk1lZGlhU291cmNlR1N0cmVhbWVyLmgiCisjaW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2
YXRlR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>