<?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>161369</bug_id>
          
          <creation_ts>2016-08-29 20:56:44 -0700</creation_ts>
          <short_desc>[JSC] Make ArithClz32 work with Cell arguments</short_desc>
          <delta_ts>2016-09-06 14:56:15 -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>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="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1224498</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-08-29 20:56:44 -0700</bug_when>
    <thetext>[JSC] Make ArithClz32 work with Cell arguments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224500</commentid>
    <comment_count>1</comment_count>
      <attachid>287369</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-08-29 20:58:57 -0700</bug_when>
    <thetext>Created attachment 287369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224517</commentid>
    <comment_count>2</comment_count>
      <attachid>287376</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-08-30 00:12:04 -0700</bug_when>
    <thetext>Created attachment 287376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226831</commentid>
    <comment_count>3</comment_count>
      <attachid>287376</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-09-06 14:36:14 -0700</bug_when>
    <thetext>Comment on attachment 287376
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226848</commentid>
    <comment_count>4</comment_count>
      <attachid>287376</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-06 14:56:10 -0700</bug_when>
    <thetext>Comment on attachment 287376
Patch

Clearing flags on attachment: 287376

Committed r205511: &lt;http://trac.webkit.org/changeset/205511&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226849</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-06 14:56:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287369</attachid>
            <date>2016-08-29 20:58:57 -0700</date>
            <delta_ts>2016-08-30 00:11:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161369-20160829205647.patch</filename>
            <type>text/plain</type>
            <size>19376</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
