<?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>139113</bug_id>
          
          <creation_ts>2014-11-30 15:33:27 -0800</creation_ts>
          <short_desc>Wean Range off of PassRefPtr.</short_desc>
          <delta_ts>2022-09-17 17:03:19 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1051374</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-11-30 15:33:27 -0800</bug_when>
    <thetext>PassRefPtr -&gt; RefPtr/RefPtr&amp;&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051375</commentid>
    <comment_count>1</comment_count>
      <attachid>242293</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-11-30 15:36:05 -0800</bug_when>
    <thetext>Created attachment 242293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1899267</commentid>
    <comment_count>2</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-09-17 17:03:19 -0700</bug_when>
    <thetext>PassRefPtr usage does not exist anymore in Webkit GitHub as of today. So I am marking this as &quot;RESOLVED WONTFIX&quot;. Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242293</attachid>
            <date>2014-11-30 15:36:05 -0800</date>
            <delta_ts>2014-11-30 16:15:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139113.diff</filename>
            <type>text/plain</type>
            <size>25761</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggZWQ4MDgxMC4uMTU5NjRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNC0xMS0zMCAg
QW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2VhbiBSYW5nZSBv
ZmYgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzOTExMz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHaXZlIFJl
ZlB0ciBhIGNvcHkoKSBmb3IgdXNpbmcgd2hlbiB3ZSB3YW50IHRvIG1ha2UgYSBjb3B5IG9mIGEg
bG9jYWwKKyAgICAgICAgUmVmUHRyIGFuZCBwYXNzIHRoYXQgdG8gYSBmdW5jdGlvbiB0aGF0IHRh
a2VzIGEgUmVmUHRyJiYuCisKKyAgICAgICAgQWxzbyBhZGRlZCBhIFBhc3NSZWZQdHIoUmVmUHRy
JiYpIGNvbnN0cnVjdG9yIHNvIHdlIGNhbiBtb3ZlIGEgUmVmUHRyCisgICAgICAgIGludG8gYSBQ
YXNzUmVmUHRyIGFyZ3VtZW50IGVmZmljaWVudGx5LgorCisgICAgICAgICogd3RmL1Bhc3NSZWZQ
dHIuaDoKKyAgICAgICAgKFdURjo6UGFzc1JlZlB0cjo6UGFzc1JlZlB0cik6CisgICAgICAgICog
d3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpSZWZQdHI6OmNvcHkpOgorCiAyMDE0LTExLTIx
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IHRoZSBUaW1lciBwYXJhbWV0ZXJzIGZyb20gdGltZXIgY2FsbGJhY2tzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9QYXNzUmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9QYXNzUmVmUHRyLmgK
aW5kZXggNmY4MDRhMC4uMzM0MzdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFzc1Jl
ZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Bhc3NSZWZQdHIuaApAQCAtNTcsNiArNTcsNyBA
QCBuYW1lc3BhY2UgV1RGIHsKIAogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBQYXNzUmVm
UHRyKGNvbnN0IFJlZlB0cjxVPiYpOwogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBQYXNz
UmVmUHRyKFBhc3NSZWY8VT4gcmVmZXJlbmNlKSA6IG1fcHRyKCZyZWZlcmVuY2UubGVha1JlZigp
KSB7IH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gUGFzc1JlZlB0cihSZWZQdHI8VT4m
JiBvKSA6IG1fcHRyKG8ucmVsZWFzZSgpLmxlYWtSZWYoKSkgeyB9CiAKICAgICAgICAgVCogZ2V0
KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
UmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAppbmRleCAzMjEzZmIxLi5lMzU4MzQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9SZWZQdHIuaApAQCAtNTksNiArNTksNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgQUxX
QVlTX0lOTElORSB+UmVmUHRyKCkgeyBkZXJlZklmTm90TnVsbChtX3B0cik7IH0KIAogICAgICAg
ICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiBtX3B0cjsgfQorICAgICAgICBSZWZQdHIgY29weSgp
IHsgcmV0dXJuIFJlZlB0cihtX3B0cik7IH0KICAgICAgICAgCiAgICAgICAgIHZvaWQgY2xlYXIo
KTsKICAgICAgICAgUGFzc1JlZlB0cjxUPiByZWxlYXNlKCkgeyBQYXNzUmVmUHRyPFQ+IHRtcCA9
IGFkb3B0UmVmKG1fcHRyKTsgbV9wdHIgPSBudWxscHRyOyByZXR1cm4gdG1wOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggMDk5ZGQ1Yi4uNDg5NDVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0
LTExLTMwICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBXZWFu
IFJhbmdlIG9mZiBvZiBQYXNzUmVmUHRyLgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTM5MTEzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IENvbnZlcnQgV2ViQ29yZTo6UmFuZ2UgdG8gdXNpbmcgUmVmUHRyIGFuZCBSZWZQdHImJiBpbnN0
ZWFkIG9mIFBhc3NSZWZQdHIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAg
KiBkb20vUmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSYW5nZTo6UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnNl
dFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZXRFbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmFuZ2U6OnByb2Nlc3NDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpkZWxldGVD
aGFyYWN0ZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpwcm9jZXNzQ29udGVudHNC
ZXR3ZWVuT2Zmc2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6cHJvY2Vzc05vZGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpwcm9jZXNzQW5jZXN0b3JzQW5kVGhlaXJTaWJsaW5n
cyk6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6ZXh0cmFjdENvbnRlbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJhbmdlOjpjbG9uZUNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdl
OjppbnNlcnROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjcmVhdGVDb250ZXh0dWFs
RnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNsb25lUmFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6UmFuZ2U6OnN1cnJvdW5kQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6
cmFuZ2VPZkNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpnZXRDbGllbnRSZWN0
cyk6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0KToKKyAg
ICAgICAgKiBkb20vUmFuZ2UuaDoKKwogMjAxNC0xMS0yOSAgR3l1eW91bmcgS2ltICA8Z3l1eW91
bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEZpeCBhIGJ1aWxkIHdhcm5pbmcgd2hlbiBD
U1NfU0NST0xMX1NOQVAgaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBlNDUxMWFm
Li4zYzk3ODA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTIyNywxMCArMTIyNywxMCBAQCBf
X1pON1dlYkNvcmU1UmFuZ2UxNGlzUG9pbnRJblJhbmdlRVBOU180Tm9kZUVpUmkKIF9fWk43V2Vi
Q29yZTVSYW5nZTE0c2V0U3RhcnRCZWZvcmVFUE5TXzROb2RlRVJpCiBfX1pON1dlYkNvcmU1UmFu
Z2UxOHNlbGVjdE5vZGVDb250ZW50c0VQTlNfNE5vZGVFUmkKIF9fWk43V2ViQ29yZTVSYW5nZTZj
cmVhdGVFUk5TXzhEb2N1bWVudEUKLV9fWk43V2ViQ29yZTVSYW5nZTZjcmVhdGVFUk5TXzhEb2N1
bWVudEVOM1dURjEwUGFzc1JlZlB0cklOU180Tm9kZUVFRWlTNl9pCi1fX1pON1dlYkNvcmU1UmFu
Z2U2c2V0RW5kRU4zV1RGMTBQYXNzUmVmUHRySU5TXzROb2RlRUVFaVJpCitfX1pON1dlYkNvcmU1
UmFuZ2U2Y3JlYXRlRVJOU184RG9jdW1lbnRFT04zV1RGNlJlZlB0cklOU180Tm9kZUVFRWlTN19p
CitfX1pON1dlYkNvcmU1UmFuZ2U2c2V0RW5kRU9OM1dURjZSZWZQdHJJTlNfNE5vZGVFRUVpUmkK
IF9fWk43V2ViQ29yZTVSYW5nZThjb2xsYXBzZUViUmkKLV9fWk43V2ViQ29yZTVSYW5nZThzZXRT
dGFydEVOM1dURjEwUGFzc1JlZlB0cklOU180Tm9kZUVFRWlSaQorX19aTjdXZWJDb3JlNVJhbmdl
OHNldFN0YXJ0RU9OM1dURjZSZWZQdHJJTlNfNE5vZGVFRUVpUmkKIF9fWk43V2ViQ29yZTVSYW5n
ZUQxRXYKIF9fWk43V2ViQ29yZTZDaHJvbWUxNnNldFN0YXR1c2JhclRleHRFUE5TXzVGcmFtZUVS
S04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTZDaHJvbWU1cHJpbnRFUE5TXzVGcmFtZUUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUmFuZ2UuY3BwCmluZGV4IDk1NTIzZTYuLjAxMmU3ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApA
QCAtNzIsMTIgKzcyLDEyIEBAIGlubGluZSBSYW5nZTo6UmFuZ2UoRG9jdW1lbnQmIG93bmVyRG9j
dW1lbnQpCiAgICAgbV9vd25lckRvY3VtZW50LT5hdHRhY2hSYW5nZSh0aGlzKTsKIH0KIAotUGFz
c1JlZlB0cjxSYW5nZT4gUmFuZ2U6OmNyZWF0ZShEb2N1bWVudCYgb3duZXJEb2N1bWVudCkKK1Jl
ZlB0cjxSYW5nZT4gUmFuZ2U6OmNyZWF0ZShEb2N1bWVudCYgb3duZXJEb2N1bWVudCkKIHsKICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFJhbmdlKG93bmVyRG9jdW1lbnQpKTsKIH0KIAotaW5saW5l
IFJhbmdlOjpSYW5nZShEb2N1bWVudCYgb3duZXJEb2N1bWVudCwgUGFzc1JlZlB0cjxOb2RlPiBz
dGFydENvbnRhaW5lciwgaW50IHN0YXJ0T2Zmc2V0LCBQYXNzUmVmUHRyPE5vZGU+IGVuZENvbnRh
aW5lciwgaW50IGVuZE9mZnNldCkKK2lubGluZSBSYW5nZTo6UmFuZ2UoRG9jdW1lbnQmIG93bmVy
RG9jdW1lbnQsIFJlZlB0cjxOb2RlPiYmIHN0YXJ0Q29udGFpbmVyLCBpbnQgc3RhcnRPZmZzZXQs
IFJlZlB0cjxOb2RlPiYmIGVuZENvbnRhaW5lciwgaW50IGVuZE9mZnNldCkKICAgICA6IG1fb3du
ZXJEb2N1bWVudChvd25lckRvY3VtZW50KQogICAgICwgbV9zdGFydCgmb3duZXJEb2N1bWVudCkK
ICAgICAsIG1fZW5kKCZvd25lckRvY3VtZW50KQpAQCAtOTAsMjYgKzkwLDI2IEBAIGlubGluZSBS
YW5nZTo6UmFuZ2UoRG9jdW1lbnQmIG93bmVyRG9jdW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4gc3Rh
cnRDb250YWluZXIsIGluCiAKICAgICAvLyBTaW1wbHkgc2V0dGluZyB0aGUgY29udGFpbmVycyBh
bmQgb2Zmc2V0cyBkaXJlY3RseSB3b3VsZCBub3QgZG8gYW55IG9mIHRoZSBjaGVja2luZwogICAg
IC8vIHRoYXQgc2V0U3RhcnQgYW5kIHNldEVuZCBkbywgc28gd2UgY2FsbCB0aG9zZSBmdW5jdGlv
bnMuCi0gICAgc2V0U3RhcnQoc3RhcnRDb250YWluZXIsIHN0YXJ0T2Zmc2V0KTsKLSAgICBzZXRF
bmQoZW5kQ29udGFpbmVyLCBlbmRPZmZzZXQpOworICAgIHNldFN0YXJ0KFdURjo6bW92ZShzdGFy
dENvbnRhaW5lciksIHN0YXJ0T2Zmc2V0KTsKKyAgICBzZXRFbmQoV1RGOjptb3ZlKGVuZENvbnRh
aW5lciksIGVuZE9mZnNldCk7CiB9CiAKLVBhc3NSZWZQdHI8UmFuZ2U+IFJhbmdlOjpjcmVhdGUo
RG9jdW1lbnQmIG93bmVyRG9jdW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4gc3RhcnRDb250YWluZXIs
IGludCBzdGFydE9mZnNldCwgUGFzc1JlZlB0cjxOb2RlPiBlbmRDb250YWluZXIsIGludCBlbmRP
ZmZzZXQpCitSZWZQdHI8UmFuZ2U+IFJhbmdlOjpjcmVhdGUoRG9jdW1lbnQmIG93bmVyRG9jdW1l
bnQsIFJlZlB0cjxOb2RlPiYmIHN0YXJ0Q29udGFpbmVyLCBpbnQgc3RhcnRPZmZzZXQsIFJlZlB0
cjxOb2RlPiYmIGVuZENvbnRhaW5lciwgaW50IGVuZE9mZnNldCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFJhbmdlKG93bmVyRG9jdW1lbnQsIHN0YXJ0Q29udGFpbmVyLCBzdGFydE9mZnNl
dCwgZW5kQ29udGFpbmVyLCBlbmRPZmZzZXQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJh
bmdlKG93bmVyRG9jdW1lbnQsIFdURjo6bW92ZShzdGFydENvbnRhaW5lciksIHN0YXJ0T2Zmc2V0
LCBXVEY6Om1vdmUoZW5kQ29udGFpbmVyKSwgZW5kT2Zmc2V0KSk7CiB9CiAKLVBhc3NSZWZQdHI8
UmFuZ2U+IFJhbmdlOjpjcmVhdGUoRG9jdW1lbnQmIG93bmVyRG9jdW1lbnQsIGNvbnN0IFBvc2l0
aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCkKK1JlZlB0cjxSYW5nZT4gUmFuZ2U6OmNy
ZWF0ZShEb2N1bWVudCYgb3duZXJEb2N1bWVudCwgY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25z
dCBQb3NpdGlvbiYgZW5kKQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmFuZ2Uob3duZXJE
b2N1bWVudCwgc3RhcnQuY29udGFpbmVyTm9kZSgpLCBzdGFydC5jb21wdXRlT2Zmc2V0SW5Db250
YWluZXJOb2RlKCksIGVuZC5jb250YWluZXJOb2RlKCksIGVuZC5jb21wdXRlT2Zmc2V0SW5Db250
YWluZXJOb2RlKCkpKTsKIH0KIAotUGFzc1JlZlB0cjxSYW5nZT4gUmFuZ2U6OmNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorUmVmUHRyPFJhbmdlPiBSYW5nZTo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBSYW5nZShkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkpKTsKIH0KIAotUGFzc1JlZlB0
cjxSYW5nZT4gUmFuZ2U6OmNyZWF0ZShEb2N1bWVudCYgb3duZXJEb2N1bWVudCwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiB2aXNpYmxlU3RhcnQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgdmlzaWJs
ZUVuZCkKK1JlZlB0cjxSYW5nZT4gUmFuZ2U6OmNyZWF0ZShEb2N1bWVudCYgb3duZXJEb2N1bWVu
dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB2aXNpYmxlU3RhcnQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgdmlzaWJsZUVuZCkKIHsKICAgICBQb3NpdGlvbiBzdGFydCA9IHZpc2libGVTdGFydC5k
ZWVwRXF1aXZhbGVudCgpLnBhcmVudEFuY2hvcmVkRXF1aXZhbGVudCgpOwogICAgIFBvc2l0aW9u
IGVuZCA9IHZpc2libGVFbmQuZGVlcEVxdWl2YWxlbnQoKS5wYXJlbnRBbmNob3JlZEVxdWl2YWxl
bnQoKTsKQEAgLTIxOSw3ICsyMTksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tGb3JEaWZm
ZXJlbnRSb290Q29udGFpbmVyKGNvbnN0IFJhbmdlQm91bmRhcnlQb2ludCYgc3RhcgogICAgIHJl
dHVybiBzdGFydFJvb3RDb250YWluZXIgIT0gZW5kUm9vdENvbnRhaW5lciB8fCAoUmFuZ2U6OmNv
bXBhcmVCb3VuZGFyeVBvaW50cyhzdGFydCwgZW5kLCBBU1NFUlRfTk9fRVhDRVBUSU9OKSA+IDAp
OwogfQogCi12b2lkIFJhbmdlOjpzZXRTdGFydChQYXNzUmVmUHRyPE5vZGU+IHJlZk5vZGUsIGlu
dCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBSYW5nZTo6c2V0U3RhcnQoUmVmUHRy
PE5vZGU+JiYgcmVmTm9kZSwgaW50IG9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
aWYgKCFtX3N0YXJ0LmNvbnRhaW5lcigpKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9F
UlI7CkBAIC0yNDIsMTMgKzI0MiwxMyBAQCB2b2lkIFJhbmdlOjpzZXRTdGFydChQYXNzUmVmUHRy
PE5vZGU+IHJlZk5vZGUsIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIGlmIChl
YykKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9zdGFydC5zZXQocmVmTm9kZSwgb2Zmc2V0LCBj
aGlsZE5vZGUpOworICAgIG1fc3RhcnQuc2V0KFdURjo6bW92ZShyZWZOb2RlKSwgb2Zmc2V0LCBj
aGlsZE5vZGUpOwogCiAgICAgaWYgKGRpZE1vdmVEb2N1bWVudCB8fCBjaGVja0ZvckRpZmZlcmVu
dFJvb3RDb250YWluZXIobV9zdGFydCwgbV9lbmQpKQogICAgICAgICBjb2xsYXBzZSh0cnVlLCBl
Yyk7CiB9CiAKLXZvaWQgUmFuZ2U6OnNldEVuZChQYXNzUmVmUHRyPE5vZGU+IHJlZk5vZGUsIGlu
dCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBSYW5nZTo6c2V0RW5kKFJlZlB0cjxO
b2RlPiYmIHJlZk5vZGUsIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlm
ICghbV9zdGFydC5jb250YWluZXIoKSkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJS
OwpAQCAtMjcxLDcgKzI3MSw3IEBAIHZvaWQgUmFuZ2U6OnNldEVuZChQYXNzUmVmUHRyPE5vZGU+
IHJlZk5vZGUsIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIGlmIChlYykKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9lbmQuc2V0KHJlZk5vZGUsIG9mZnNldCwgY2hpbGROb2Rl
KTsKKyAgICBtX2VuZC5zZXQoV1RGOjptb3ZlKHJlZk5vZGUpLCBvZmZzZXQsIGNoaWxkTm9kZSk7
CiAKICAgICBpZiAoZGlkTW92ZURvY3VtZW50IHx8IGNoZWNrRm9yRGlmZmVyZW50Um9vdENvbnRh
aW5lcihtX3N0YXJ0LCBtX2VuZCkpCiAgICAgICAgIGNvbGxhcHNlKGZhbHNlLCBlYyk7CkBAIC02
NzcsNyArNjc3LDcgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsZW5ndGhPZkNvbnRlbnRzSW5O
b2RlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIDA7CiB9CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gUmFuZ2U6OnByb2Nlc3NDb250ZW50cyhBY3Rpb25UeXBlIGFjdGlvbiwgRXhjZXB0
aW9uQ29kZSYgZWMpCitSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUmFuZ2U6OnByb2Nlc3NDb250
ZW50cyhBY3Rpb25UeXBlIGFjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgdHlwZWRl
ZiBWZWN0b3I8UmVmUHRyPE5vZGU+PiBOb2RlVmVjdG9yOwogCkBAIC02OTcsNyArNjk3LDcgQEAg
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBSYW5nZTo6cHJvY2Vzc0NvbnRlbnRzKEFjdGlv
blR5cGUgYWN0aW9uLCBFeGNlcHRpb24KICAgICBBU1NFUlQoY29tbW9uUm9vdCk7CiAKICAgICBp
ZiAobV9zdGFydC5jb250YWluZXIoKSA9PSBtX2VuZC5jb250YWluZXIoKSkgewotICAgICAgICBw
cm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0cyhhY3Rpb24sIGZyYWdtZW50LCBtX3N0YXJ0LmNv
bnRhaW5lcigpLCBtX3N0YXJ0Lm9mZnNldCgpLCBtX2VuZC5vZmZzZXQoKSwgZWMpOworICAgICAg
ICBwcm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0cyhhY3Rpb24sIFdURjo6bW92ZShmcmFnbWVu
dCksIG1fc3RhcnQuY29udGFpbmVyKCksIG1fc3RhcnQub2Zmc2V0KCksIG1fZW5kLm9mZnNldCgp
LCBlYyk7CiAgICAgICAgIHJldHVybiBmcmFnbWVudDsKICAgICB9CiAKQEAgLTczMiwxMyArNzMy
LDEzIEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUmFuZ2U6OnByb2Nlc3NDb250ZW50
cyhBY3Rpb25UeXBlIGFjdGlvbiwgRXhjZXB0aW9uCiAgICAgUmVmUHRyPE5vZGU+IGxlZnRDb250
ZW50czsKICAgICBpZiAob3JpZ2luYWxTdGFydC5jb250YWluZXIoKSAhPSBjb21tb25Sb290ICYm
IGNvbW1vblJvb3QtPmNvbnRhaW5zKG9yaWdpbmFsU3RhcnQuY29udGFpbmVyKCkpKSB7CiAgICAg
ICAgIGxlZnRDb250ZW50cyA9IHByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKGFjdGlvbiwg
MCwgb3JpZ2luYWxTdGFydC5jb250YWluZXIoKSwgb3JpZ2luYWxTdGFydC5vZmZzZXQoKSwgbGVu
Z3RoT2ZDb250ZW50c0luTm9kZShvcmlnaW5hbFN0YXJ0LmNvbnRhaW5lcigpKSwgZWMpOwotICAg
ICAgICBsZWZ0Q29udGVudHMgPSBwcm9jZXNzQW5jZXN0b3JzQW5kVGhlaXJTaWJsaW5ncyhhY3Rp
b24sIG9yaWdpbmFsU3RhcnQuY29udGFpbmVyKCksIFByb2Nlc3NDb250ZW50c0ZvcndhcmQsIGxl
ZnRDb250ZW50cywgY29tbW9uUm9vdC5nZXQoKSwgZWMpOworICAgICAgICBsZWZ0Q29udGVudHMg
PSBwcm9jZXNzQW5jZXN0b3JzQW5kVGhlaXJTaWJsaW5ncyhhY3Rpb24sIG9yaWdpbmFsU3RhcnQu
Y29udGFpbmVyKCksIFByb2Nlc3NDb250ZW50c0ZvcndhcmQsIFdURjo6bW92ZShsZWZ0Q29udGVu
dHMpLCBjb21tb25Sb290LmdldCgpLCBlYyk7CiAgICAgfQogCiAgICAgUmVmUHRyPE5vZGU+IHJp
Z2h0Q29udGVudHM7CiAgICAgaWYgKG1fZW5kLmNvbnRhaW5lcigpICE9IGNvbW1vblJvb3QgJiYg
Y29tbW9uUm9vdC0+Y29udGFpbnMob3JpZ2luYWxFbmQuY29udGFpbmVyKCkpKSB7CiAgICAgICAg
IHJpZ2h0Q29udGVudHMgPSBwcm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0cyhhY3Rpb24sIDAs
IG9yaWdpbmFsRW5kLmNvbnRhaW5lcigpLCAwLCBvcmlnaW5hbEVuZC5vZmZzZXQoKSwgZWMpOwot
ICAgICAgICByaWdodENvbnRlbnRzID0gcHJvY2Vzc0FuY2VzdG9yc0FuZFRoZWlyU2libGluZ3Mo
YWN0aW9uLCBvcmlnaW5hbEVuZC5jb250YWluZXIoKSwgUHJvY2Vzc0NvbnRlbnRzQmFja3dhcmQs
IHJpZ2h0Q29udGVudHMsIGNvbW1vblJvb3QuZ2V0KCksIGVjKTsKKyAgICAgICAgcmlnaHRDb250
ZW50cyA9IHByb2Nlc3NBbmNlc3RvcnNBbmRUaGVpclNpYmxpbmdzKGFjdGlvbiwgb3JpZ2luYWxF
bmQuY29udGFpbmVyKCksIFByb2Nlc3NDb250ZW50c0JhY2t3YXJkLCBXVEY6Om1vdmUocmlnaHRD
b250ZW50cyksIGNvbW1vblJvb3QuZ2V0KCksIGVjKTsKICAgICB9CiAKICAgICAvLyBkZWxldGUg
YWxsIGNoaWxkcmVuIG9mIGNvbW1vblJvb3QgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCBjb250
YWluZXIKQEAgLTc2OCw3ICs3NjgsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFJh
bmdlOjpwcm9jZXNzQ29udGVudHMoQWN0aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbgogICAgICAg
ICBOb2RlVmVjdG9yIG5vZGVzOwogICAgICAgICBmb3IgKE5vZGUqIG4gPSBwcm9jZXNzU3RhcnQu
Z2V0KCk7IG4gJiYgbiAhPSBwcm9jZXNzRW5kOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkKICAgICAg
ICAgICAgIG5vZGVzLmFwcGVuZChuKTsKLSAgICAgICAgcHJvY2Vzc05vZGVzKGFjdGlvbiwgbm9k
ZXMsIGNvbW1vblJvb3QsIGZyYWdtZW50LCBlYyk7CisgICAgICAgIHByb2Nlc3NOb2RlcyhhY3Rp
b24sIG5vZGVzLCBXVEY6Om1vdmUoY29tbW9uUm9vdCksIGZyYWdtZW50LCBlYyk7CiAgICAgfQog
CiAgICAgaWYgKChhY3Rpb24gPT0gRXh0cmFjdCB8fCBhY3Rpb24gPT0gQ2xvbmUpICYmIHJpZ2h0
Q29udGVudHMpCkBAIC03NzcsNyArNzc3LDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBSYW5nZTo6cHJvY2Vzc0NvbnRlbnRzKEFjdGlvblR5cGUgYWN0aW9uLCBFeGNlcHRpb24KICAg
ICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgZGVs
ZXRlQ2hhcmFjdGVyRGF0YShQYXNzUmVmUHRyPENoYXJhY3RlckRhdGE+IGRhdGEsIHVuc2lnbmVk
IHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorc3Rh
dGljIGlubGluZSB2b2lkIGRlbGV0ZUNoYXJhY3RlckRhdGEoQ2hhcmFjdGVyRGF0YSogZGF0YSwg
dW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAgICAgaWYgKGRhdGEtPmxlbmd0aCgpIC0gZW5kT2Zmc2V0KQogICAgICAgICBkYXRh
LT5kZWxldGVEYXRhKGVuZE9mZnNldCwgZGF0YS0+bGVuZ3RoKCkgLSBlbmRPZmZzZXQsIGVjKTsK
QEAgLTc4NSw3ICs3ODUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZGVsZXRlQ2hhcmFjdGVyRGF0
YShQYXNzUmVmUHRyPENoYXJhY3RlckRhdGE+IGRhdGEsIHVuc2lnbmVkCiAgICAgICAgIGRhdGEt
PmRlbGV0ZURhdGEoMCwgc3RhcnRPZmZzZXQsIGVjKTsKIH0KIAotUGFzc1JlZlB0cjxOb2RlPiBS
YW5nZTo6cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMoQWN0aW9uVHlwZSBhY3Rpb24sIFBh
c3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsIE5vZGUqIGNvbnRhaW5lciwgdW5z
aWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMp
CitSZWZQdHI8Tm9kZT4gUmFuZ2U6OnByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKEFjdGlv
blR5cGUgYWN0aW9uLCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4mJiBmcmFnbWVudCwgTm9kZSog
Y29udGFpbmVyLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKICAgICBBU1NFUlQoY29udGFpbmVyKTsKICAgICBBU1NFUlQoc3Rh
cnRPZmZzZXQgPD0gZW5kT2Zmc2V0KTsKQEAgLTgwMCw3ICs4MDAsNyBAQCBQYXNzUmVmUHRyPE5v
ZGU+IFJhbmdlOjpwcm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBlIGFjdGlv
biwgUGFzc1JlZgogICAgICAgICBzdGFydE9mZnNldCA9IHN0ZDo6bWluKHN0YXJ0T2Zmc2V0LCBl
bmRPZmZzZXQpOwogICAgICAgICBpZiAoYWN0aW9uID09IEV4dHJhY3QgfHwgYWN0aW9uID09IENs
b25lKSB7CiAgICAgICAgICAgICBSZWZQdHI8Q2hhcmFjdGVyRGF0YT4gYyA9IHN0YXRpY19wb2lu
dGVyX2Nhc3Q8Q2hhcmFjdGVyRGF0YT4oY29udGFpbmVyLT5jbG9uZU5vZGUodHJ1ZSkpOwotICAg
ICAgICAgICAgZGVsZXRlQ2hhcmFjdGVyRGF0YShjLCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0LCBl
Yyk7CisgICAgICAgICAgICBkZWxldGVDaGFyYWN0ZXJEYXRhKGMuZ2V0KCksIHN0YXJ0T2Zmc2V0
LCBlbmRPZmZzZXQsIGVjKTsKICAgICAgICAgICAgIGlmIChmcmFnbWVudCkgewogICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IGZyYWdtZW50OwogICAgICAgICAgICAgICAgIHJlc3VsdC0+YXBwZW5k
Q2hpbGQoYy5yZWxlYXNlKCksIGVjKTsKQEAgLTg1MywxNCArODUzLDE0IEBAIFBhc3NSZWZQdHI8
Tm9kZT4gUmFuZ2U6OnByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKEFjdGlvblR5cGUgYWN0
aW9uLCBQYXNzUmVmCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXJ0T2Zmc2V0OyBuICYm
IGkgPCBlbmRPZmZzZXQ7IGkrKywgbiA9IG4tPm5leHRTaWJsaW5nKCkpCiAgICAgICAgICAgICBu
b2Rlcy5hcHBlbmQobik7CiAKLSAgICAgICAgcHJvY2Vzc05vZGVzKGFjdGlvbiwgbm9kZXMsIGNv
bnRhaW5lciwgcmVzdWx0LCBlYyk7CisgICAgICAgIHByb2Nlc3NOb2RlcyhhY3Rpb24sIG5vZGVz
LCBjb250YWluZXIsIFdURjo6bW92ZShyZXN1bHQpLCBlYyk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwogfQogCi12b2lkIFJhbmdlOjpwcm9j
ZXNzTm9kZXMoQWN0aW9uVHlwZSBhY3Rpb24sIFZlY3RvcjxSZWZQdHI8Tm9kZT4+JiBub2Rlcywg
UGFzc1JlZlB0cjxOb2RlPiBvbGRDb250YWluZXIsIFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q29udGFp
bmVyLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgUmFuZ2U6OnByb2Nlc3NOb2RlcyhBY3Rpb25U
eXBlIGFjdGlvbiwgVmVjdG9yPFJlZlB0cjxOb2RlPj4mIG5vZGVzLCBSZWZQdHI8Tm9kZT4mJiBv
bGRDb250YWluZXIsIFJlZlB0cjxOb2RlPiYmIG5ld0NvbnRhaW5lciwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG5vZGVzLnNpemUoKTsgaSsrKSB7
CiAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7CkBAIC04NjgsNyArODY4LDcgQEAgdm9pZCBSYW5n
ZTo6cHJvY2Vzc05vZGVzKEFjdGlvblR5cGUgYWN0aW9uLCBWZWN0b3I8UmVmUHRyPE5vZGU+PiYg
bm9kZXMsIFBhc3NSZWYKICAgICAgICAgICAgIG9sZENvbnRhaW5lci0+cmVtb3ZlQ2hpbGQobm9k
ZXNbaV0uZ2V0KCksIGVjKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEV4dHJh
Y3Q6Ci0gICAgICAgICAgICBuZXdDb250YWluZXItPmFwcGVuZENoaWxkKG5vZGVzW2ldLnJlbGVh
c2UoKSwgZWMpOyAvLyB3aWxsIHJlbW92ZSBuIGZyb20gaXRzIHBhcmVudAorICAgICAgICAgICAg
bmV3Q29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUobm9kZXNbaV0pLCBlYyk7IC8vIHdp
bGwgcmVtb3ZlIG4gZnJvbSBpdHMgcGFyZW50CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBDbG9uZToKICAgICAgICAgICAgIG5ld0NvbnRhaW5lci0+YXBwZW5kQ2hpbGQobm9kZXNb
aV0tPmNsb25lTm9kZSh0cnVlKSwgZWMpOwpAQCAtODc3LDExICs4NzcsMTEgQEAgdm9pZCBSYW5n
ZTo6cHJvY2Vzc05vZGVzKEFjdGlvblR5cGUgYWN0aW9uLCBWZWN0b3I8UmVmUHRyPE5vZGU+PiYg
bm9kZXMsIFBhc3NSZWYKICAgICB9CiB9CiAKLVBhc3NSZWZQdHI8Tm9kZT4gUmFuZ2U6OnByb2Nl
c3NBbmNlc3RvcnNBbmRUaGVpclNpYmxpbmdzKEFjdGlvblR5cGUgYWN0aW9uLCBOb2RlKiBjb250
YWluZXIsIENvbnRlbnRzUHJvY2Vzc0RpcmVjdGlvbiBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8Tm9k
ZT4gcGFzc2VkQ2xvbmVkQ29udGFpbmVyLCBOb2RlKiBjb21tb25Sb290LCBFeGNlcHRpb25Db2Rl
JiBlYykKK1JlZlB0cjxOb2RlPiBSYW5nZTo6cHJvY2Vzc0FuY2VzdG9yc0FuZFRoZWlyU2libGlu
Z3MoQWN0aW9uVHlwZSBhY3Rpb24sIE5vZGUqIGNvbnRhaW5lciwgQ29udGVudHNQcm9jZXNzRGly
ZWN0aW9uIGRpcmVjdGlvbiwgUmVmUHRyPE5vZGU+JiYgcGFzc2VkQ2xvbmVkQ29udGFpbmVyLCBO
b2RlKiBjb21tb25Sb290LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICB0eXBlZGVmIFZlY3Rv
cjxSZWZQdHI8Tm9kZT4+IE5vZGVWZWN0b3I7CiAKLSAgICBSZWZQdHI8Tm9kZT4gY2xvbmVkQ29u
dGFpbmVyID0gcGFzc2VkQ2xvbmVkQ29udGFpbmVyOworICAgIFJlZlB0cjxOb2RlPiBjbG9uZWRD
b250YWluZXIgPSBXVEY6Om1vdmUocGFzc2VkQ2xvbmVkQ29udGFpbmVyKTsKICAgICBWZWN0b3I8
UmVmUHRyPE5vZGU+PiBhbmNlc3RvcnM7CiAgICAgZm9yIChDb250YWluZXJOb2RlKiBuID0gY29u
dGFpbmVyLT5wYXJlbnROb2RlKCk7IG4gJiYgbiAhPSBjb21tb25Sb290OyBuID0gbi0+cGFyZW50
Tm9kZSgpKQogICAgICAgICBhbmNlc3RvcnMuYXBwZW5kKG4pOwpAQCAtOTMyLDcgKzkzMiw3IEBA
IFBhc3NSZWZQdHI8Tm9kZT4gUmFuZ2U6OnByb2Nlc3NBbmNlc3RvcnNBbmRUaGVpclNpYmxpbmdz
KEFjdGlvblR5cGUgYWN0aW9uLCBOb2RlCiAgICAgcmV0dXJuIGNsb25lZENvbnRhaW5lci5yZWxl
YXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUmFuZ2U6OmV4dHJhY3RD
b250ZW50cyhFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBSYW5n
ZTo6ZXh0cmFjdENvbnRlbnRzKEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGNoZWNrRGVsZXRl
RXh0cmFjdChlYyk7CiAgICAgaWYgKGVjKQpAQCAtOTQxLDcgKzk0MSw3IEBAIFBhc3NSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gUmFuZ2U6OmV4dHJhY3RDb250ZW50cyhFeGNlcHRpb25Db2RlJiBl
YykKICAgICByZXR1cm4gcHJvY2Vzc0NvbnRlbnRzKEV4dHJhY3QsIGVjKTsKIH0KIAotUGFzc1Jl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBSYW5nZTo6Y2xvbmVDb250ZW50cyhFeGNlcHRpb25Db2Rl
JiBlYykKK1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBSYW5nZTo6Y2xvbmVDb250ZW50cyhFeGNl
cHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIW1fc3RhcnQuY29udGFpbmVyKCkpIHsKICAgICAg
ICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKQEAgLTk1MSwxMCArOTUxLDggQEAgUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBSYW5nZTo6Y2xvbmVDb250ZW50cyhFeGNlcHRpb25Db2RlJiBl
YykKICAgICByZXR1cm4gcHJvY2Vzc0NvbnRlbnRzKENsb25lLCBlYyk7CiB9CiAKLXZvaWQgUmFu
Z2U6Omluc2VydE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBwcnBOZXdOb2RlLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3ZvaWQgUmFuZ2U6Omluc2VydE5vZGUoUmVmUHRyPE5vZGU+JiYgbmV3Tm9kZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgUmVmUHRyPE5vZGU+IG5ld05vZGUgPSBwcnBOZXdOb2Rl
OwotCiAgICAgZWMgPSAwOwogCiAgICAgaWYgKCFtX3N0YXJ0LmNvbnRhaW5lcigpKSB7CkBAIC0x
MDQ1LDcgKzEwNDMsNyBAQCB2b2lkIFJhbmdlOjppbnNlcnROb2RlKFBhc3NSZWZQdHI8Tm9kZT4g
cHJwTmV3Tm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIAogICAgICAgICBjb250YWluZXIgPSBtX3N0YXJ0LmNvbnRhaW5lcigpOwotICAgICAgICBj
b250YWluZXItPnBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG5ld05vZGUucmVsZWFzZSgpLCBu
ZXdUZXh0LmdldCgpLCBlYyk7CisgICAgICAgIGNvbnRhaW5lci0+cGFyZW50Tm9kZSgpLT5pbnNl
cnRCZWZvcmUoV1RGOjptb3ZlKG5ld05vZGUpLCBuZXdUZXh0LmdldCgpLCBlYyk7CiAgICAgICAg
IGlmIChlYykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTA1Niw3ICsxMDU0LDcgQEAgdm9p
ZCBSYW5nZTo6aW5zZXJ0Tm9kZShQYXNzUmVmUHRyPE5vZGU+IHBycE5ld05vZGUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogICAgICAgICBSZWZQdHI8Tm9kZT4gZmlyc3RJbnNlcnRlZENoaWxkID0gbmV3
Tm9kZVR5cGUgPT0gTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERSA/IG5ld05vZGUtPmZpcnN0
Q2hpbGQoKSA6IG5ld05vZGU7CiAgICAgICAgIFJlZlB0cjxOb2RlPiBsYXN0SW5zZXJ0ZWRDaGls
ZCA9IG5ld05vZGVUeXBlID09IE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUgPyBuZXdOb2Rl
LT5sYXN0Q2hpbGQoKSA6IG5ld05vZGU7CiAgICAgICAgIFJlZlB0cjxOb2RlPiBjaGlsZEFmdGVy
SW5zZXJ0ZWRDb250ZW50ID0gY29udGFpbmVyLT50cmF2ZXJzZVRvQ2hpbGRBdChtX3N0YXJ0Lm9m
ZnNldCgpKTsKLSAgICAgICAgY29udGFpbmVyLT5pbnNlcnRCZWZvcmUobmV3Tm9kZS5yZWxlYXNl
KCksIGNoaWxkQWZ0ZXJJbnNlcnRlZENvbnRlbnQuZ2V0KCksIGVjKTsKKyAgICAgICAgY29udGFp
bmVyLT5pbnNlcnRCZWZvcmUoV1RGOjptb3ZlKG5ld05vZGUpLCBjaGlsZEFmdGVySW5zZXJ0ZWRD
b250ZW50LmdldCgpLCBlYyk7CiAgICAgICAgIGlmIChlYykKICAgICAgICAgICAgIHJldHVybjsK
IApAQCAtMTEwOSw3ICsxMTA3LDcgQEAgU3RyaW5nIFJhbmdlOjp0ZXh0KCkgY29uc3QKICAgICBy
ZXR1cm4gcGxhaW5UZXh0KHRoaXMpOwogfQogCi1QYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IFJhbmdlOjpjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoY29uc3QgU3RyaW5nJiBtYXJrdXAsIEV4
Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFJhbmdlOjpjcmVhdGVD
b250ZXh0dWFsRnJhZ21lbnQoY29uc3QgU3RyaW5nJiBtYXJrdXAsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIGlmICghbV9zdGFydC5jb250YWluZXIoKSkgewogICAgICAgICBlYyA9IElOVkFM
SURfU1RBVEVfRVJSOwpAQCAtMTIyNiw3ICsxMjI0LDcgQEAgdm9pZCBSYW5nZTo6Y2hlY2tOb2Rl
QkEoTm9kZSogbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgfQogfQogCi1QYXNzUmVm
UHRyPFJhbmdlPiBSYW5nZTo6Y2xvbmVSYW5nZShFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKK1Jl
ZlB0cjxSYW5nZT4gUmFuZ2U6OmNsb25lUmFuZ2UoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX3N0YXJ0LmNvbnRhaW5lcigpKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7CkBAIC0xNDAzLDEwICsxNDAxLDggQEAgdm9pZCBSYW5nZTo6c2VsZWN0Tm9kZUNv
bnRlbnRzKE5vZGUqIHJlZk5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIG1fZW5kLnNldFRv
RW5kT2ZOb2RlKHJlZk5vZGUpOwogfQogCi12b2lkIFJhbmdlOjpzdXJyb3VuZENvbnRlbnRzKFBh
c3NSZWZQdHI8Tm9kZT4gcGFzc05ld1BhcmVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIFJh
bmdlOjpzdXJyb3VuZENvbnRlbnRzKFJlZlB0cjxOb2RlPiYmIG5ld1BhcmVudCwgRXhjZXB0aW9u
Q29kZSYgZWMpCiB7Ci0gICAgUmVmUHRyPE5vZGU+IG5ld1BhcmVudCA9IHBhc3NOZXdQYXJlbnQ7
Ci0KICAgICBpZiAoIW1fc3RhcnQuY29udGFpbmVyKCkpIHsKICAgICAgICAgZWMgPSBJTlZBTElE
X1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuOwpAQCAtMTQ4Nyw3ICsxNDgzLDcgQEAgdm9pZCBS
YW5nZTo6c3Vycm91bmRDb250ZW50cyhQYXNzUmVmUHRyPE5vZGU+IHBhc3NOZXdQYXJlbnQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9
IGV4dHJhY3RDb250ZW50cyhlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm47Ci0gICAg
aW5zZXJ0Tm9kZShuZXdQYXJlbnQsIGVjKTsKKyAgICBpbnNlcnROb2RlKG5ld1BhcmVudC5jb3B5
KCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKICAgICBuZXdQYXJlbnQtPmFw
cGVuZENoaWxkKGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOwpAQCAtMjAxMiwxMiArMjAwOCwxMiBA
QCBib29sIHJhbmdlc092ZXJsYXAoY29uc3QgUmFuZ2UqIGEsIGNvbnN0IFJhbmdlKiBiKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2VPZkNvbnRlbnRzKE5v
ZGUmIG5vZGUpCitSZWZQdHI8UmFuZ2U+IHJhbmdlT2ZDb250ZW50cyhOb2RlJiBub2RlKQogewog
ICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKG5vZGUuZG9jdW1lbnQoKSk7
CiAgICAgaW50IGV4Y2VwdGlvbiA9IDA7CiAgICAgcmFuZ2UtPnNlbGVjdE5vZGVDb250ZW50cygm
bm9kZSwgZXhjZXB0aW9uKTsKLSAgICByZXR1cm4gcmFuZ2UucmVsZWFzZSgpOworICAgIHJldHVy
biByYW5nZTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGJvdW5kYXJ5Tm9kZUNoaWxkcmVuQ2hh
bmdlZChSYW5nZUJvdW5kYXJ5UG9pbnQmIGJvdW5kYXJ5LCBDb250YWluZXJOb2RlJiBjb250YWlu
ZXIpCkBAIC0yMTg3LDcgKzIxODMsNyBAQCB2b2lkIFJhbmdlOjpleHBhbmQoY29uc3QgU3RyaW5n
JiB1bml0LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBzZXRFbmQoZW5kLmRlZXBFcXVpdmFsZW50
KCkuY29udGFpbmVyTm9kZSgpLCBlbmQuZGVlcEVxdWl2YWxlbnQoKS5jb21wdXRlT2Zmc2V0SW5D
b250YWluZXJOb2RlKCksIGVjKTsKIH0KIAotUGFzc1JlZlB0cjxDbGllbnRSZWN0TGlzdD4gUmFu
Z2U6OmdldENsaWVudFJlY3RzKCkgY29uc3QKK1JlZlB0cjxDbGllbnRSZWN0TGlzdD4gUmFuZ2U6
OmdldENsaWVudFJlY3RzKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc3RhcnQuY29udGFpbmVyKCkp
CiAgICAgICAgIHJldHVybiBDbGllbnRSZWN0TGlzdDo6Y3JlYXRlKCk7CkBAIC0yMjAwLDcgKzIx
OTYsNyBAQCBQYXNzUmVmUHRyPENsaWVudFJlY3RMaXN0PiBSYW5nZTo6Z2V0Q2xpZW50UmVjdHMo
KSBjb25zdAogICAgIHJldHVybiBDbGllbnRSZWN0TGlzdDo6Y3JlYXRlKHF1YWRzKTsKIH0KIAot
UGFzc1JlZlB0cjxDbGllbnRSZWN0PiBSYW5nZTo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgY29u
c3QKK1JlZlB0cjxDbGllbnRSZWN0PiBSYW5nZTo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgY29u
c3QKIHsKICAgICByZXR1cm4gQ2xpZW50UmVjdDo6Y3JlYXRlKGJvdW5kaW5nUmVjdCgpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1JhbmdlLmgKaW5kZXggZjU4ZWEyOS4uYjkwNDA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTUy
LDExICs1MiwxMSBAQCBjbGFzcyBTZWxlY3Rpb25SZWN0OwogCiBjbGFzcyBSYW5nZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPFJhbmdlPiB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFBhc3NSZWZQdHI8UmFuZ2U+IGNyZWF0ZShEb2N1bWVudCYpOwotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBQYXNzUmVmUHRyPFJhbmdlPiBjcmVhdGUoRG9jdW1lbnQmLCBQYXNzUmVmUHRyPE5v
ZGU+IHN0YXJ0Q29udGFpbmVyLCBpbnQgc3RhcnRPZmZzZXQsIFBhc3NSZWZQdHI8Tm9kZT4gZW5k
Q29udGFpbmVyLCBpbnQgZW5kT2Zmc2V0KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFz
c1JlZlB0cjxSYW5nZT4gY3JlYXRlKERvY3VtZW50JiwgY29uc3QgUG9zaXRpb24mLCBjb25zdCBQ
b3NpdGlvbiYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPFJhbmdlPiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBQYXNzUmVmUHRyPFJhbmdlPiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
UmVmUHRyPFJhbmdlPiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmUHRyPFJhbmdlPiBjcmVhdGUoRG9jdW1lbnQmLCBSZWZQdHI8Tm9kZT4mJiBzdGFydENv
bnRhaW5lciwgaW50IHN0YXJ0T2Zmc2V0LCBSZWZQdHI8Tm9kZT4mJiBlbmRDb250YWluZXIsIGlu
dCBlbmRPZmZzZXQpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8UmFuZ2U+IGNy
ZWF0ZShEb2N1bWVudCYsIGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPFJhbmdlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8UmFuZ2U+IGNyZWF0
ZShEb2N1bWVudCYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5SYW5nZSgpOwogCiAgICAgRG9jdW1lbnQmIG93bmVy
RG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PERvY3VtZW50Jj4obV9vd25lckRv
Y3VtZW50LmdldCgpKTsgfQpAQCAtNzQsOCArNzQsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBOb2RlKiBjb21tb25BbmNlc3RvckNvbnRhaW5lcihFeGNlcHRpb25Db2RlJikgY29u
c3Q7CiAgICAgc3RhdGljIE5vZGUqIGNvbW1vbkFuY2VzdG9yQ29udGFpbmVyKE5vZGUqIGNvbnRh
aW5lckEsIE5vZGUqIGNvbnRhaW5lckIpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U3Rh
cnQoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIsIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUm
ID0gQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFbmQo
UGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIsIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmID0g
QVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTdGFydChS
ZWZQdHI8Tm9kZT4mJiBjb250YWluZXIsIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmID0gQVNT
RVJUX05PX0VYQ0VQVElPTik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFbmQoUmVmUHRy
PE5vZGU+JiYgY29udGFpbmVyLCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9O
T19FWENFUFRJT04pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29sbGFwc2UoYm9vbCB0b1N0
YXJ0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1BvaW50SW5S
YW5nZShOb2RlKiByZWZOb2RlLCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgc2hv
cnQgY29tcGFyZVBvaW50KE5vZGUqIHJlZk5vZGUsIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUm
KSBjb25zdDsKQEAgLTg4LDI1ICs4OCwyNSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBib3VuZGFyeVBvaW50c1ZhbGlkKCkgY29uc3Q7CiAgICAgYm9vbCBpbnRlcnNlY3RzTm9k
ZShOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBkZWxldGVDb250ZW50
cyhFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBleHRy
YWN0Q29udGVudHMoRXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gY2xvbmVDb250ZW50cyhFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBpbnNlcnROb2Rl
KFBhc3NSZWZQdHI8Tm9kZT4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gZXh0cmFjdENvbnRlbnRzKEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gY2xvbmVDb250ZW50cyhFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBp
bnNlcnROb2RlKFJlZlB0cjxOb2RlPiYmLCBFeGNlcHRpb25Db2RlJik7CiAgICAgU3RyaW5nIHRv
U3RyaW5nKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAogICAgIFN0cmluZyB0b0hUTUwoKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgdGV4dCgpIGNvbnN0OwogCi0gICAgUGFzc1Jl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoY29uc3QgU3Ry
aW5nJiBodG1sLCBFeGNlcHRpb25Db2RlJik7CisgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChjb25zdCBTdHJpbmcmIGh0bWwsIEV4Y2VwdGlvbkNv
ZGUmKTsKIAogICAgIHZvaWQgZGV0YWNoKEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCBQYXNzUmVmUHRyPFJhbmdlPiBjbG9uZVJhbmdlKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8UmFuZ2U+IGNsb25lUmFuZ2UoRXhjZXB0aW9uQ29k
ZSYpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTdGFydEFmdGVyKE5vZGUq
LCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0RW5kQmVmb3JlKE5vZGUqLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19F
WENFUFRJT04pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RW5kQWZ0ZXIoTm9kZSosIEV4
Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZWxlY3ROb2RlKE5vZGUqLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJ
T04pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0Tm9kZUNvbnRlbnRzKE5vZGUqLCBF
eGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzdXJyb3VuZENvbnRlbnRzKFBhc3NSZWZQdHI8Tm9k
ZT4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHN1cnJvdW5kQ29udGVudHMoUmVmUHRyPE5v
ZGU+JiYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN0YXJ0
QmVmb3JlKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBjb25zdCBQb3NpdGlvbiBzdGFy
dFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydC50b1Bvc2l0aW9uKCk7IH0KQEAgLTE1
MSw4ICsxNTEsOCBAQCBwdWJsaWM6CiAgICAgLy8gZm9yIGRldGFpbHMuCiAgICAgdm9pZCBleHBh
bmQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgUGFzc1JlZlB0cjxDbGll
bnRSZWN0TGlzdD4gZ2V0Q2xpZW50UmVjdHMoKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPENsaWVu
dFJlY3Q+IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0OworICAgIFJlZlB0cjxDbGllbnRS
ZWN0TGlzdD4gZ2V0Q2xpZW50UmVjdHMoKSBjb25zdDsKKyAgICBSZWZQdHI8Q2xpZW50UmVjdD4g
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgY29uc3Q7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgdm9p
ZCBmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3Q7
CkBAIC0xNjIsNyArMTYyLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJh
bmdlKERvY3VtZW50Jik7Ci0gICAgUmFuZ2UoRG9jdW1lbnQmLCBQYXNzUmVmUHRyPE5vZGU+IHN0
YXJ0Q29udGFpbmVyLCBpbnQgc3RhcnRPZmZzZXQsIFBhc3NSZWZQdHI8Tm9kZT4gZW5kQ29udGFp
bmVyLCBpbnQgZW5kT2Zmc2V0KTsKKyAgICBSYW5nZShEb2N1bWVudCYsIFJlZlB0cjxOb2RlPiYm
IHN0YXJ0Q29udGFpbmVyLCBpbnQgc3RhcnRPZmZzZXQsIFJlZlB0cjxOb2RlPiYmIGVuZENvbnRh
aW5lciwgaW50IGVuZE9mZnNldCk7CiAKICAgICB2b2lkIHNldERvY3VtZW50KERvY3VtZW50Jik7
CiAKQEAgLTE3MiwxOCArMTcyLDE4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjb250YWluZWRCeVJl
YWRPbmx5KCkgY29uc3Q7CiAKICAgICBlbnVtIEFjdGlvblR5cGUgeyBEZWxldGUsIEV4dHJhY3Qs
IENsb25lIH07Ci0gICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBwcm9jZXNzQ29udGVu
dHMoQWN0aW9uVHlwZSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5v
ZGU+IHByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKEFjdGlvblR5cGUsIFBhc3NSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4sIE5vZGUqLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQg
ZW5kT2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgc3RhdGljIHZvaWQgcHJvY2Vzc05vZGVz
KEFjdGlvblR5cGUsIFZlY3RvcjxSZWZQdHI8Tm9kZT4+JiwgUGFzc1JlZlB0cjxOb2RlPiBvbGRD
b250YWluZXIsIFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q29udGFpbmVyLCBFeGNlcHRpb25Db2RlJik7
CisgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IHByb2Nlc3NDb250ZW50cyhBY3Rpb25UeXBl
LCBFeGNlcHRpb25Db2RlJik7CisgICAgc3RhdGljIFJlZlB0cjxOb2RlPiBwcm9jZXNzQ29udGVu
dHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBlLCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4mJiwg
Tm9kZSosIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICBzdGF0aWMgdm9pZCBwcm9jZXNzTm9kZXMoQWN0aW9uVHlwZSwgVmVjdG9y
PFJlZlB0cjxOb2RlPj4mLCBSZWZQdHI8Tm9kZT4mJiBvbGRDb250YWluZXIsIFJlZlB0cjxOb2Rl
PiYmIG5ld0NvbnRhaW5lciwgRXhjZXB0aW9uQ29kZSYpOwogICAgIGVudW0gQ29udGVudHNQcm9j
ZXNzRGlyZWN0aW9uIHsgUHJvY2Vzc0NvbnRlbnRzRm9yd2FyZCwgUHJvY2Vzc0NvbnRlbnRzQmFj
a3dhcmQgfTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb2RlPiBwcm9jZXNzQW5jZXN0b3JzQW5k
VGhlaXJTaWJsaW5ncyhBY3Rpb25UeXBlLCBOb2RlKiBjb250YWluZXIsIENvbnRlbnRzUHJvY2Vz
c0RpcmVjdGlvbiwgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZWRDb250YWluZXIsIE5vZGUqIGNvbW1v
blJvb3QsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgUmVmUHRyPE5vZGU+IHByb2Nlc3NB
bmNlc3RvcnNBbmRUaGVpclNpYmxpbmdzKEFjdGlvblR5cGUsIE5vZGUqIGNvbnRhaW5lciwgQ29u
dGVudHNQcm9jZXNzRGlyZWN0aW9uLCBSZWZQdHI8Tm9kZT4mJiBjbG9uZWRDb250YWluZXIsIE5v
ZGUqIGNvbW1vblJvb3QsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFJlZjxEb2N1bWVudD4gbV9v
d25lckRvY3VtZW50OwogICAgIFJhbmdlQm91bmRhcnlQb2ludCBtX3N0YXJ0OwogICAgIFJhbmdl
Qm91bmRhcnlQb2ludCBtX2VuZDsKIH07CiAKLVBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlT2ZDb250
ZW50cyhOb2RlJik7CitSZWZQdHI8UmFuZ2U+IHJhbmdlT2ZDb250ZW50cyhOb2RlJik7CiAKIFdF
QkNPUkVfRVhQT1JUIGJvb2wgYXJlUmFuZ2VzRXF1YWwoY29uc3QgUmFuZ2UqLCBjb25zdCBSYW5n
ZSopOwogYm9vbCByYW5nZXNPdmVybGFwKGNvbnN0IFJhbmdlKiwgY29uc3QgUmFuZ2UqKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>