MzA4ZjgwZDVlYzJmODJlMzc0OTlmMjFkNmYzMGY3ZWIyYzdiNjQ2Li41ZjZkYzNlOTg2Mjc2ZTBm
ZjUyMDQ4OTY2ODEyYTFiNWJiNDI0YjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNi0wOC0yOSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBNYWtlIEFyaXRoQ2x6MzIgd29yayB3aXRoIENlbGwgYXJn
dW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjEzNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
cml0aENsejMyIHdhcyBhbHJlYWR5IHdvcmtpbmcgd2l0aCBhbGwgcHJpbWl0aXZlIHR5cGVzCisg
ICAgICAgIHRoYW5rcyB0byB0aGUgbWFnaWMgb2YgVmFsdWVUb0ludDMyLgorICAgICAgICBUaGlz
IHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgY2VsbCBhcmd1bWVudHMgdGhyb3VnaCBhIGZ1bmN0aW9u
CisgICAgICAgIGNhbGwuCisKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0
U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXpl
Lmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6
CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlv
bnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmg6CisgICAgICAgICogZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUFyaXRoQ2x6MzIpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAg
ICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6Y29tcGlsZUFyaXRoQ2x6MzIpOgorCiAyMDE2LTA4LTI5ICBLZWl0aCBNaWxs
ZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0b1N0cmluZ05hbWUg
Zm9yIFByb3hpZXMgYW5kIGFkZCBzdXBwb3J0IGZvciBub3JtYWwgaW5zdGFuY2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgKaW5kZXggOGUzMjQ0MGYxOGM5MGEzZWRlNzg5NzE0ODRlNTc1ZWRjYzFkZmNjYy4u
NmI1ZTFkZTNjNzNjYTJiYzg0MTM2NDkyYTg0ZmE3NmRjMWRkNTNkNyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaApAQCAtNTQ3LDggKzU0Nyw4IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAKICAgICBj
YXNlIEFyaXRoQ2x6MzI6IHsKICAgICAgICAgSlNWYWx1ZSBvcGVyYW5kID0gZm9yTm9kZShub2Rl
LT5jaGlsZDEoKSkudmFsdWUoKTsKLSAgICAgICAgaWYgKG9wZXJhbmQgJiYgb3BlcmFuZC5pc051
bWJlcigpKSB7Ci0gICAgICAgICAgICB1aW50MzJfdCB2YWx1ZSA9IHRvVUludDMyKG9wZXJhbmQu
YXNOdW1iZXIoKSk7CisgICAgICAgIGlmIChPcHRpb25hbDxkb3VibGU+IG51bWJlciA9IG9wZXJh
bmQudG9OdW1iZXJGcm9tUHJpbWl0aXZlKCkpIHsKKyAgICAgICAgICAgIHVpbnQzMl90IHZhbHVl
ID0gdG9VSW50MzIoKm51bWJlcik7CiAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc051
bWJlcihjbHozMih2YWx1ZSkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IGIxYTc5ZTA0MjU2ODVl
ZTMyZjA0NTg2MGY2YjRiN2RmMWE4NmQxNTYuLmQ1YWRjM2Q0ZjY4MTc1Y2Y5NmI3ZWU0OWU3YjM0
Y2NmM2JlYWQ4N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xv
YmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5o
CkBAIC0xNDksNyArMTQ5LDYgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSog
bm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgcmV0
dXJuOwogICAgICAgICAKICAgICBjYXNlIEFyaXRoSU11bDoKLSAgICBjYXNlIEFyaXRoQ2x6MzI6
CiAgICAgY2FzZSBBcml0aE1pbjoKICAgICBjYXNlIEFyaXRoTWF4OgogICAgIGNhc2UgQXJpdGhQ
b3c6CkBAIC0yMDYsNiArMjA1LDE1IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5v
ZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBBcml0aENsejMyOgorICAgICAgICBpZiAo
bm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IEludDMyVXNlIHx8IG5vZGUtPmNoaWxkMSgpLnVz
ZUtpbmQoKSA9PSBLbm93bkludDMyVXNlKQorICAgICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2Rl
KSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmVhZChXb3JsZCk7CisgICAgICAgICAg
ICB3cml0ZShIZWFwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisKICAgICBjYXNlIEJp
dEFuZDoKICAgICBjYXNlIEJpdE9yOgogICAgIGNhc2UgQml0WG9yOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggOGRiMjY4ZGU5Nzg0OTgxMmNhNTYy
NjljODQ5NDgzYjI3YmY4NzdiMi4uMGVlMjhmNTc0MTE0NzA5NjAyMjQ4NjMwOWMyM2Q2MDMxZjI3
Mzc2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBA
IC0xMjYsOCArMTI2LDExIEBAIHByaXZhdGU6CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIEFy
aXRoQ2x6MzI6IHsKLSAgICAgICAgICAgIGZpeEludENvbnZlcnRpbmdFZGdlKG5vZGUtPmNoaWxk
MSgpKTsKLSAgICAgICAgICAgIG5vZGUtPnNldEFyaXRoTW9kZShBcml0aDo6VW5jaGVja2VkKTsK
KyAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlTm90Q2VsbCgp
KSB7CisgICAgICAgICAgICAgICAgZml4SW50Q29udmVydGluZ0VkZ2Uobm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRVc2U+KG5v
ZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCA4MzY2MThhMzBi
NTY5MTUxODVhODNjNzk4MTgwNmM0ZWYzMDc3NWY0Li41NTE5M2U0OTY0MWM0OTU2MDA0MzIyYTA3
NzdhMzY1N2JlYjY5NjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5o
CkBAIC0xNDIsNyArMTQyLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAg
IC8qIHRoaXMgaXMgb25seSB0cnVlIGlmIHdlIGRvIHRoZSBvdmVyZmxvdyBjaGVjayAtIGhlbmNl
IHRoZSBuZWVkIHRvIGtlZXAgaXQgYWxpdmUuIE1vcmUgKi9cCiAgICAgLyogZ2VuZXJhbGx5LCB3
ZSBuZWVkIHRvIGtlZXAgYWxpdmUgYW55IG9wZXJhdGlvbiB3aG9zZSBjaGVja3MgY2F1c2UgZmls
dHJhdGlvbiBpbiBBSS4gKi9cCiAgICAgbWFjcm8oQXJpdGhBZGQsIE5vZGVSZXN1bHROdW1iZXIg
fCBOb2RlTXVzdEdlbmVyYXRlKSBcCi0gICAgbWFjcm8oQXJpdGhDbHozMiwgTm9kZVJlc3VsdElu
dDMyKSBcCisgICAgbWFjcm8oQXJpdGhDbHozMiwgTm9kZVJlc3VsdEludDMyIHwgTm9kZU11c3RH
ZW5lcmF0ZSkgXAogICAgIG1hY3JvKEFyaXRoU3ViLCBOb2RlUmVzdWx0TnVtYmVyIHwgTm9kZU11
c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEFyaXRoTmVnYXRlLCBOb2RlUmVzdWx0TnVtYmVyIHwg
Tm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEFyaXRoTXVsLCBOb2RlUmVzdWx0TnVtYmVy
IHwgTm9kZU11c3RHZW5lcmF0ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAKaW5kZXggN2Q0NzVlYzMzMWVlMzc5NjNiMzE1MTg0NGI0MDZjOTU4YWU2NmE1
OC4uOWQwMTY4ZDc2ZTYxNjUzOWFhOTFmOTU3OTFmODI2ODA2YTZkMDNiZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0zMzQsNiArMzM0LDE4IEBA
IGRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoQWJzKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wCiAgICAgcmV0dXJuIGZhYnMoYSk7CiB9CiAKK2ludDMy
X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aENsejMyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSkKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAg
ICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKworICAgIEpTVmFsdWUg
b3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIHVpbnQzMl90IHZhbHVlID0g
b3AxLnRvVUludDMyKGV4ZWMpOworICAgIGlmIChVTkxJS0VMWSh2bS0+ZXhjZXB0aW9uKCkpKQor
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CisgICAgcmV0dXJuIGNs
ejMyKHZhbHVlKTsKK30KKwogZG91YmxlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhDb3Mo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKQogewogICAgIFZNKiB2
bSA9ICZleGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
aAppbmRleCBiNjZmYzFlYzdkYjUxNjFiMjI5NDY5NWE4MjBiMmU3ZWFhYzQxZDMxLi5iMGM0YWRm
ZjYxYWNhNjMzZTE1MjU3N2Y3YThjMjZjNWYzNGVmMTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuaApAQCAtNTQsNiArNTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0VVJTaGlmdChFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZQogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE5v
dE51bWJlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhbHVlRGl2KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKIGRvdWJsZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoQWJzKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDEpIFdURl9JTlRFUk5BTDsKK2ludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25B
cml0aENsejMyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEpIFdURl9JTlRF
Uk5BTDsKIGRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoQ29zKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEpIFdURl9JTlRFUk5BTDsKIGRvdWJsZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkFyaXRoRlJvdW5kKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDEpIFdURl9JTlRFUk5BTDsKIGRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFy
aXRoTG9nKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEpIFdURl9JTlRFUk5B
TDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAK
aW5kZXggZjA4MjVkNTYzMzNiNzhiNDA3ZjU4MDM0NmYxNTM1MTYyMGY4ZGZhOS4uZTAzN2E2MTJj
MmRhNDJiYWQ1MmMzNGZmYmI4NWFkOTZjZDcxZWQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTM5MTcsMTIgKzM5MTcsMjIgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoQWJzKE5vZGUqIG5vZGUpCiAKIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aENsejMyKE5vZGUqIG5vZGUpCiB7Ci0gICAgQVNT
RVJUX1dJVEhfTUVTU0FHRShub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gSW50MzJVc2UgfHwg
bm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IEtub3duSW50MzJVc2UsICJUaGUgRml4dXAgcGhh
c2Ugc2hvdWxkIGhhdmUgZW5mb3JjZWQgYSBJbnQzMiBvcGVyYW5kLiIpOwotICAgIFNwZWN1bGF0
ZUludDMyT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgR1BSVGVtcG9y
YXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgdmFsdWUpOwotICAgIEdQUlJlZyB2YWx1ZVJlZyA9IHZh
bHVlLmdwcigpOworICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gSW50MzJVc2Ug
fHwgbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IEtub3duSW50MzJVc2UpIHsKKyAgICAgICAg
U3BlY3VsYXRlSW50MzJPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICAg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgdmFsdWUpOworICAgICAgICBHUFJS
ZWcgdmFsdWVSZWcgPSB2YWx1ZS5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHJlc3VsdFJlZyA9IHJl
c3VsdC5ncHIoKTsKKyAgICAgICAgbV9qaXQuY291bnRMZWFkaW5nWmVyb3MzMih2YWx1ZVJlZywg
cmVzdWx0UmVnKTsKKyAgICAgICAgaW50MzJSZXN1bHQocmVzdWx0UmVnLCBub2RlKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBKU1ZhbHVlT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOworICAgIEpTVmFsdWVSZWdzIG9wMVJlZ3MgPSBvcDEuanNWYWx1ZVJlZ3MoKTsKKyAg
ICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogICAgIEdQUlJlZyByZXN1bHRSZWcgPSByZXN1
bHQuZ3ByKCk7Ci0gICAgbV9qaXQuY291bnRMZWFkaW5nWmVyb3MzMih2YWx1ZVJlZywgcmVzdWx0
UmVnKTsKKyAgICBmbHVzaFJlZ2lzdGVycygpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
QXJpdGhDbHozMiwgcmVzdWx0UmVnLCBvcDFSZWdzKTsKKyAgICBtX2ppdC5leGNlcHRpb25DaGVj
aygpOwogICAgIGludDMyUmVzdWx0KHJlc3VsdFJlZywgbm9kZSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCBiOWE4ZDBmMDg2YTYx
MjkzZDZhNWFhYThjMzE3MDFiOTJjYTAzODg5Li5mMWJhNWNhNDJkZThmNmFmNzQ3MDAxMmZkYjZj
MWU3YzllMDg2ODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCkBAIC0xNjcxLDYgKzE2NzEsMTIgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
YXBwZW5kQ2FsbChvcGVyYXRpb24pOwogICAgIH0KIAorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBK
U1ZhbHVlUmVncyBhcmcxKQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKGFyZzEucGF5bG9hZEdQUigpKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxT
ZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOworICAgIH0KKwogICAgIEpJVENvbXBpbGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUpaWiBvcGVyYXRpb24sIEdQUlJlZyBy
ZXN1bHQsIEdQUlJlZyBhcmcxLCB1bnNpZ25lZCBhcmcyLCB1bnNpZ25lZCBhcmczKQogICAgIHsK
ICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIFRydXN0ZWRJ
bW0zMihhcmcyKSwgVHJ1c3RlZEltbTMyKGFyZzMpKTsKQEAgLTIxMTIsNyArMjExOCwxMSBAQCBw
dWJsaWM6CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMy
QklUX0RVTU1ZX0FSRyBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMiwgRUFC
SV8zMkJJVF9EVU1NWV9BUkcgYXJnMy5wYXlsb2FkR1BSKCksIGFyZzMudGFnR1BSKCkpOwogICAg
ICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CiAgICAg
fQotCisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9F
SiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEpCisgICAgeworICAg
ICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9B
UkcgIGFyZzEucGF5bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpKTsKKyAgICAgICAgcmV0dXJuIGFw
cGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOworICAgIH0KICAgICBKSVRDb21w
aWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKWlogb3BlcmF0aW9uLCBH
UFJSZWcgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCB1bnNpZ25lZCBhcmcyLCB1bnNpZ25lZCBh
cmczKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVB
QklfMzJCSVRfRFVNTVlfQVJHICBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgVHJ1
c3RlZEltbTMyKGFyZzIpLCBUcnVzdGVkSW1tMzIoYXJnMykpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IGE3ZTI2ODFmNjgzMzA0NzFkYWRh
MDEyOTdmY2I5NTRlZTE4M2Q4NGUuLjkxZTk3YzcwZTdlNWI3Y2NjMTEwYjBmZWQyMzgyNzdlOWQz
OGU1YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAKQEAgLTE3MjYsOCArMTcyNiwxNSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb21waWxlQXJp
dGhDbHozMigpCiAgICAgewotICAgICAgICBMVmFsdWUgb3BlcmFuZCA9IGxvd0ludDMyKG1fbm9k
ZS0+Y2hpbGQxKCkpOwotICAgICAgICBzZXRJbnQzMihtX291dC5jdGx6MzIob3BlcmFuZCkpOwor
ICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gSW50MzJVc2UgfHwgbV9u
b2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gS25vd25JbnQzMlVzZSkgeworICAgICAgICAgICAg
TFZhbHVlIG9wZXJhbmQgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAg
IHNldEludDMyKG1fb3V0LmN0bHozMihvcGVyYW5kKSk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBtX25vZGUsIG1fbm9kZS0+Y2hp
bGQxKCkudXNlS2luZCgpID09IFVudHlwZWRVc2UpOworICAgICAgICBMVmFsdWUgYXJndW1lbnQg
PSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgcmVzdWx0ID0g
dm1DYWxsKEludDMyLCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uQXJpdGhDbHozMiksIG1fY2Fs
bEZyYW1lLCBhcmd1bWVudCk7CisgICAgICAgIHNldEludDMyKHJlc3VsdCk7CiAgICAgfQogICAg
IAogICAgIHZvaWQgY29tcGlsZUFyaXRoTXVsKCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdl
TG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzgxNjVlNzMxYzIxZWQ5NjUwZmMxODIxZDZk
ZjAzOTUxY2MxYTRkOC4uYzE0NjZlNjAwMjM3ODRkMTY2MTViMmMyNmVhODAwNmY4NzgxYjBkNCAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsNSArMSwxNCBAQAogMjAxNi0wOC0yOSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFw
cGxlLmNvbT4KIAorICAgICAgICBbSlNDXSBNYWtlIEFyaXRoQ2x6MzIgd29yayB3aXRoIENlbGwg
YXJndW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjEzNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHN0cmVzcy9hcml0aC1jbHozMi1vbi12YXJpb3VzLXR5cGVzLmpzOiBBZGRlZC4KKworMjAx
Ni0wOC0yOSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKwogICAgICAg
ICBbSlNDXSBJbXByb3ZlIEFyaXRoQWJzIHdpdGggcG9seW1vcnBoaWMgaW5wdXQKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTI4NgogCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9hcml0aC1jbHozMi1vbi12YXJpb3VzLXR5cGVzLmpzIGIvSlNU
ZXN0cy9zdHJlc3MvYXJpdGgtY2x6MzItb24tdmFyaW91cy10eXBlcy5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
MDA2MDFiYTg5N2Y1MDhkNTNhYWY4YTA0ZDY4NWU2OTE3NWMxNzNiCi0tLSAvZGV2L251bGwKKysr
IGIvSlNUZXN0cy9zdHJlc3MvYXJpdGgtY2x6MzItb24tdmFyaW91cy10eXBlcy5qcwpAQCAtMCww
ICsxLDIzMiBAQAorInVzZSBzdHJpY3QiOworCitsZXQgdmFsaWRJbnB1dFRlc3RDYXNlcyA9IFsK
KyAgICAvLyBpbnB1dCBhcyBzdHJpbmcsIGV4cGVjdGVkIHJlc3VsdCBhcyBzdHJpbmcuCisgICAg
WyJ1bmRlZmluZWQiLCAiMzIiXSwKKyAgICBbIm51bGwiLCAiMzIiXSwKKyAgICBbIjAiLCAiMzIi
XSwKKyAgICBbIi0wLiIsICIzMiJdLAorICAgIFsiNCIsICIyOSJdLAorICAgIFsiTWF0aC5QSSIs
ICIzMCJdLAorICAgIFsiSW5maW5pdHkiLCAiMzIiXSwKKyAgICBbIi1JbmZpbml0eSIsICIzMiJd
LAorICAgIFsiTmFOIiwgIjMyIl0sCisgICAgWyJcIldlYktpdFwiIiwgIjMyIl0sCisgICAgWyJc
IjRcIiIsICIyOSJdLAorICAgIFsieyB2YWx1ZU9mOiAoKSA9PiB7IHJldHVybiA0OyB9IH0iLCAi
MjkiXSwKK107CisKK2xldCB2YWxpZElucHV0VHlwZWRUZXN0Q2FzZXMgPSB2YWxpZElucHV0VGVz
dENhc2VzLm1hcCgoZWxlbWVudCkgPT4geyByZXR1cm4gW2V2YWwoIigiICsgZWxlbWVudFswXSAr
ICIpIiksIGV2YWwoZWxlbWVudFsxXSldIH0pOworCitmdW5jdGlvbiBpc0lkZW50aWNhbChyZXN1
bHQsIGV4cGVjdGVkKQoreworICAgIGlmIChleHBlY3RlZCA9PT0gZXhwZWN0ZWQpIHsKKyAgICAg
ICAgaWYgKHJlc3VsdCAhPT0gZXhwZWN0ZWQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIGlmICghZXhwZWN0ZWQgJiYgMSAvIGV4cGVjdGVkID09PSAtSW5maW5pdHkgJiYgMSAv
IHJlc3VsdCAhPT0gLUluZmluaXR5KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0ICE9PSByZXN1bHQ7Cit9
CisKKworLy8gVGVzdCBNYXRoLmNsejMyKCkgd2l0aG91dCBhcmd1bWVudHMuCitmdW5jdGlvbiBv
cGFxdWVDbHozMk5vQXJndW1lbnQoKSB7CisgICAgcmV0dXJuIE1hdGguY2x6MzIoKTsKK30KK25v
SW5saW5lKG9wYXF1ZUNsejMyTm9Bcmd1bWVudCk7Citub09TUkV4aXRGdXp6aW5nKG9wYXF1ZUNs
ejMyTm9Bcmd1bWVudCk7CisKK2Z1bmN0aW9uIHRlc3ROb0FyZ3VtZW50KCkgeworICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAgICAgbGV0IG91dHB1dCA9IG9wYXF1ZUNs
ejMyTm9Bcmd1bWVudCgpOworICAgICAgICBpZiAob3V0cHV0ICE9PSAzMikgeworICAgICAgICAg
ICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVDbHozMk5vQXJndW1lbnQiOworICAgICAgICB9CisgICAg
fQorICAgIGlmIChudW1iZXJPZkRGR0NvbXBpbGVzKG9wYXF1ZUNsejMyTm9Bcmd1bWVudCkgPiAx
KQorICAgICAgICB0aHJvdyAiVGhlIGNhbGwgd2l0aG91dCBhcmd1bWVudHMgc2hvdWxkIG5ldmVy
IGV4aXQuIjsKK30KK3Rlc3ROb0FyZ3VtZW50KCk7CisKKworLy8gVGVzdCBNYXRoLmNsejMyKCkg
d2l0aCBhIHZlcnkgcG9seW1vcnBoaWMgaW5wdXQuIEFsbCB0ZXN0IGNhc2VzIGFyZSBzZWVuIGF0
IGVhY2ggaXRlcmF0aW9uLgorZnVuY3Rpb24gb3BhcXVlQWxsVHlwZXNDbHozMihhcmd1bWVudCkg
eworICAgIHJldHVybiBNYXRoLmNsejMyKGFyZ3VtZW50KTsKK30KK25vSW5saW5lKG9wYXF1ZUFs
bFR5cGVzQ2x6MzIpOworbm9PU1JFeGl0RnV6emluZyhvcGFxdWVBbGxUeXBlc0NsejMyKTsKKwor
ZnVuY3Rpb24gdGVzdEFsbFR5cGVzQ2FsbCgpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFl
MzsgKytpKSB7CisgICAgICAgIGZvciAobGV0IHRlc3RDYXNlSW5wdXQgb2YgdmFsaWRJbnB1dFR5
cGVkVGVzdENhc2VzKSB7CisgICAgICAgICAgICBsZXQgb3V0cHV0ID0gb3BhcXVlQWxsVHlwZXND
bHozMih0ZXN0Q2FzZUlucHV0WzBdKTsKKyAgICAgICAgICAgIGlmICghaXNJZGVudGljYWwob3V0
cHV0LCB0ZXN0Q2FzZUlucHV0WzFdKSkKKyAgICAgICAgICAgICAgICB0aHJvdyAiRmFpbGVkIHRl
c3RBbGxUeXBlc0NhbGwgZm9yIGlucHV0ICIgKyB0ZXN0Q2FzZUlucHV0WzBdICsgIiBleHBlY3Rl
ZCAiICsgdGVzdENhc2VJbnB1dFsxXSArICIgZ290ICIgKyBvdXRwdXQ7CisgICAgICAgIH0KKyAg
ICB9CisgICAgaWYgKG51bWJlck9mREZHQ29tcGlsZXMob3BhcXVlQWxsVHlwZXNDbHozMikgPiAy
KQorICAgICAgICB0aHJvdyAiV2Ugc2hvdWxkIGhhdmUgZGV0ZWN0ZWQgY2x6MzIoKSB3YXMgcG9s
eW1vcnBoaWMgYW5kIGdlbmVyYXRlZCBhIGdlbmVyaWMgdmVyc2lvbi4iOworfQordGVzdEFsbFR5
cGVzQ2FsbCgpOworCisKKy8vIFRlc3QgTWF0aC5jbHozMigpIG9uIGEgY29tcGxldGVseSB0eXBl
ZCBpbnB1dC4gRXZlcnkgY2FsbCBzZWUgb25seSBvbmUgdHlwZS4KK2Z1bmN0aW9uIHRlc3RTaW5n
bGVUeXBlQ2FsbCgpIHsKKyAgICBmb3IgKGxldCB0ZXN0Q2FzZUlucHV0IG9mIHZhbGlkSW5wdXRU
ZXN0Q2FzZXMpIHsKKyAgICAgICAgZXZhbChgCisgICAgICAgICAgICBmdW5jdGlvbiBvcGFxdWVD
bHozMihhcmd1bWVudCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLmNsejMyKGFyZ3Vt
ZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5vSW5saW5lKG9wYXF1ZUNsejMyKTsK
KyAgICAgICAgICAgIG5vT1NSRXhpdEZ1enppbmcob3BhcXVlQ2x6MzIpOworCisgICAgICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFp
c0lkZW50aWNhbChvcGFxdWVDbHozMigke3Rlc3RDYXNlSW5wdXRbMF19KSwgJHt0ZXN0Q2FzZUlu
cHV0WzFdfSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCB0ZXN0U2luZ2xl
VHlwZUNhbGwoKSI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAg
ICAgaWYgKG51bWJlck9mREZHQ29tcGlsZXMob3BhcXVlQ2x6MzIpID4gMSkKKyAgICAgICAgICAg
ICAgICB0aHJvdyAiV2Ugc2hvdWxkIGhhdmUgY29tcGlsZWQgYSBzaW5nbGUgY2x6MzIgZm9yIHRo
ZSBleHBlY3RlZCB0eXBlLiI7CisgICAgICAgIGApOworICAgIH0KK30KK3Rlc3RTaW5nbGVUeXBl
Q2FsbCgpOworCisKKy8vIFRlc3QgTWF0aC5jbHozMigpIG9uIGNvbnN0YW50cworZnVuY3Rpb24g
dGVzdENvbnN0YW50KCkgeworICAgIGZvciAobGV0IHRlc3RDYXNlSW5wdXQgb2YgdmFsaWRJbnB1
dFRlc3RDYXNlcykgeworICAgICAgICBldmFsKGAKKyAgICAgICAgICAgIGZ1bmN0aW9uIG9wYXF1
ZUNsejMyT25Db25zdGFudCgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5jbHozMigk
e3Rlc3RDYXNlSW5wdXRbMF19KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5vSW5saW5l
KG9wYXF1ZUNsejMyT25Db25zdGFudCk7CisgICAgICAgICAgICBub09TUkV4aXRGdXp6aW5nKG9w
YXF1ZUNsejMyT25Db25zdGFudCk7CisKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
MWU0OyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzSWRlbnRpY2FsKG9wYXF1ZUNsejMy
T25Db25zdGFudCgpLCAke3Rlc3RDYXNlSW5wdXRbMV19KSkgeworICAgICAgICAgICAgICAgICAg
ICB0aHJvdyAiRmFpbGVkIHRlc3RDb25zdGFudCgpIjsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBpZiAobnVtYmVyT2ZERkdDb21waWxlcyhvcGFxdWVDbHoz
Mk9uQ29uc3RhbnQpID4gMSkKKyAgICAgICAgICAgICAgICB0aHJvdyAiV2Ugc2hvdWxkIGhhdmUg
Y29tcGlsZWQgYSBzaW5nbGUgY2x6MzIgZm9yIHRoZSBleHBlY3RlZCB0eXBlLiI7CisgICAgICAg
IGApOworICAgIH0KK30KK3Rlc3RDb25zdGFudCgpOworCisKKy8vIFZlcmlmeSB3ZSBjYWxsIHZh
bHVlT2YoKSBleGFjdGx5IG9uY2UgcGVyIGNhbGwuCitmdW5jdGlvbiBvcGFxdWVDbHozMkZvclNp
ZGVFZmZlY3RzKGFyZ3VtZW50KSB7CisgICAgcmV0dXJuIE1hdGguY2x6MzIoYXJndW1lbnQpOwor
fQorbm9JbmxpbmUob3BhcXVlQ2x6MzJGb3JTaWRlRWZmZWN0cyk7Citub09TUkV4aXRGdXp6aW5n
KG9wYXF1ZUNsejMyRm9yU2lkZUVmZmVjdHMpOworCitmdW5jdGlvbiB0ZXN0U2lkZUVmZmVjdCgp
IHsKKyAgICBsZXQgdGVzdE9iamVjdCA9IHsKKyAgICAgICAgY291bnRlcjogMCwKKyAgICAgICAg
dmFsdWVPZjogZnVuY3Rpb24oKSB7ICsrdGhpcy5jb3VudGVyOyByZXR1cm4gMTY7IH0KKyAgICB9
OworICAgIGxldCBjbHozMjE2ID0gTWF0aC5jbHozMigxNik7CisgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCAxZTQ7ICsraSkgeworICAgICAgICBpZiAob3BhcXVlQ2x6MzJGb3JTaWRlRWZmZWN0cyh0
ZXN0T2JqZWN0KSAhPT0gY2x6MzIxNikKKyAgICAgICAgICAgIHRocm93ICJJbmNvcnJlY3QgcmVz
dWx0IGluIHRlc3RTaWRlRWZmZWN0KCkiOworICAgIH0KKyAgICBpZiAodGVzdE9iamVjdC5jb3Vu
dGVyICE9PSAxZTQpCisgICAgICAgIHRocm93ICJGYWlsZWQgdGVzdFNpZGVFZmZlY3QoKSI7Cisg
ICAgaWYgKG51bWJlck9mREZHQ29tcGlsZXMob3BhcXVlQ2x6MzJGb3JTaWRlRWZmZWN0cykgPiAx
KQorICAgICAgICB0aHJvdyAib3BhcXVlQ2x6MzJGb3JTaWRlRWZmZWN0cygpIGlzIHByZWRpY3Rh
YmxlLCBpdCBzaG91bGQgb25seSBiZSBjb21waWxlZCBvbmNlLiI7Cit9Cit0ZXN0U2lkZUVmZmVj
dCgpOworCisKKy8vIFZlcmlmeSBjbHozMigpIGlzIG5vdCBzdWJqZWN0IHRvIENTRSBpZiB0aGUg
YXJndW1lbnQgaGFzIHNpZGUgZWZmZWN0cy4KK2Z1bmN0aW9uIG9wYXF1ZUNsejMyRm9yQ1NFKGFy
Z3VtZW50KSB7CisgICAgcmV0dXJuIE1hdGguY2x6MzIoYXJndW1lbnQpICsgTWF0aC5jbHozMihh
cmd1bWVudCkgKyBNYXRoLmNsejMyKGFyZ3VtZW50KTsKK30KK25vSW5saW5lKG9wYXF1ZUNsejMy
Rm9yQ1NFKTsKK25vT1NSRXhpdEZ1enppbmcob3BhcXVlQ2x6MzJGb3JDU0UpOworCitmdW5jdGlv
biB0ZXN0Q1NFKCkgeworICAgIGxldCB0ZXN0T2JqZWN0ID0geworICAgICAgICBjb3VudGVyOiAw
LAorICAgICAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsgKyt0aGlzLmNvdW50ZXI7IHJldHVybiAx
NjsgfQorICAgIH07CisgICAgbGV0IGNsejMyMTYgPSBNYXRoLmNsejMyKDE2KTsKKyAgICBsZXQg
dGhyZWVDbHozMjE2ID0gY2x6MzIxNiArIGNsejMyMTYgKyBjbHozMjE2OworICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAgICAgaWYgKG9wYXF1ZUNsejMyRm9yQ1NFKHRl
c3RPYmplY3QpICE9PSB0aHJlZUNsejMyMTYpCisgICAgICAgICAgICB0aHJvdyAiSW5jb3JyZWN0
IHJlc3VsdCBpbiB0ZXN0Q1NFKCkiOworICAgIH0KKyAgICBpZiAodGVzdE9iamVjdC5jb3VudGVy
ICE9PSAzZTQpCisgICAgICAgIHRocm93ICJGYWlsZWQgdGVzdENTRSgpIjsKKyAgICBpZiAobnVt
YmVyT2ZERkdDb21waWxlcyhvcGFxdWVDbHozMkZvckNTRSkgPiAxKQorICAgICAgICB0aHJvdyAi
b3BhcXVlQ2x6MzJGb3JDU0UoKSBpcyBwcmVkaWN0YWJsZSwgaXQgc2hvdWxkIG9ubHkgYmUgY29t
cGlsZWQgb25jZS4iOworfQordGVzdENTRSgpOworCisKKy8vIFZlcmlmeSBjbHozMigpIGlzIG5v
dCBzdWJqZWN0IHRvIERDRSBpZiB0aGUgYXJndW1lbnQgaGFzIHNpZGUgZWZmZWN0cy4KK2Z1bmN0
aW9uIG9wYXF1ZUNsejMyRm9yRENFKGFyZ3VtZW50KSB7CisgICAgTWF0aC5jbHozMihhcmd1bWVu
dCk7Cit9Citub0lubGluZShvcGFxdWVDbHozMkZvckRDRSk7Citub09TUkV4aXRGdXp6aW5nKG9w
YXF1ZUNsejMyRm9yRENFKTsKKworZnVuY3Rpb24gdGVzdERDRSgpIHsKKyAgICBsZXQgdGVzdE9i
amVjdCA9IHsKKyAgICAgICAgY291bnRlcjogMCwKKyAgICAgICAgdmFsdWVPZjogZnVuY3Rpb24o
KSB7ICsrdGhpcy5jb3VudGVyOyByZXR1cm4gMTY7IH0KKyAgICB9OworICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAgICAgb3BhcXVlQ2x6MzJGb3JEQ0UodGVzdE9iamVj
dCk7CisgICAgfQorICAgIGlmICh0ZXN0T2JqZWN0LmNvdW50ZXIgIT09IDFlNCkKKyAgICAgICAg
dGhyb3cgIkZhaWxlZCB0ZXN0RENFKCkiOworICAgIGlmIChudW1iZXJPZkRGR0NvbXBpbGVzKG9w
YXF1ZUNsejMyRm9yRENFKSA+IDEpCisgICAgICAgIHRocm93ICJvcGFxdWVDbHozMkZvckRDRSgp
IGlzIHByZWRpY3RhYmxlLCBpdCBzaG91bGQgb25seSBiZSBjb21waWxlZCBvbmNlLiI7Cit9Cit0
ZXN0RENFKCk7CisKKworLy8gVGVzdCBleGNlcHRpb25zIGluIHRoZSBhcmd1bWVudC4KK2Z1bmN0
aW9uIHRlc3RFeGNlcHRpb24oKSB7CisgICAgbGV0IGNvdW50ZXIgPSAwOworICAgIGZ1bmN0aW9u
IG9wYXF1ZUNsejMyV2l0aEV4Y2VwdGlvbihhcmd1bWVudCkgeworICAgICAgICBsZXQgcmVzdWx0
ID0gTWF0aC5jbHozMihhcmd1bWVudCk7CisgICAgICAgICsrY291bnRlcjsKKyAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICB9CisgICAgbm9JbmxpbmUob3BhcXVlQ2x6MzJXaXRoRXhjZXB0aW9u
KTsKKworICAgIGxldCB0ZXN0T2JqZWN0ID0geyB2YWx1ZU9mOiAoKSA9PiB7ICByZXR1cm4gNjQ7
IH0gfTsKKyAgICBsZXQgY2x6MzI2NCA9IE1hdGguY2x6MzIoNjQpOworCisgICAgLy8gV2FybSB1
cCB3aXRob3V0IGV4Y2VwdGlvbi4KKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlMzsgKytpKSB7
CisgICAgICAgIGlmIChvcGFxdWVDbHozMldpdGhFeGNlcHRpb24odGVzdE9iamVjdCkgIT09IGNs
ejMyNjQpCisgICAgICAgICAgICB0aHJvdyAiSW5jb3JyZWN0IHJlc3VsdCBpbiBvcGFxdWVDbHoz
MldpdGhFeGNlcHRpb24oKSI7CisgICAgfQorCisgICAgbGV0IHRlc3RUaHJvd09iamVjdCA9IHsg
dmFsdWVPZjogKCkgPT4geyB0aHJvdyB0ZXN0T2JqZWN0OyByZXR1cm4gNjQ7IH0gfTsKKworICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgMWUyOyArK2kpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICAgIGlmIChvcGFxdWVDbHozMldpdGhFeGNlcHRpb24odGVzdFRocm93T2JqZWN0KSAhPT0gOCkK
KyAgICAgICAgICAgICAgICB0aHJvdyAiVGhpcyBjb2RlIHNob3VsZCBub3QgYmUgcmVhY2hlZCEh
IjsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgaWYgKGUgIT09IHRlc3RPYmpl
Y3QpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyAiV3Jvbmcgb2JqZWN0IHRocm93biBmcm9tIG9w
YXF1ZUNsejMyV2l0aEV4Y2VwdGlvbi4iCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBpZiAoY291bnRlciAhPT0gMWUzKSB7CisgICAgICAgIHRocm93ICJJbnZhbGlkIGNv
dW50IGluIHRlc3RFeGNlcHRpb24oKSI7CisgICAgfQorfQordGVzdEV4Y2VwdGlvbigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287376</attachid>
            <date>2016-08-30 00:12:04 -0700</date>
            <delta_ts>2016-09-06 14:56:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161369-20160830000954.patch</filename>
            <type>text/plain</type>
            <size>20802</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
MzA4ZjgwZDVlYzJmODJlMzc0OTlmMjFkNmYzMGY3ZWIyYzdiNjQ2Li41ZjZkYzNlOTg2Mjc2ZTBm
ZjUyMDQ4OTY2ODEyYTFiNWJiNDI0YjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNi0wOC0yOSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBNYWtlIEFyaXRoQ2x6MzIgd29yayB3aXRoIENlbGwgYXJn
dW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjEzNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
cml0aENsejMyIHdhcyBhbHJlYWR5IHdvcmtpbmcgd2l0aCBhbGwgcHJpbWl0aXZlIHR5cGVzCisg
ICAgICAgIHRoYW5rcyB0byB0aGUgbWFnaWMgb2YgVmFsdWVUb0ludDMyLgorICAgICAgICBUaGlz
IHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgY2VsbCBhcmd1bWVudHMgdGhyb3VnaCBhIGZ1bmN0aW9u
CisgICAgICAgIGNhbGwuCisKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0
U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXpl
Lmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6
CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlv
bnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmg6CisgICAgICAgICogZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUFyaXRoQ2x6MzIpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAg
ICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6Y29tcGlsZUFyaXRoQ2x6MzIpOgorCiAyMDE2LTA4LTI5ICBLZWl0aCBNaWxs
ZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0b1N0cmluZ05hbWUg
Zm9yIFByb3hpZXMgYW5kIGFkZCBzdXBwb3J0IGZvciBub3JtYWwgaW5zdGFuY2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgKaW5kZXggOGUzMjQ0MGYxOGM5MGEzZWRlNzg5NzE0ODRlNTc1ZWRjYzFkZmNjYy4u
NmI1ZTFkZTNjNzNjYTJiYzg0MTM2NDkyYTg0ZmE3NmRjMWRkNTNkNyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaApAQCAtNTQ3LDggKzU0Nyw4IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAKICAgICBj
YXNlIEFyaXRoQ2x6MzI6IHsKICAgICAgICAgSlNWYWx1ZSBvcGVyYW5kID0gZm9yTm9kZShub2Rl
LT5jaGlsZDEoKSkudmFsdWUoKTsKLSAgICAgICAgaWYgKG9wZXJhbmQgJiYgb3BlcmFuZC5pc051
bWJlcigpKSB7Ci0gICAgICAgICAgICB1aW50MzJfdCB2YWx1ZSA9IHRvVUludDMyKG9wZXJhbmQu
YXNOdW1iZXIoKSk7CisgICAgICAgIGlmIChPcHRpb25hbDxkb3VibGU+IG51bWJlciA9IG9wZXJh
bmQudG9OdW1iZXJGcm9tUHJpbWl0aXZlKCkpIHsKKyAgICAgICAgICAgIHVpbnQzMl90IHZhbHVl
ID0gdG9VSW50MzIoKm51bWJlcik7CiAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc051
bWJlcihjbHozMih2YWx1ZSkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IGIxYTc5ZTA0MjU2ODVl
ZTMyZjA0NTg2MGY2YjRiN2RmMWE4NmQxNTYuLmQ1YWRjM2Q0ZjY4MTc1Y2Y5NmI3ZWU0OWU3YjM0
Y2NmM2JlYWQ4N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xv
YmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5o
CkBAIC0xNDksNyArMTQ5LDYgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSog
bm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgcmV0
dXJuOwogICAgICAgICAKICAgICBjYXNlIEFyaXRoSU11bDoKLSAgICBjYXNlIEFyaXRoQ2x6MzI6
CiAgICAgY2FzZSBBcml0aE1pbjoKICAgICBjYXNlIEFyaXRoTWF4OgogICAgIGNhc2UgQXJpdGhQ
b3c6CkBAIC0yMDYsNiArMjA1LDE1IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5v
ZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBBcml0aENsejMyOgorICAgICAgICBpZiAo
bm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IEludDMyVXNlIHx8IG5vZGUtPmNoaWxkMSgpLnVz
ZUtpbmQoKSA9PSBLbm93bkludDMyVXNlKQorICAgICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2Rl
KSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmVhZChXb3JsZCk7CisgICAgICAgICAg
ICB3cml0ZShIZWFwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisKICAgICBjYXNlIEJp
dEFuZDoKICAgICBjYXNlIEJpdE9yOgogICAgIGNhc2UgQml0WG9yOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggOGRiMjY4ZGU5Nzg0OTgxMmNhNTYy
NjljODQ5NDgzYjI3YmY4NzdiMi4uMGVlMjhmNTc0MTE0NzA5NjAyMjQ4NjMwOWMyM2Q2MDMxZjI3
Mzc2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBA
IC0xMjYsOCArMTI2LDExIEBAIHByaXZhdGU6CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIEFy
aXRoQ2x6MzI6IHsKLSAgICAgICAgICAgIGZpeEludENvbnZlcnRpbmdFZGdlKG5vZGUtPmNoaWxk
MSgpKTsKLSAgICAgICAgICAgIG5vZGUtPnNldEFyaXRoTW9kZShBcml0aDo6VW5jaGVja2VkKTsK
KyAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlTm90Q2VsbCgp
KSB7CisgICAgICAgICAgICAgICAgZml4SW50Q29udmVydGluZ0VkZ2Uobm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRVc2U+KG5v
ZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCA4MzY2MThhMzBi
NTY5MTUxODVhODNjNzk4MTgwNmM0ZWYzMDc3NWY0Li41NTE5M2U0OTY0MWM0OTU2MDA0MzIyYTA3
NzdhMzY1N2JlYjY5NjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5o
CkBAIC0xNDIsNyArMTQyLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAg
IC8qIHRoaXMgaXMgb25seSB0cnVlIGlmIHdlIGRvIHRoZSBvdmVyZmxvdyBjaGVjayAtIGhlbmNl
IHRoZSBuZWVkIHRvIGtlZXAgaXQgYWxpdmUuIE1vcmUgKi9cCiAgICAgLyogZ2VuZXJhbGx5LCB3
ZSBuZWVkIHRvIGtlZXAgYWxpdmUgYW55IG9wZXJhdGlvbiB3aG9zZSBjaGVja3MgY2F1c2UgZmls
dHJhdGlvbiBpbiBBSS4gKi9cCiAgICAgbWFjcm8oQXJpdGhBZGQsIE5vZGVSZXN1bHROdW1iZXIg
fCBOb2RlTXVzdEdlbmVyYXRlKSBcCi0gICAgbWFjcm8oQXJpdGhDbHozMiwgTm9kZVJlc3VsdElu
dDMyKSBcCisgICAgbWFjcm8oQXJpdGhDbHozMiwgTm9kZVJlc3VsdEludDMyIHwgTm9kZU11c3RH
ZW5lcmF0ZSkgXAogICAgIG1hY3JvKEFyaXRoU3ViLCBOb2RlUmVzdWx0TnVtYmVyIHwgTm9kZU11
c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEFyaXRoTmVnYXRlLCBOb2RlUmVzdWx0TnVtYmVyIHwg
Tm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEFyaXRoTXVsLCBOb2RlUmVzdWx0TnVtYmVy
IHwgTm9kZU11c3RHZW5lcmF0ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAKaW5kZXggN2Q0NzVlYzMzMWVlMzc5NjNiMzE1MTg0NGI0MDZjOTU4YWU2NmE1
OC4uYTkwMDQzNGRlNzBmMGIxYjc3NWU4NmM0ZWU5ZWI3NmE4MDM5Y2M5MiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0zMzAsMTAgKzMzMCwyMiBA
QCBkb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aEFicyhFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcAogICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRPcDEpOwogICAgIGRvdWJsZSBhID0gb3AxLnRvTnVtYmVyKGV4ZWMpOwogICAg
IGlmIChVTkxJS0VMWSh2bS0+ZXhjZXB0aW9uKCkpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTVmFsdWUoKSk7CisgICAgICAgIHJldHVybiBQTmFOOwogICAgIHJldHVybiBmYWJz
KGEpOwogfQogCitpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhDbHozMihFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEpCit7CisgICAgVk0qIHZtID0g
JmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7
CisKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICB1
aW50MzJfdCB2YWx1ZSA9IG9wMS50b1VJbnQzMihleGVjKTsKKyAgICBpZiAoVU5MSUtFTFkodm0t
PmV4Y2VwdGlvbigpKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGNsejMyKHZhbHVl
KTsKK30KKwogZG91YmxlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhDb3MoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKQogewogICAgIFZNKiB2bSA9ICZleGVj
LT52bSgpOwpAQCAtMzU0LDcgKzM2Niw3IEBAIGRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkFyaXRoRlJvdW5kKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlCiAgICAg
SlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgZG91YmxlIGEg
PSBvcDEudG9OdW1iZXIoZXhlYyk7CiAgICAgaWYgKFVOTElLRUxZKHZtLT5leGNlcHRpb24oKSkp
Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKKyAgICAgICAgcmV0
dXJuIFBOYU47CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihhKTsKIH0KIApAQCAtMzY2
LDcgKzM3OCw3IEBAIGRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoTG9nKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wCiAgICAgSlNWYWx1ZSBvcDEgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIo
ZXhlYyk7CiAgICAgaWYgKFVOTElLRUxZKHZtLT5leGNlcHRpb24oKSkpCi0gICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIFBOYU47CiAgICAg
cmV0dXJuIGxvZyhhKTsKIH0KIApAQCAtMzc4LDcgKzM5MCw3IEBAIGRvdWJsZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkFyaXRoU2luKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wCiAgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAg
ICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7CiAgICAgaWYgKFVOTElLRUxZKHZtLT5l
eGNlcHRpb24oKSkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsK
KyAgICAgICAgcmV0dXJuIFBOYU47CiAgICAgcmV0dXJuIHNpbihhKTsKIH0KIApAQCAtMzkwLDcg
KzQwMiw3IEBAIGRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoU3FydChFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPCiAgICAgSlNWYWx1ZSBvcDEgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhl
Yyk7CiAgICAgaWYgKFVOTElLRUxZKHZtLT5leGNlcHRpb24oKSkpCi0gICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIFBOYU47CiAgICAgcmV0
dXJuIHNxcnQoYSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmgKaW5kZXggYjY2ZmMxZWM3ZGI1MTYxYjIyOTQ2OTVhODIwYjJlN2VhYWM0MWQzMS4uYjBjNGFk
ZmY2MWFjYTYzM2UxNTI1NzdmN2E4YzI2YzVmMzRlZjE2NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKQEAgLTU0LDYgKzU0LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUJpdFVSU2hpZnQoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRO
b3ROdW1iZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25WYWx1ZURpdihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBkb3VibGUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25Bcml0aEFicyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxKSBXVEZfSU5URVJOQUw7CitpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
QXJpdGhDbHozMihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKSBXVEZfSU5U
RVJOQUw7CiBkb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aENvcyhFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKSBXVEZfSU5URVJOQUw7CiBkb3VibGUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Bcml0aEZSb3VuZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxKSBXVEZfSU5URVJOQUw7CiBkb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25B
cml0aExvZyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKSBXVEZfSU5URVJO
QUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CmluZGV4IGYwODI1ZDU2MzMzYjc4YjQwN2Y1ODAzNDZmMTUzNTE2MjBmOGRmYTkuLmUwMzdhNjEy
YzJkYTQyYmFkNTJjMzRmZmJiODVhZDk2Y2Q3MWVkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0zOTE3LDEyICszOTE3LDIyIEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aEFicyhOb2RlKiBub2RlKQogCiB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhDbHozMihOb2RlKiBub2RlKQogewotICAgIEFT
U0VSVF9XSVRIX01FU1NBR0Uobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IEludDMyVXNlIHx8
IG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBLbm93bkludDMyVXNlLCAiVGhlIEZpeHVwIHBo
YXNlIHNob3VsZCBoYXZlIGVuZm9yY2VkIGEgSW50MzIgb3BlcmFuZC4iKTsKLSAgICBTcGVjdWxh
dGVJbnQzMk9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgIEdQUlRlbXBv
cmFyeSByZXN1bHQodGhpcywgUmV1c2UsIHZhbHVlKTsKLSAgICBHUFJSZWcgdmFsdWVSZWcgPSB2
YWx1ZS5ncHIoKTsKKyAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IEludDMyVXNl
IHx8IG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBLbm93bkludDMyVXNlKSB7CisgICAgICAg
IFNwZWN1bGF0ZUludDMyT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAg
ICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIHZhbHVlKTsKKyAgICAgICAgR1BS
UmVnIHZhbHVlUmVnID0gdmFsdWUuZ3ByKCk7CisgICAgICAgIEdQUlJlZyByZXN1bHRSZWcgPSBy
ZXN1bHQuZ3ByKCk7CisgICAgICAgIG1faml0LmNvdW50TGVhZGluZ1plcm9zMzIodmFsdWVSZWcs
IHJlc3VsdFJlZyk7CisgICAgICAgIGludDMyUmVzdWx0KHJlc3VsdFJlZywgbm9kZSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgSlNWYWx1ZU9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNo
aWxkMSgpKTsKKyAgICBKU1ZhbHVlUmVncyBvcDFSZWdzID0gb3AxLmpzVmFsdWVSZWdzKCk7Cisg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKICAgICBHUFJSZWcgcmVzdWx0UmVnID0gcmVz
dWx0LmdwcigpOwotICAgIG1faml0LmNvdW50TGVhZGluZ1plcm9zMzIodmFsdWVSZWcsIHJlc3Vs
dFJlZyk7CisgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
bkFyaXRoQ2x6MzIsIHJlc3VsdFJlZywgb3AxUmVncyk7CisgICAgbV9qaXQuZXhjZXB0aW9uQ2hl
Y2soKTsKICAgICBpbnQzMlJlc3VsdChyZXN1bHRSZWcsIG5vZGUpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggYjlhOGQwZjA4NmE2
MTI5M2Q2YTVhYWE4YzMxNzAxYjkyY2EwMzg4OS4uZjFiYTVjYTQyZGU4ZjZhZjc0NzAwMTJmZGI2
YzFlN2M5ZTA4Njg3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaApAQCAtMTY3MSw2ICsxNjcxLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGFwcGVuZENhbGwob3BlcmF0aW9uKTsKICAgICB9CiAKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwg
SlNWYWx1ZVJlZ3MgYXJnMSkKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShhcmcxLnBheWxvYWRHUFIoKSk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxs
U2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKKyAgICB9CisKICAgICBKSVRDb21waWxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKWlogb3BlcmF0aW9uLCBHUFJSZWcg
cmVzdWx0LCBHUFJSZWcgYXJnMSwgdW5zaWduZWQgYXJnMiwgdW5zaWduZWQgYXJnMykKICAgICB7
CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBUcnVzdGVk
SW1tMzIoYXJnMiksIFRydXN0ZWRJbW0zMihhcmczKSk7CkBAIC0yMTEyLDcgKzIxMTgsMTEgQEAg
cHVibGljOgogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8z
MkJJVF9EVU1NWV9BUkcgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCksIGFyZzIsIEVB
QklfMzJCSVRfRFVNTVlfQVJHIGFyZzMucGF5bG9hZEdQUigpLCBhcmczLnRhZ0dQUigpKTsKICAg
ICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOwogICAg
IH0KLQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25f
RUogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxKQorICAgIHsKKyAg
ICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlf
QVJHICBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSk7CisgICAgICAgIHJldHVybiBh
cHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKKyAgICB9CiAgICAgSklUQ29t
cGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9FSlpaIG9wZXJhdGlvbiwg
R1BSUmVnIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgdW5zaWduZWQgYXJnMiwgdW5zaWduZWQg
YXJnMykKICAgICB7CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShF
QUJJXzMyQklUX0RVTU1ZX0FSRyAgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCksIFRy
dXN0ZWRJbW0zMihhcmcyKSwgVHJ1c3RlZEltbTMyKGFyZzMpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCBhN2UyNjgxZjY4MzMwNDcxZGFk
YTAxMjk3ZmNiOTU0ZWUxODNkODRlLi45MWU5N2M3MGU3ZTViN2NjYzExMGIwZmVkMjM4Mjc3ZTlk
MzhlNWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCkBAIC0xNzI2LDggKzE3MjYsMTUgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29tcGlsZUFy
aXRoQ2x6MzIoKQogICAgIHsKLSAgICAgICAgTFZhbHVlIG9wZXJhbmQgPSBsb3dJbnQzMihtX25v
ZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgc2V0SW50MzIobV9vdXQuY3RsejMyKG9wZXJhbmQpKTsK
KyAgICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IEludDMyVXNlIHx8IG1f
bm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IEtub3duSW50MzJVc2UpIHsKKyAgICAgICAgICAg
IExWYWx1ZSBvcGVyYW5kID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAg
ICBzZXRJbnQzMihtX291dC5jdGx6MzIob3BlcmFuZCkpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwgbV9ub2RlLCBtX25vZGUtPmNo
aWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKTsKKyAgICAgICAgTFZhbHVlIGFyZ3VtZW50
ID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIHJlc3VsdCA9
IHZtQ2FsbChJbnQzMiwgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbkFyaXRoQ2x6MzIpLCBtX2Nh
bGxGcmFtZSwgYXJndW1lbnQpOworICAgICAgICBzZXRJbnQzMihyZXN1bHQpOwogICAgIH0KICAg
ICAKICAgICB2b2lkIGNvbXBpbGVBcml0aE11bCgpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5n
ZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc4MTY1ZTczMWMyMWVkOTY1MGZjMTgyMWQ2
ZGYwMzk1MWNjMWE0ZDguLmMxNDY2ZTYwMDIzNzg0ZDE2NjE1YjJjMjZlYTgwMDZmODc4MWIwZDQg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMTQgQEAKIDIwMTYtMDgtMjkgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBh
cHBsZS5jb20+CiAKKyAgICAgICAgW0pTQ10gTWFrZSBBcml0aENsejMyIHdvcmsgd2l0aCBDZWxs
IGFyZ3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYxMzY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBzdHJlc3MvYXJpdGgtY2x6MzItb24tdmFyaW91cy10eXBlcy5qczogQWRkZWQuCisKKzIw
MTYtMDgtMjkgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKICAgICAg
ICAgW0pTQ10gSW1wcm92ZSBBcml0aEFicyB3aXRoIHBvbHltb3JwaGljIGlucHV0CiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEyODYKIApkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvYXJpdGgtY2x6MzItb24tdmFyaW91cy10eXBlcy5qcyBiL0pT
VGVzdHMvc3RyZXNzL2FyaXRoLWNsejMyLW9uLXZhcmlvdXMtdHlwZXMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTAwNjAxYmE4OTdmNTA4ZDUzYWFmOGEwNGQ2ODVlNjkxNzVjMTczYgotLS0gL2Rldi9udWxsCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2FyaXRoLWNsejMyLW9uLXZhcmlvdXMtdHlwZXMuanMKQEAgLTAs
MCArMSwyMzIgQEAKKyJ1c2Ugc3RyaWN0IjsKKworbGV0IHZhbGlkSW5wdXRUZXN0Q2FzZXMgPSBb
CisgICAgLy8gaW5wdXQgYXMgc3RyaW5nLCBleHBlY3RlZCByZXN1bHQgYXMgc3RyaW5nLgorICAg
IFsidW5kZWZpbmVkIiwgIjMyIl0sCisgICAgWyJudWxsIiwgIjMyIl0sCisgICAgWyIwIiwgIjMy
Il0sCisgICAgWyItMC4iLCAiMzIiXSwKKyAgICBbIjQiLCAiMjkiXSwKKyAgICBbIk1hdGguUEki
LCAiMzAiXSwKKyAgICBbIkluZmluaXR5IiwgIjMyIl0sCisgICAgWyItSW5maW5pdHkiLCAiMzIi
XSwKKyAgICBbIk5hTiIsICIzMiJdLAorICAgIFsiXCJXZWJLaXRcIiIsICIzMiJdLAorICAgIFsi
XCI0XCIiLCAiMjkiXSwKKyAgICBbInsgdmFsdWVPZjogKCkgPT4geyByZXR1cm4gNDsgfSB9Iiwg
IjI5Il0sCitdOworCitsZXQgdmFsaWRJbnB1dFR5cGVkVGVzdENhc2VzID0gdmFsaWRJbnB1dFRl
c3RDYXNlcy5tYXAoKGVsZW1lbnQpID0+IHsgcmV0dXJuIFtldmFsKCIoIiArIGVsZW1lbnRbMF0g
KyAiKSIpLCBldmFsKGVsZW1lbnRbMV0pXSB9KTsKKworZnVuY3Rpb24gaXNJZGVudGljYWwocmVz
dWx0LCBleHBlY3RlZCkKK3sKKyAgICBpZiAoZXhwZWN0ZWQgPT09IGV4cGVjdGVkKSB7CisgICAg
ICAgIGlmIChyZXN1bHQgIT09IGV4cGVjdGVkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBpZiAoIWV4cGVjdGVkICYmIDEgLyBleHBlY3RlZCA9PT0gLUluZmluaXR5ICYmIDEg
LyByZXN1bHQgIT09IC1JbmZpbml0eSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdCAhPT0gcmVzdWx0Owor
fQorCisKKy8vIFRlc3QgTWF0aC5jbHozMigpIHdpdGhvdXQgYXJndW1lbnRzLgorZnVuY3Rpb24g
b3BhcXVlQ2x6MzJOb0FyZ3VtZW50KCkgeworICAgIHJldHVybiBNYXRoLmNsejMyKCk7Cit9Citu
b0lubGluZShvcGFxdWVDbHozMk5vQXJndW1lbnQpOworbm9PU1JFeGl0RnV6emluZyhvcGFxdWVD
bHozMk5vQXJndW1lbnQpOworCitmdW5jdGlvbiB0ZXN0Tm9Bcmd1bWVudCgpIHsKKyAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgIGxldCBvdXRwdXQgPSBvcGFxdWVD
bHozMk5vQXJndW1lbnQoKTsKKyAgICAgICAgaWYgKG91dHB1dCAhPT0gMzIpIHsKKyAgICAgICAg
ICAgIHRocm93ICJGYWlsZWQgb3BhcXVlQ2x6MzJOb0FyZ3VtZW50IjsKKyAgICAgICAgfQorICAg
IH0KKyAgICBpZiAobnVtYmVyT2ZERkdDb21waWxlcyhvcGFxdWVDbHozMk5vQXJndW1lbnQpID4g
MSkKKyAgICAgICAgdGhyb3cgIlRoZSBjYWxsIHdpdGhvdXQgYXJndW1lbnRzIHNob3VsZCBuZXZl
ciBleGl0LiI7Cit9Cit0ZXN0Tm9Bcmd1bWVudCgpOworCisKKy8vIFRlc3QgTWF0aC5jbHozMigp
IHdpdGggYSB2ZXJ5IHBvbHltb3JwaGljIGlucHV0LiBBbGwgdGVzdCBjYXNlcyBhcmUgc2VlbiBh
dCBlYWNoIGl0ZXJhdGlvbi4KK2Z1bmN0aW9uIG9wYXF1ZUFsbFR5cGVzQ2x6MzIoYXJndW1lbnQp
IHsKKyAgICByZXR1cm4gTWF0aC5jbHozMihhcmd1bWVudCk7Cit9Citub0lubGluZShvcGFxdWVB
bGxUeXBlc0NsejMyKTsKK25vT1NSRXhpdEZ1enppbmcob3BhcXVlQWxsVHlwZXNDbHozMik7CisK
K2Z1bmN0aW9uIHRlc3RBbGxUeXBlc0NhbGwoKSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAx
ZTM7ICsraSkgeworICAgICAgICBmb3IgKGxldCB0ZXN0Q2FzZUlucHV0IG9mIHZhbGlkSW5wdXRU
eXBlZFRlc3RDYXNlcykgeworICAgICAgICAgICAgbGV0IG91dHB1dCA9IG9wYXF1ZUFsbFR5cGVz
Q2x6MzIodGVzdENhc2VJbnB1dFswXSk7CisgICAgICAgICAgICBpZiAoIWlzSWRlbnRpY2FsKG91
dHB1dCwgdGVzdENhc2VJbnB1dFsxXSkpCisgICAgICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCB0
ZXN0QWxsVHlwZXNDYWxsIGZvciBpbnB1dCAiICsgdGVzdENhc2VJbnB1dFswXSArICIgZXhwZWN0
ZWQgIiArIHRlc3RDYXNlSW5wdXRbMV0gKyAiIGdvdCAiICsgb3V0cHV0OworICAgICAgICB9Cisg
ICAgfQorICAgIGlmIChudW1iZXJPZkRGR0NvbXBpbGVzKG9wYXF1ZUFsbFR5cGVzQ2x6MzIpID4g
MikKKyAgICAgICAgdGhyb3cgIldlIHNob3VsZCBoYXZlIGRldGVjdGVkIGNsejMyKCkgd2FzIHBv
bHltb3JwaGljIGFuZCBnZW5lcmF0ZWQgYSBnZW5lcmljIHZlcnNpb24uIjsKK30KK3Rlc3RBbGxU
eXBlc0NhbGwoKTsKKworCisvLyBUZXN0IE1hdGguY2x6MzIoKSBvbiBhIGNvbXBsZXRlbHkgdHlw
ZWQgaW5wdXQuIEV2ZXJ5IGNhbGwgc2VlIG9ubHkgb25lIHR5cGUuCitmdW5jdGlvbiB0ZXN0U2lu
Z2xlVHlwZUNhbGwoKSB7CisgICAgZm9yIChsZXQgdGVzdENhc2VJbnB1dCBvZiB2YWxpZElucHV0
VGVzdENhc2VzKSB7CisgICAgICAgIGV2YWwoYAorICAgICAgICAgICAgZnVuY3Rpb24gb3BhcXVl
Q2x6MzIoYXJndW1lbnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5jbHozMihhcmd1
bWVudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBub0lubGluZShvcGFxdWVDbHozMik7
CisgICAgICAgICAgICBub09TUkV4aXRGdXp6aW5nKG9wYXF1ZUNsejMyKTsKKworICAgICAgICAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICgh
aXNJZGVudGljYWwob3BhcXVlQ2x6MzIoJHt0ZXN0Q2FzZUlucHV0WzBdfSksICR7dGVzdENhc2VJ
bnB1dFsxXX0pKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93ICJGYWlsZWQgdGVzdFNpbmds
ZVR5cGVDYWxsKCkiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmIChudW1iZXJPZkRGR0NvbXBpbGVzKG9wYXF1ZUNsejMyKSA+IDEpCisgICAgICAgICAg
ICAgICAgdGhyb3cgIldlIHNob3VsZCBoYXZlIGNvbXBpbGVkIGEgc2luZ2xlIGNsejMyIGZvciB0
aGUgZXhwZWN0ZWQgdHlwZS4iOworICAgICAgICBgKTsKKyAgICB9Cit9Cit0ZXN0U2luZ2xlVHlw
ZUNhbGwoKTsKKworCisvLyBUZXN0IE1hdGguY2x6MzIoKSBvbiBjb25zdGFudHMKK2Z1bmN0aW9u
IHRlc3RDb25zdGFudCgpIHsKKyAgICBmb3IgKGxldCB0ZXN0Q2FzZUlucHV0IG9mIHZhbGlkSW5w
dXRUZXN0Q2FzZXMpIHsKKyAgICAgICAgZXZhbChgCisgICAgICAgICAgICBmdW5jdGlvbiBvcGFx
dWVDbHozMk9uQ29uc3RhbnQoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGguY2x6MzIo
JHt0ZXN0Q2FzZUlucHV0WzBdfSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBub0lubGlu
ZShvcGFxdWVDbHozMk9uQ29uc3RhbnQpOworICAgICAgICAgICAgbm9PU1JFeGl0RnV6emluZyhv
cGFxdWVDbHozMk9uQ29uc3RhbnQpOworCisgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IDFlNDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc0lkZW50aWNhbChvcGFxdWVDbHoz
Mk9uQ29uc3RhbnQoKSwgJHt0ZXN0Q2FzZUlucHV0WzFdfSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgIkZhaWxlZCB0ZXN0Q29uc3RhbnQoKSI7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG51bWJlck9mREZHQ29tcGlsZXMob3BhcXVlQ2x6
MzJPbkNvbnN0YW50KSA+IDEpCisgICAgICAgICAgICAgICAgdGhyb3cgIldlIHNob3VsZCBoYXZl
IGNvbXBpbGVkIGEgc2luZ2xlIGNsejMyIGZvciB0aGUgZXhwZWN0ZWQgdHlwZS4iOworICAgICAg
ICBgKTsKKyAgICB9Cit9Cit0ZXN0Q29uc3RhbnQoKTsKKworCisvLyBWZXJpZnkgd2UgY2FsbCB2
YWx1ZU9mKCkgZXhhY3RseSBvbmNlIHBlciBjYWxsLgorZnVuY3Rpb24gb3BhcXVlQ2x6MzJGb3JT
aWRlRWZmZWN0cyhhcmd1bWVudCkgeworICAgIHJldHVybiBNYXRoLmNsejMyKGFyZ3VtZW50KTsK
K30KK25vSW5saW5lKG9wYXF1ZUNsejMyRm9yU2lkZUVmZmVjdHMpOworbm9PU1JFeGl0RnV6emlu
ZyhvcGFxdWVDbHozMkZvclNpZGVFZmZlY3RzKTsKKworZnVuY3Rpb24gdGVzdFNpZGVFZmZlY3Qo
KSB7CisgICAgbGV0IHRlc3RPYmplY3QgPSB7CisgICAgICAgIGNvdW50ZXI6IDAsCisgICAgICAg
IHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyArK3RoaXMuY291bnRlcjsgcmV0dXJuIDE2OyB9CisgICAg
fTsKKyAgICBsZXQgY2x6MzIxNiA9IE1hdGguY2x6MzIoMTYpOworICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgMWU0OyArK2kpIHsKKyAgICAgICAgaWYgKG9wYXF1ZUNsejMyRm9yU2lkZUVmZmVjdHMo
dGVzdE9iamVjdCkgIT09IGNsejMyMTYpCisgICAgICAgICAgICB0aHJvdyAiSW5jb3JyZWN0IHJl
c3VsdCBpbiB0ZXN0U2lkZUVmZmVjdCgpIjsKKyAgICB9CisgICAgaWYgKHRlc3RPYmplY3QuY291
bnRlciAhPT0gMWU0KQorICAgICAgICB0aHJvdyAiRmFpbGVkIHRlc3RTaWRlRWZmZWN0KCkiOwor
ICAgIGlmIChudW1iZXJPZkRGR0NvbXBpbGVzKG9wYXF1ZUNsejMyRm9yU2lkZUVmZmVjdHMpID4g
MSkKKyAgICAgICAgdGhyb3cgIm9wYXF1ZUNsejMyRm9yU2lkZUVmZmVjdHMoKSBpcyBwcmVkaWN0
YWJsZSwgaXQgc2hvdWxkIG9ubHkgYmUgY29tcGlsZWQgb25jZS4iOworfQordGVzdFNpZGVFZmZl
Y3QoKTsKKworCisvLyBWZXJpZnkgY2x6MzIoKSBpcyBub3Qgc3ViamVjdCB0byBDU0UgaWYgdGhl
IGFyZ3VtZW50IGhhcyBzaWRlIGVmZmVjdHMuCitmdW5jdGlvbiBvcGFxdWVDbHozMkZvckNTRShh
cmd1bWVudCkgeworICAgIHJldHVybiBNYXRoLmNsejMyKGFyZ3VtZW50KSArIE1hdGguY2x6MzIo
YXJndW1lbnQpICsgTWF0aC5jbHozMihhcmd1bWVudCk7Cit9Citub0lubGluZShvcGFxdWVDbHoz
MkZvckNTRSk7Citub09TUkV4aXRGdXp6aW5nKG9wYXF1ZUNsejMyRm9yQ1NFKTsKKworZnVuY3Rp
b24gdGVzdENTRSgpIHsKKyAgICBsZXQgdGVzdE9iamVjdCA9IHsKKyAgICAgICAgY291bnRlcjog
MCwKKyAgICAgICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7ICsrdGhpcy5jb3VudGVyOyByZXR1cm4g
MTY7IH0KKyAgICB9OworICAgIGxldCBjbHozMjE2ID0gTWF0aC5jbHozMigxNik7CisgICAgbGV0
IHRocmVlQ2x6MzIxNiA9IGNsejMyMTYgKyBjbHozMjE2ICsgY2x6MzIxNjsKKyAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgIGlmIChvcGFxdWVDbHozMkZvckNTRSh0
ZXN0T2JqZWN0KSAhPT0gdGhyZWVDbHozMjE2KQorICAgICAgICAgICAgdGhyb3cgIkluY29ycmVj
dCByZXN1bHQgaW4gdGVzdENTRSgpIjsKKyAgICB9CisgICAgaWYgKHRlc3RPYmplY3QuY291bnRl
ciAhPT0gM2U0KQorICAgICAgICB0aHJvdyAiRmFpbGVkIHRlc3RDU0UoKSI7CisgICAgaWYgKG51
bWJlck9mREZHQ29tcGlsZXMob3BhcXVlQ2x6MzJGb3JDU0UpID4gMSkKKyAgICAgICAgdGhyb3cg
Im9wYXF1ZUNsejMyRm9yQ1NFKCkgaXMgcHJlZGljdGFibGUsIGl0IHNob3VsZCBvbmx5IGJlIGNv
bXBpbGVkIG9uY2UuIjsKK30KK3Rlc3RDU0UoKTsKKworCisvLyBWZXJpZnkgY2x6MzIoKSBpcyBu
b3Qgc3ViamVjdCB0byBEQ0UgaWYgdGhlIGFyZ3VtZW50IGhhcyBzaWRlIGVmZmVjdHMuCitmdW5j
dGlvbiBvcGFxdWVDbHozMkZvckRDRShhcmd1bWVudCkgeworICAgIE1hdGguY2x6MzIoYXJndW1l
bnQpOworfQorbm9JbmxpbmUob3BhcXVlQ2x6MzJGb3JEQ0UpOworbm9PU1JFeGl0RnV6emluZyhv
cGFxdWVDbHozMkZvckRDRSk7CisKK2Z1bmN0aW9uIHRlc3REQ0UoKSB7CisgICAgbGV0IHRlc3RP
YmplY3QgPSB7CisgICAgICAgIGNvdW50ZXI6IDAsCisgICAgICAgIHZhbHVlT2Y6IGZ1bmN0aW9u
KCkgeyArK3RoaXMuY291bnRlcjsgcmV0dXJuIDE2OyB9CisgICAgfTsKKyAgICBmb3IgKGxldCBp
ID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgIG9wYXF1ZUNsejMyRm9yRENFKHRlc3RPYmpl
Y3QpOworICAgIH0KKyAgICBpZiAodGVzdE9iamVjdC5jb3VudGVyICE9PSAxZTQpCisgICAgICAg
IHRocm93ICJGYWlsZWQgdGVzdERDRSgpIjsKKyAgICBpZiAobnVtYmVyT2ZERkdDb21waWxlcyhv
cGFxdWVDbHozMkZvckRDRSkgPiAxKQorICAgICAgICB0aHJvdyAib3BhcXVlQ2x6MzJGb3JEQ0Uo
KSBpcyBwcmVkaWN0YWJsZSwgaXQgc2hvdWxkIG9ubHkgYmUgY29tcGlsZWQgb25jZS4iOworfQor
dGVzdERDRSgpOworCisKKy8vIFRlc3QgZXhjZXB0aW9ucyBpbiB0aGUgYXJndW1lbnQuCitmdW5j
dGlvbiB0ZXN0RXhjZXB0aW9uKCkgeworICAgIGxldCBjb3VudGVyID0gMDsKKyAgICBmdW5jdGlv
biBvcGFxdWVDbHozMldpdGhFeGNlcHRpb24oYXJndW1lbnQpIHsKKyAgICAgICAgbGV0IHJlc3Vs
dCA9IE1hdGguY2x6MzIoYXJndW1lbnQpOworICAgICAgICArK2NvdW50ZXI7CisgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgfQorICAgIG5vSW5saW5lKG9wYXF1ZUNsejMyV2l0aEV4Y2VwdGlv
bik7CisKKyAgICBsZXQgdGVzdE9iamVjdCA9IHsgdmFsdWVPZjogKCkgPT4geyAgcmV0dXJuIDY0
OyB9IH07CisgICAgbGV0IGNsejMyNjQgPSBNYXRoLmNsejMyKDY0KTsKKworICAgIC8vIFdhcm0g
dXAgd2l0aG91dCBleGNlcHRpb24uCisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxZTM7ICsraSkg
eworICAgICAgICBpZiAob3BhcXVlQ2x6MzJXaXRoRXhjZXB0aW9uKHRlc3RPYmplY3QpICE9PSBj
bHozMjY0KQorICAgICAgICAgICAgdGhyb3cgIkluY29ycmVjdCByZXN1bHQgaW4gb3BhcXVlQ2x6
MzJXaXRoRXhjZXB0aW9uKCkiOworICAgIH0KKworICAgIGxldCB0ZXN0VGhyb3dPYmplY3QgPSB7
IHZhbHVlT2Y6ICgpID0+IHsgdGhyb3cgdGVzdE9iamVjdDsgcmV0dXJuIDY0OyB9IH07CisKKyAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IDFlMjsgKytpKSB7CisgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICBpZiAob3BhcXVlQ2x6MzJXaXRoRXhjZXB0aW9uKHRlc3RUaHJvd09iamVjdCkgIT09IDgp
CisgICAgICAgICAgICAgICAgdGhyb3cgIlRoaXMgY29kZSBzaG91bGQgbm90IGJlIHJlYWNoZWQh
ISI7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGlmIChlICE9PSB0ZXN0T2Jq
ZWN0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgIldyb25nIG9iamVjdCB0aHJvd24gZnJvbSBv
cGFxdWVDbHozMldpdGhFeGNlcHRpb24uIgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fQorCisgICAgaWYgKGNvdW50ZXIgIT09IDFlMykgeworICAgICAgICB0aHJvdyAiSW52YWxpZCBj
b3VudCBpbiB0ZXN0RXhjZXB0aW9uKCkiOworICAgIH0KK30KK3Rlc3RFeGNlcHRpb24oKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>