<?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>75944</bug_id>
          
          <creation_ts>2012-01-10 01:03:10 -0800</creation_ts>
          <short_desc>Support the [Supplemental] IDL on methods</short_desc>
          <delta_ts>2012-01-10 15:49:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>72138</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>532873</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-10 01:03:10 -0800</bug_when>
    <thetext>Currently the [Supplemental] IDL is supported on attributes but not supported on methods. We should support it.

interface [Supplemental=XXXX]
YYYY {
    attribute int a;  // Supported
    void f();  // Not supported
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532882</commentid>
    <comment_count>1</comment_count>
      <attachid>121811</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-10 01:23:57 -0800</bug_when>
    <thetext>Created attachment 121811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532883</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-10 01:25:45 -0800</bug_when>
    <thetext>Attachment 121811 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:80:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:85:  Local variables should never be PassRefPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 2 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533160</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-10 10:08:11 -0800</bug_when>
    <thetext>I thought this was already working:

http://trac.webkit.org/browser/trunk/Source/WebCore/Modules/intents/NavigatorIntents.idl#L26
http://trac.webkit.org/browser/trunk/Source/WebCore/Modules/intents/NavigatorIntents.cpp#L52</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533428</commentid>
    <comment_count>4</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-10 15:48:59 -0800</bug_when>
    <thetext>Committed r104643: &lt;http://trac.webkit.org/changeset/104643&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533431</commentid>
    <comment_count>5</comment_count>
      <attachid>121811</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-10 15:49:53 -0800</bug_when>
    <thetext>Comment on attachment 121811
Patch

Committed manually to avoid style check error. Thanks.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121811</attachid>
            <date>2012-01-10 01:23:57 -0800</date>
            <delta_ts>2012-01-10 15:49:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75944-20120110182356.patch</filename>
            <type>text/plain</type>
            <size>34754</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0NTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE3NzVlNTc4NTc0OWYy
NWNiMzljMTU1ZmY3NjE5ZGNhN2I1M2M4Ni4uYTYzY2ZlMDUzMmU1NzQxZjNiMTUzZjcxOTk5NjJl
MDhlZjRjN2YxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTAxLTEwICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBTdXBwb3J0IHRoZSBb
U3VwcGxlbWVudGFsXSBJREwgb24gbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGUgc3BlYyBmb3IgdGhlIFtTdXBwbGVtZW50YWxdIElETDoK
KyAgICAgICAgaHR0cDovL2Rldi53My5vcmcvMjAwNi93ZWJhcGkvV2ViSURMLyNkZm4tc3VwcGxl
bWVudGFsLWludGVyZmFjZQorCisgICAgICAgIEN1cnJlbnRseSB0aGUgW1N1cHBsZW1lbnRhbF0g
SURMIGlzIHN1cHBvcnRlZCBvbiBhdHRyaWJ1dGVzIGJ1dCBub3Qgc3VwcG9ydGVkCisgICAgICAg
IG9uIG1ldGhvZHMuIFRoaXMgcGF0Y2ggbWFrZXMgYSBjaGFuZ2UgdG8gc3VwcG9ydCBpdC4KKwor
ICAgICAgICBTcGVjaWZpY2FsbHksIGFzc3VtZSB0aGUgZm9sbG93aW5nIElETDoKKworICAgICAg
ICAgICAgaW50ZXJmYWNlIFtTdXBwbGVtZW50YWw9WF0gWSB7CisgICAgICAgICAgICAgICAgdm9p
ZCBmdW5jKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgVGhlbiB0aGUgY29kZSBnZW5lcmF0
b3IgZ2VuZXJhdGVzIHRoZSBmb2xsb3dpbmcgVjhYLmNwcC4KKworICAgICAgICAgICAgdm9pZCBm
dW5jQ2FsbGJhY2soQXJndW1lbnRzJiBhcmdzKSB7CisgICAgICAgICAgICAgICAgWCogaW1wID0g
VjhYOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKKyAgICAgICAgICAgICAgICBZOjpmdW5jKGlt
cCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgU2ltaWxhciBjb2RlIGlzIGFsc28gZ2VuZXJh
dGVkIGZvciBKUywgT2JqQywgR09iamVjdCBhbmQgQ1BQIGJpbmRpbmdzLgorCisgICAgICAgIFRl
c3Q6IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0U3VwcGxlbWVudGFsLmlkbAorCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ1BQLnBtOiBNb2RpZmllZCBhcyBkZXNj
cmliZWQgYWJvdmUuCisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtOiBEaXR0by4KKyAgICAg
ICAgKEdlbmVyYXRlRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtOiBEaXR0by4KKyAgICAgICAgKEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOiBEaXR0by4K
KyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOiBEaXR0by4KKyAgICAgICAgKEdlbmVyYXRlRnVuY3Rp
b25DYWxsU3RyaW5nKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRp
bmdzLnBsOiBEaXR0by4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0U3Vw
cGxlbWVudGFsLmlkbDogQWRkZWQgdGVzdCBjYXNlcyBmb3IgW1N1cHBsZW1lbnRhbF0gbWV0aG9k
cy4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdEludGVy
ZmFjZS5jcHA6IFVwZGF0ZWQgdGhlIHRlc3QgcmVzdWx0LgorICAgICAgICAoV2ViRE9NVGVzdElu
dGVyZmFjZTo6c3VwcGxlbWVudGFsTWV0aG9kMSk6CisgICAgICAgIChXZWJET01UZXN0SW50ZXJm
YWNlOjpzdXBwbGVtZW50YWxNZXRob2QyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvQ1BQL1dlYkRPTVRlc3RJbnRlcmZhY2UuaDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5jcHA6IERpdHRvLgor
ICAgICAgICAod2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9zdXBwbGVtZW50YWxfbWV0aG9kMSk6
CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX3N1cHBsZW1lbnRhbF9tZXRob2Qy
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0
SW50ZXJmYWNlLmg6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVy
ZmFjZVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
VGVzdEludGVyZmFjZVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFs
TWV0aG9kMSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5j
dGlvblN1cHBsZW1lbnRhbE1ldGhvZDIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbnRlcmZhY2UuaDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L09iakMvRE9NVGVzdEludGVyZmFjZS5oOiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLm1tOiBEaXR0by4KKyAgICAgICAg
KC1bRE9NVGVzdEludGVyZmFjZSBzdXBwbGVtZW50YWxNZXRob2QxXSk6CisgICAgICAgICgtW0RP
TVRlc3RJbnRlcmZhY2Ugc3VwcGxlbWVudGFsTWV0aG9kMjpvYmpBcmc6XSk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHA6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6VGVzdEludGVyZmFjZUludGVybmFsOjpzdXBwbGVtZW50YWxNZXRob2Qx
Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdEludGVyZmFjZUludGVybmFsOjpzdXBw
bGVtZW50YWxNZXRob2QyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Q29uZmlndXJlVjhU
ZXN0SW50ZXJmYWNlVGVtcGxhdGUpOgorCiAyMDEyLTAxLTA5ICBTaGVyaWZmIEJvdCAgPHdlYmtp
dC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMTA0NTA3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yQ1BQLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yQ1BQLnBtCmluZGV4IGU4NTlhNTY2ZTg4MWIwNzE3MDVkOTk2NGVkMDVhZGFjOWFi
ZTE5NDkuLmQzMTQ1OTI5ZjA3MGIyZDI3MWE2OTE0NGRlYjYxZDgwZmYxMzhjZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNQUC5wbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JDUFAucG0K
QEAgLTg0OCw3ICs4NDgsMTYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAg
ICAgICAgbXkgQGZ1bmN0aW9uQ29udGVudCA9ICgpOwogICAgICAgICAgICAgcHVzaChAcGFyYW1l
dGVyTmFtZXMsICJlYyIpIGlmICRyYWlzZXNFeGNlcHRpb25zOwotICAgICAgICAgICAgbXkgJGNv
bnRlbnQgPSAiaW1wbCgpLT4iIC4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGZ1bmN0aW9u
TmFtZSkgLiAiKCIgLiBqb2luKCIsICIsIEBwYXJhbWV0ZXJOYW1lcykgLiAiKSI7IAorCisgICAg
ICAgICAgICBteSAkY29udGVudDsKKyAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifSkgeworICAgICAgICAgICAg
ICAgIG15ICRpbXBsZW1lbnRlZEJ5ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In07CisgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRl
c3siJHtpbXBsZW1lbnRlZEJ5fS5oIn0gPSAxOworICAgICAgICAgICAgICAgIHVuc2hpZnQoQHBh
cmFtZXRlck5hbWVzLCAiaW1wbCgpIik7CisgICAgICAgICAgICAgICAgJGNvbnRlbnQgPSAiJHtp
bXBsZW1lbnRlZEJ5fTo6IiAuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRmdW5jdGlvbk5h
bWUpIC4gIigiIC4gam9pbigiLCAiLCBAcGFyYW1ldGVyTmFtZXMpIC4gIikiOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkY29udGVudCA9ICJpbXBsKCktPiIgLiAkY29k
ZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkZnVuY3Rpb25OYW1lKSAuICIoIiAuIGpvaW4oIiwgIiwg
QHBhcmFtZXRlck5hbWVzKSAuICIpIjsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYg
KCRyZXR1cm5UeXBlIGVxICJ2b2lkIikgewogICAgICAgICAgICAgICAgICMgU3BlY2lhbCBjYXNl
ICd2b2lkJyByZXR1cm4gdHlwZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCmluZGV4IGE2ODVmMWYxNzliMzFlOWY2
NmQ4ZTUxMTE4YWY2OGQ0YzQyZGVkMTIuLjcwMmU4ZTZjODRiMzkyYjcyMDg3NDZlYmE3ZWE5NmM2
ZjQ3ZjhiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpAQCAtOTM3LDcgKzkzNywxNSBAQCBFT0YKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICIke2Fzc2lnbn1jb252
ZXJ0VG9VVEY4U3RyaW5nKCR7ZnVuY3Rpb25OYW1lfSgiIC4gam9pbigiLCAiLCBAYXJndW1lbnRz
KSAuICIpKTtcbiI7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkZ2V0dGVyQ29udGVu
dEhlYWQgPSAiJHthc3NpZ259Y29udmVydFRvVVRGOFN0cmluZyhpdGVtLT4ke2Z1bmN0aW9uU2ln
TmFtZX0oIiAuIGpvaW4oIiwgIiwgQGNhbGxJbXBsUGFyYW1zKSAuICIpKTtcbiI7CisgICAgICAg
ICAgICBteSBAYXJndW1lbnRzID0gQGNhbGxJbXBsUGFyYW1zOworICAgICAgICAgICAgaWYgKCRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9
KSB7CisgICAgICAgICAgICAgICAgbXkgJGltcGxlbWVudGVkQnkgPSAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifTsKKyAgICAgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyIke2ltcGxlbWVudGVkQnl9LmgifSA9IDE7CisgICAgICAgICAg
ICAgICAgdW5zaGlmdChAYXJndW1lbnRzLCAiaXRlbSIpOworICAgICAgICAgICAgICAgICRnZXR0
ZXJDb250ZW50SGVhZCA9ICIke2Fzc2lnbn1jb252ZXJ0VG9VVEY4U3RyaW5nKCR7aW1wbGVtZW50
ZWRCeX06OiR7ZnVuY3Rpb25TaWdOYW1lfSgiIC4gam9pbigiLCAiLCBAYXJndW1lbnRzKSAuICIp
KTtcbiI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICRnZXR0ZXJDb250
ZW50SGVhZCA9ICIke2Fzc2lnbn1jb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPiR7ZnVuY3Rpb25T
aWdOYW1lfSgiIC4gam9pbigiLCAiLCBAYXJndW1lbnRzKSAuICIpKTtcbiI7CisgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICAgICAgcHVzaChAY0JvZHksICIgICAgJHtnZXR0ZXJDb250ZW50
SGVhZH0iKTsKICAgICB9IGVsc2UgewpAQCAtOTY4LDcgKzk3NiwxNSBAQCBFT0YKICAgICAgICAg
ICAgICAgICAkY29udGVudEhlYWQgPSAiJHthc3NpZ259JHthc3NpZ25QcmV9JHtmdW5jdGlvbk5h
bWV9KCIgLiBqb2luKCIsICIsIEBhcmd1bWVudHMpIC4gIiR7YXNzaWduUG9zdH0pO1xuIjsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICRjb250ZW50SGVhZCA9
ICIke2Fzc2lnbn0ke2Fzc2lnblByZX1pdGVtLT4ke2Z1bmN0aW9uU2lnTmFtZX0oIiAuIGpvaW4o
IiwgIiwgQGNhbGxJbXBsUGFyYW1zKSAuICIke2Fzc2lnblBvc3R9KTtcbiI7CisgICAgICAgICAg
ICBteSBAYXJndW1lbnRzID0gQGNhbGxJbXBsUGFyYW1zOworICAgICAgICAgICAgaWYgKCRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9KSB7
CisgICAgICAgICAgICAgICAgbXkgJGltcGxlbWVudGVkQnkgPSAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifTsKKyAgICAgICAgICAgICAg
ICAkaW1wbEluY2x1ZGVzeyIke2ltcGxlbWVudGVkQnl9LmgifSA9IDE7CisgICAgICAgICAgICAg
ICAgdW5zaGlmdChAYXJndW1lbnRzLCAiaXRlbSIpOworICAgICAgICAgICAgICAgICRjb250ZW50
SGVhZCA9ICIke2Fzc2lnbn0ke2Fzc2lnblByZX0ke2ltcGxlbWVudGVkQnl9Ojoke2Z1bmN0aW9u
U2lnTmFtZX0oIiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50cykgLiAiJHthc3NpZ25Qb3N0fSk7XG4i
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkY29udGVudEhlYWQgPSAi
JHthc3NpZ259JHthc3NpZ25QcmV9aXRlbS0+JHtmdW5jdGlvblNpZ05hbWV9KCIgLiBqb2luKCIs
ICIsIEBhcmd1bWVudHMpIC4gIiR7YXNzaWduUG9zdH0pO1xuIjsKKyAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAke2NvbnRlbnRIZWFkfSIpOwogICAg
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KaW5kZXggM2NjNjgyZjdkMWVhNjI4YTk1N2EwODJjYjkwNmE2NjJkZmU4M2JkZS4u
MTAxMDZlY2JlNjg2OTk2MjRjNjgyY2I1MTkxYTM5ZTg0N2ViYTA5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI0MjIs
MTYgKzI0MjIsMjAgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgbXkgJGFyZ3NJ
bmRleCA9IDA7CiAgICAgbXkgJGhhc09wdGlvbmFsQXJndW1lbnRzID0gMDsKIAotICAgIG15ICRm
dW5jdGlvbkJhc2UgPSAiIjsKKyAgICBteSBAYXJndW1lbnRzOworICAgIG15ICRmdW5jdGlvbk5h
bWU7CiAgICAgaWYgKCRmdW5jdGlvbi0+aXNTdGF0aWMpIHsKLSAgICAgICAgJGZ1bmN0aW9uQmFz
ZSA9ICIke2ltcGxDbGFzc05hbWV9OjoiOworICAgICAgICAkZnVuY3Rpb25OYW1lID0gIiR7aW1w
bENsYXNzTmFtZX06OiR7ZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWV9IjsKKyAgICB9IGVsc2lm
ICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVk
QnkifSkgeworICAgICAgICBteSAkaW1wbGVtZW50ZWRCeSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9OworICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiJHtpbXBsZW1lbnRlZEJ5fS5oIik7CisgICAgICAgIHVuc2hpZnQoQGFyZ3Vt
ZW50cywgImltcGwiKTsKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICIke2ltcGxlbWVudGVkQnl9
Ojoke2Z1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lfSI7CiAgICAgfSBlbHNpZiAoJHN2Z1Byb3Bl
cnR5T3JMaXN0UHJvcGVydHlUeXBlIGFuZCAhJHN2Z0xpc3RQcm9wZXJ0eVR5cGUpIHsKLSAgICAg
ICAgJGZ1bmN0aW9uQmFzZSA9ICJwb2RJbXBsLiI7CisgICAgICAgICRmdW5jdGlvbk5hbWUgPSAi
cG9kSW1wbC4ke2Z1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lfSI7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgJGZ1bmN0aW9uQmFzZSA9ICJpbXBsLT4iOworICAgICAgICAkZnVuY3Rpb25OYW1lID0g
ImltcGwtPiR7ZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWV9IjsKICAgICB9Ci0gICAgbXkgJGZ1
bmN0aW9uTmFtZSA9ICIkZnVuY3Rpb25CYXNlJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lIjsK
LSAgICBteSBAYXJndW1lbnRzOwogCiAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQXJndW1lbnRIYW5kbGluZyJ9IGFuZCAhJGZ1bmN0aW9u
LT5pc1N0YXRpYykgewogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUmVmUHRyPFNj
cmlwdEFyZ3VtZW50cz4gc2NyaXB0QXJndW1lbnRzKGNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVj
LCAkbnVtUGFyYW1ldGVycykpO1xuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQppbmRleCAzNGFiODg3Y2ZkNDk0NGI1MzFk
ZWRhNTU0MjAyMDVlYTA2MmUzODg2Li45MzczOWRhYTkwMWRmODA1NzUxNDdlZmNiOGZkNmQ5Zjdi
MjgzZmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JPYmpDLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvck9iakMucG0KQEAgLTE2MDcsOSArMTYwNywxMyBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgIHNwbGljZShAcGFyYW1ldGVyTmFtZXMsICRjdXJy
ZW50UGFyYW1ldGVyLCAxLCAiJHtwYXJhbU5hbWV9Q29yZS0+cHJvcGVydHlSZWZlcmVuY2UoKSIp
OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBteSAkY29udGVudCA9ICRjb2RlR2VuZXJh
dG9yLT5XS19sY2ZpcnN0KCRmdW5jdGlvbk5hbWUpIC4gIigiIC4gam9pbigiLCAiLCBAcGFyYW1l
dGVyTmFtZXMpIC4gIikiOyAKLQotICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsK
KyAgICAgICAgICAgIG15ICRjb250ZW50OworICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9KSB7CisgICAgICAg
ICAgICAgICAgbXkgJGltcGxlbWVudGVkQnkgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifTsKKyAgICAgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyIke2ltcGxlbWVudGVkQnl9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgdW5zaGlm
dChAcGFyYW1ldGVyTmFtZXMsICRjYWxsZXIpOworICAgICAgICAgICAgICAgICRjb250ZW50ID0g
IiR7aW1wbGVtZW50ZWRCeX06OiIgLiAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkZnVuY3Rp
b25OYW1lKSAuICIoIiAuIGpvaW4oIiwgIiwgQHBhcmFtZXRlck5hbWVzKSAuICIpIjsKKyAgICAg
ICAgICAgIH0gZWxzaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKICAgICAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyJFeGNlcHRpb25Db2RlLmgifSA9IDE7CiAgICAgICAgICAgICAgICAgcHVzaChA
ZnVuY3Rpb25Db250ZW50LCAiICAgIGlmIChJTVBMLT5yb2xlKCkgPT0gV2ViQ29yZTo6QW5pbVZh
bFJvbGUpIHtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAg
ICAgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKFdlYkNvcmU6Ok5PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUik7XG4iKTsKQEAgLTE2MjAsOSArMTYyNCw5IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0
aW9uQ29udGVudCwgIiAgICB9XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNv
bnRlbnQsICIgICAgJHN2Z1Byb3BlcnR5VHlwZSYgcG9kSW1wbCA9IElNUEwtPnByb3BlcnR5UmVm
ZXJlbmNlKCk7XG4iKTsKLSAgICAgICAgICAgICAgICAkY29udGVudCA9ICJwb2RJbXBsLiRjb250
ZW50IjsgCisgICAgICAgICAgICAgICAgJGNvbnRlbnQgPSAicG9kSW1wbC4iIC4gJGNvZGVHZW5l
cmF0b3ItPldLX2xjZmlyc3QoJGZ1bmN0aW9uTmFtZSkgLiAiKCIgLiBqb2luKCIsICIsIEBwYXJh
bWV0ZXJOYW1lcykgLiAiKSI7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICRjb250ZW50ID0gJGNhbGxlciAuICItPiRjb250ZW50IjsKKyAgICAgICAgICAgICAgICAkY29u
dGVudCA9ICIkY2FsbGVyLT4iIC4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGZ1bmN0aW9u
TmFtZSkgLiAiKCIgLiBqb2luKCIsICIsIEBwYXJhbWV0ZXJOYW1lcykgLiAiKSI7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBlcSAidm9pZCIpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5k
ZXggZWE5NTU2NjA5NWQ3YTU2MzBkMWNiMzc3ZmRmZWE3MTMzOTkyMjNkNy4uYzAxNmNmOWEwZGFh
YzlhMGMyYTBmNjA0ZGJlZDk2Njg5NzBhZDMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTMxODIsMTAgKzMxODIsMjIg
QEAgc3ViIEdlbmVyYXRlRnVuY3Rpb25DYWxsU3RyaW5nKCkKICAgICAgICAgJG5hbWUgPSAkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGF0aW9uRnVu
Y3Rpb24ifTsKICAgICB9CiAKLSAgICBteSBAYXJndW1lbnRzOwogICAgIG15ICRpbmRleCA9IDA7
CiAgICAgbXkgJGhhc1NjcmlwdFN0YXRlID0gMDsKIAorICAgIG15IEBhcmd1bWVudHM7CisgICAg
bXkgJGZ1bmN0aW9uTmFtZTsKKyAgICBpZiAoJGZ1bmN0aW9uLT5pc1N0YXRpYykgeworICAgICAg
ICAkZnVuY3Rpb25OYW1lID0gIiR7aW1wbENsYXNzTmFtZX06OiR7bmFtZX0iOworICAgIH0gZWxz
aWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50
ZWRCeSJ9KSB7CisgICAgICAgIG15ICRpbXBsZW1lbnRlZEJ5ID0gJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In07CisgICAgICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCIke2ltcGxlbWVudGVkQnl9LmgiKTsKKyAgICAgICAgdW5zaGlmdChAYXJn
dW1lbnRzLCAiaW1wIik7CisgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiJHtpbXBsZW1lbnRlZEJ5
fTo6JHtuYW1lfSI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJpbXAt
PiR7bmFtZX0iOworICAgIH0KKwogICAgIG15ICRjYWxsV2l0aCA9ICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifTsKICAgICBpZiAoJGNhbGxXaXRo
KSB7CiAgICAgICAgIG15ICRjYWxsV2l0aEFyZyA9ICJDT01QSUxFX0FTU0VSVChmYWxzZSkiOwpA
QCAtMzIzNSw3ICszMjQ3LDcgQEAgc3ViIEdlbmVyYXRlRnVuY3Rpb25DYWxsU3RyaW5nKCkKICAg
ICAgICAgcHVzaCBAYXJndW1lbnRzLCAiZWMiOwogICAgIH0KIAotICAgIG15ICRmdW5jdGlvblN0
cmluZyA9ICgkZnVuY3Rpb24tPmlzU3RhdGljID8gIiR7aW1wbENsYXNzTmFtZX06OiR7bmFtZX0o
IiA6ICJpbXAtPiR7bmFtZX0oIikgLiBqb2luKCIsICIsIEBhcmd1bWVudHMpIC4gIikiOworICAg
IG15ICRmdW5jdGlvblN0cmluZyA9ICIkZnVuY3Rpb25OYW1lKCIgLiBqb2luKCIsICIsIEBhcmd1
bWVudHMpIC4gIikiOwogCiAgICAgbXkgJHJldHVybiA9ICJyZXN1bHQiOwogICAgIG15ICRyZXR1
cm5Jc1JlZiA9IElzUmVmUHRyVHlwZSgkcmV0dXJuVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbAppbmRleCA0YThhOTU1
ODRlNWEwYTcxZGViNTBkYzI2MjMyNzZhZTcxZmIxYzcwLi5jYjUxZjJjNmQ3NTE3Mjg5ZTQ1MDg0
MTk2MDk5ZDQ1ZDJjZGQ3MjhmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwKQEAgLTE1OSw2ICsxNTksMTggQEAgZm9yZWFj
aCBteSAkaWRsRmlsZSAoQHN1cHBsZW1lbnRlZElkbEZpbGVzKSB7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIHB1c2goQHskdGFyZ2V0RGF0YU5vZGUtPmF0dHJpYnV0ZXN9LCAk
YXR0cmlidXRlKTsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yZWFjaCBteSAkZnVu
Y3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7CisgICAgICAgICAgICAgICAgIyBSZWNv
cmQgdGhhdCB0aGlzIGF0dHJpYnV0ZSBpcyBpbXBsZW1lbnRlZCBieSAkaW50ZXJmYWNlTmFtZS4K
KyAgICAgICAgICAgICAgICAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkltcGxlbWVudGVkQnkifSA9ICRpbnRlcmZhY2VOYW1lOworCisgICAgICAgICAgICAgICAg
IyBBZGQgaW50ZXJmYWNlLXdpZGUgZXh0ZW5kZWQgYXR0cmlidXRlcyB0byBlYWNoIGF0dHJpYnV0
ZS4KKyAgICAgICAgICAgICAgICBmb3JlYWNoIG15ICRleHRlbmRlZEF0dHJpYnV0ZU5hbWUgKGtl
eXMgJXskZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlc30pIHsKKyAgICAgICAgICAgICAgICAg
ICAgbmV4dCBpZiAoJGV4dGVuZGVkQXR0cmlidXRlTmFtZSBlcSAiU3VwcGxlbWVudGFsIik7Cisg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnskZXh0ZW5kZWRBdHRyaWJ1dGVOYW1lfSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57JGV4dGVuZGVkQXR0cmlidXRlTmFtZX07CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIHB1c2goQHskdGFyZ2V0RGF0YU5vZGUtPmZ1bmN0aW9uc30sICRmdW5jdGlvbik7
CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RJbnRlcmZhY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0SW50
ZXJmYWNlLmNwcAppbmRleCBkNjEyMTIxMDk3ZTRjM2I1OGE3OGUyMDRhMjQ4Nzc0ZWNhNzE1ZWRj
Li4yNDZhZTM2MmMyNzU0MjZkOTFkNWZlMWFiMWFjZjYwMWEwZmIwZjI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RJbnRlcmZh
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2Vi
RE9NVGVzdEludGVyZmFjZS5jcHAKQEAgLTI2LDggKzI2LDEwIEBACiAKICNpbmNsdWRlICJLVVJM
LmgiCiAjaW5jbHVkZSAiVGVzdEludGVyZmFjZS5oIgorI2luY2x1ZGUgIlRlc3RPYmouaCIKICNp
bmNsdWRlICJUZXN0U3VwcGxlbWVudGFsLmgiCiAjaW5jbHVkZSAiV2ViRE9NU3RyaW5nLmgiCisj
aW5jbHVkZSAiV2ViRE9NVGVzdE9iai5oIgogI2luY2x1ZGUgIldlYkV4Y2VwdGlvbkhhbmRsZXIu
aCIKICNpbmNsdWRlICJ3dGYvdGV4dC9BdG9taWNTdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvR2V0
UHRyLmg+CkBAIC0xMDYsNiArMTA4LDMzIEBAIHZvaWQgV2ViRE9NVGVzdEludGVyZmFjZTo6c2V0
U3RyMihjb25zdCBXZWJET01TdHJpbmcmIG5ld1N0cjIpCiB9CiAKICNlbmRpZgorCisjaWYgRU5B
QkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCit2b2lkIFdlYkRPTVRlc3RJ
bnRlcmZhY2U6OnN1cHBsZW1lbnRhbE1ldGhvZDEoKQoreworICAgIGlmICghaW1wbCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRob2Qx
KGltcGwoKSk7Cit9CisKKyNlbmRpZgorCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVO
QUJMRShDb25kaXRpb24xMikKK1dlYkRPTVRlc3RPYmogV2ViRE9NVGVzdEludGVyZmFjZTo6c3Vw
cGxlbWVudGFsTWV0aG9kMihjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9N
VGVzdE9iaiYgb2JqQXJnKQoreworICAgIGlmICghaW1wbCgpKQorICAgICAgICByZXR1cm4gV2Vi
RE9NVGVzdE9iaigpOworCisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAg
V2ViRE9NVGVzdE9iaiByZXN1bHQgPSB0b1dlYktpdChXVEY6OmdldFB0cihUZXN0U3VwcGxlbWVu
dGFsOjpzdXBwbGVtZW50YWxNZXRob2QyKGltcGwoKSwgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJn
KSwgZWMpKSk7CisgICAgd2ViRE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01FeGNlcHRp
b25Db2RlPihlYykpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyNlbmRpZgorCiBXZWJDb3Jl
OjpUZXN0SW50ZXJmYWNlKiB0b1dlYkNvcmUoY29uc3QgV2ViRE9NVGVzdEludGVyZmFjZSYgd3Jh
cHBlcikKIHsKICAgICByZXR1cm4gd3JhcHBlci5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RJbnRlcmZhY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdEludGVy
ZmFjZS5oCmluZGV4IDVhYTAzYzc5NTA5OGMyNzRhZjY3MGMzNDcwNTE4NzgyYmIxNmUxNmMuLjgz
NDk3NjAwOTZlZDRjYzcxZWM1ZDczYzdjMjk5MmU0MzgxNzQzMWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdEludGVyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVz
dEludGVyZmFjZS5oCkBAIC0zMiw2ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IFRlc3RJbnRlcmZhY2U7CiB9OwogCitjbGFzcyBXZWJET01UZXN0T2JqOwogCiBjbGFzcyBXZWJE
T01UZXN0SW50ZXJmYWNlIDogcHVibGljIFdlYkRPTU9iamVjdCB7CiBwdWJsaWM6CkBAIC00OSw2
ICs1MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN0cjIoY29uc3QgV2ViRE9NU3RyaW5nJik7
CiAjZW5kaWYKIAorICAgIHZvaWQgc3VwcGxlbWVudGFsTWV0aG9kMSgpOworICAgIFdlYkRPTVRl
c3RPYmogc3VwcGxlbWVudGFsTWV0aG9kMihjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29u
c3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsKKwogICAgIFdlYkNvcmU6OlRlc3RJbnRlcmZhY2Uq
IGltcGwoKSBjb25zdDsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0SW50ZXJmYWNlLmNwcAppbmRleCA1ZjhmYWZlZDMxNjI1YmQyYWMwZGE2ZDFhNDZmZmQ2Mjg5
ZjQ3MWMyLi42ZDVhZDZkNGNiY2MzOWNiN2I2NWMyNGEzNTliYjRmYzc5OWQwMTViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmNwcApAQCAtMjksMTEgKzI5LDE0
IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4
ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIlRlc3RJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJUZXN0T2Jq
LmgiCiAjaW5jbHVkZSAiVGVzdFN1cHBsZW1lbnRhbC5oIgogI2luY2x1ZGUgIldlYktpdERPTUJp
bmRpbmcuaCIKICNpbmNsdWRlICJnb2JqZWN0L0NvbnZlcnRUb1VURjhTdHJpbmcuaCIKICNpbmNs
dWRlICJ3ZWJraXQvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5oIgogI2luY2x1ZGUgIndlYmtpdC9X
ZWJLaXRET01UZXN0SW50ZXJmYWNlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRE
T01UZXN0T2JqLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdERPTVRlc3RPYmpQcml2YXRlLmgi
CiAjaW5jbHVkZSAid2Via2l0ZGVmaW5lcy5oIgogI2luY2x1ZGUgIndlYmtpdGdsb2JhbHNwcml2
YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgpAQCAtNTIsNiArNTUsNDUgQEAgV2Vi
S2l0RE9NVGVzdEludGVyZmFjZSoga2l0KFdlYkNvcmU6OlRlc3RJbnRlcmZhY2UqIG9iaikKICAg
ICAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdCAvLwogCit2b2lkCit3ZWJraXRfZG9tX3Rlc3RfaW50
ZXJmYWNlX3N1cHBsZW1lbnRhbF9tZXRob2QxKFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYp
Cit7CisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisgICAg
Z19yZXR1cm5faWZfZmFpbChzZWxmKTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgV2ViQ29yZTo6VGVzdEludGVyZmFjZSAqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7CisgICAgVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9kMShpdGVt
KTsKKyNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikg
Ki8KK30KKworV2ViS2l0RE9NVGVzdE9iaioKK3dlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2Vfc3Vw
cGxlbWVudGFsX21ldGhvZDIoV2ViS2l0RE9NVGVzdEludGVyZmFjZSogc2VsZiwgY29uc3QgZ2No
YXIqIHN0cl9hcmcsIFdlYktpdERPTVRlc3RPYmoqIG9ial9hcmcsIEdFcnJvciAqKmVycm9yKQor
eworI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpUZXN0SW50ZXJmYWNlICogaXRlbSA9IFdlYktp
dDo6Y29yZShzZWxmKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzdHJfYXJnLCAwKTsKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChvYmpfYXJnLCAwKTsKKyAgICBXVEY6OlN0cmluZyBjb252
ZXJ0ZWRfc3RyX2FyZyA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChzdHJfYXJnKTsKKyAgICBXZWJD
b3JlOjpUZXN0T2JqICogY29udmVydGVkX29ial9hcmcgPSBOVUxMOworICAgIGlmIChvYmpfYXJn
ICE9IE5VTEwpIHsKKyAgICAgICAgY29udmVydGVkX29ial9hcmcgPSBXZWJLaXQ6OmNvcmUob2Jq
X2FyZyk7CisgICAgICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvbnZlcnRlZF9vYmpfYXJnLCAw
KTsKKyAgICB9CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpUZXN0T2JqPiBnX3JlcyA9IFdURjo6Z2V0UHRyKFRlc3RTdXBwbGVtZW50
YWw6OnN1cHBsZW1lbnRhbE1ldGhvZDIoaXRlbSwgY29udmVydGVkX3N0cl9hcmcsIGNvbnZlcnRl
ZF9vYmpfYXJnLCBlYykpOworICAgIGlmIChlYykgeworICAgICAgICBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKKyAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJh
bChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwg
ZWNkZXNjLm5hbWUpOworICAgIH0KKyAgICBXZWJLaXRET01UZXN0T2JqKiByZXMgPSBXZWJLaXQ6
OmtpdChnX3Jlcy5nZXQoKSk7CisgICAgcmV0dXJuIHJlczsKKyNlbHNlCisgICAgcmV0dXJuIE5V
TEw7CisjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIp
ICovCit9CisKIGdjaGFyKgogd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9nZXRfc3RyMShXZWJL
aXRET01UZXN0SW50ZXJmYWNlKiBzZWxmKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVz
dEludGVyZmFjZS5oCmluZGV4IDdjMzY1MDU4YjliODQ0MTJiZWI3YmRiYzc1OGQ3MDU1YzQwZWFj
ZjEuLmE3MDZhN2ExYjQ5YjFiOWZmNzBkMzUzMjFiNjllNDJkODBkZGM4Y2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRl
c3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmgKQEAgLTQ3LDYgKzQ3LDI5IEBAIFdFQktJ
VF9BUEkgR1R5cGUKIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3R5cGUgKHZvaWQpOwog
CiAvKioKKyAqIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2Vfc3VwcGxlbWVudGFsX21ldGhvZDE6
CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdEludGVyZmFjZQorICoKKyAqIFJldHVybnM6Cisg
KgorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2Vfc3VwcGxl
bWVudGFsX21ldGhvZDEoV2ViS2l0RE9NVGVzdEludGVyZmFjZSogc2VsZik7CisKKy8qKgorICog
d2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9zdXBwbGVtZW50YWxfbWV0aG9kMjoKKyAqIEBzZWxm
OiBBICNXZWJLaXRET01UZXN0SW50ZXJmYWNlCisgKiBAc3RyX2FyZzogQSAjZ2NoYXIKKyAqIEBv
YmpfYXJnOiBBICNXZWJLaXRET01UZXN0T2JqCisgKiBAZXJyb3I6ICNHRXJyb3IKKyAqCisgKiBS
ZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6CisgKgorKiovCitXRUJLSVRfQVBJIFdlYktpdERPTVRl
c3RPYmoqCit3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX3N1cHBsZW1lbnRhbF9tZXRob2QyKFdl
YktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYsIGNvbnN0IGdjaGFyKiBzdHJfYXJnLCBXZWJLaXRE
T01UZXN0T2JqKiBvYmpfYXJnLCBHRXJyb3IgKiplcnJvcik7CisKKy8qKgogICogd2Via2l0X2Rv
bV90ZXN0X2ludGVyZmFjZV9nZXRfc3RyMToKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0SW50
ZXJmYWNlCiAgKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAppbmRleCAwNzA3YzhiMTAzMzg3YzA0MDZl
MGZhNzViOTU1OWJlMTE5ZjM4ZDBjLi5lMjYwMDVmNzk5NzgxMzNlYjRhYTMyMGE3NTRjNTQ2YjA3
NzEzNzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcApAQCAtMjcsNyArMjcsOSBAQAogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRl
ICJKU1Rlc3RJbnRlcmZhY2VDdXN0b20uaCIKKyNpbmNsdWRlICJKU1Rlc3RPYmouaCIKICNpbmNs
dWRlICJUZXN0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiVGVzdE9iai5oIgogI2luY2x1ZGUgIlRl
c3RTdXBwbGVtZW50YWwuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8
d3RmL0dldFB0ci5oPgpAQCAtMTI5LDEwICsxMzEsMTYgQEAgQ29uc3RydWN0VHlwZSBKU1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXQKIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEludGVyZmFjZVByb3RvdHlw
ZVRhYmxlVmFsdWVzW10gPQogeworI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjEyKQorICAgIHsgInN1cHBsZW1lbnRhbE1ldGhvZDEiLCBEb250RGVsZXRlIHwgSlND
OjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDEpLCAoaW50cHRyX3Qp
MCwgTm9JbnRyaW5zaWMgfSwKKyNlbmRpZgorI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjEyKQorICAgIHsgInN1cHBsZW1lbnRhbE1ldGhvZDIiLCBEb250RGVsZXRl
IHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDIpLCAoaW50
cHRyX3QpMiwgTm9JbnRyaW5zaWMgfSwKKyNlbmRpZgogICAgIHsgMCwgMCwgMCwgMCwgTm9JbnRy
aW5zaWMgfQogfTsKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RJbnRlcmZhY2VQcm90
b3R5cGVUYWJsZSA9IHsgMSwgMCwgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlVGFibGVWYWx1ZXMs
IDAgfTsKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlVGFi
bGUgPSB7IDUsIDMsIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZVRhYmxlVmFsdWVzLCAwIH07CiBj
b25zdCBDbGFzc0luZm8gSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0
SW50ZXJmYWNlUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdEludGVyZmFjZVByb3Rv
dHlwZVRhYmxlLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEludGVyZmFjZVByb3RvdHlw
ZSkgfTsKIAogSlNPYmplY3QqIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZTo6c2VsZihFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCkBAIC0xNDAsNiArMTQ4LDE4
IEBAIEpTT2JqZWN0KiBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU6OnNlbGYoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIGdldERPTVByb3RvdHlwZTxK
U1Rlc3RJbnRlcmZhY2U+KGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9CiAKK2Jvb2wgSlNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQoreworICAgIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSogdGhpc09iamVjdCA9IGpzQ2Fz
dDxKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUqPihjZWxsKTsKKyAgICByZXR1cm4gZ2V0U3RhdGlj
RnVuY3Rpb25TbG90PEpTT2JqZWN0PihleGVjLCAmSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlVGFi
bGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgSlNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVj
dCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK3sKKyAgICBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5
cGUqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlKj4ob2JqZWN0
KTsKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEpTT2JqZWN0PihleGVj
LCAmSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvcik7Cit9CisKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RJbnRlcmZhY2U6OnNf
aW5mbyA9IHsgIlRlc3RJbnRlcmZhY2UiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0SW50ZXJmYWNl
VGFibGUsIDAgLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEludGVyZmFjZSkgfTsKIAogSlNU
ZXN0SW50ZXJmYWNlOjpKU1Rlc3RJbnRlcmZhY2UoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8VGVzdEludGVyZmFjZT4gaW1w
bCkKQEAgLTI1Myw2ICsyNzMsNTAgQEAgSlNWYWx1ZSBKU1Rlc3RJbnRlcmZhY2U6OmdldENvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1
cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I+KGV4ZWMsIHN0
YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7CiB9CiAKKyNpZiBF
TkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKK0VuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50
YWxNZXRob2QxKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0
SW50ZXJmYWNlOjpzX2luZm8pKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKKyAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RJ
bnRlcmZhY2UqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RJbnRlcmZhY2U6OnNfaW5mbyk7CisgICAgVGVzdElu
dGVyZmFjZSogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RJbnRlcmZhY2UqPihjYXN0ZWRUaGlzLT5p
bXBsKCkpOworICAgIFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE1ldGhvZDEoaW1wbCk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKworI2VuZGlm
CisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKK0VuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25T
dXBwbGVtZW50YWxNZXRob2QyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0
cygmSlNUZXN0SW50ZXJmYWNlOjpzX2luZm8pKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKKyAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2Fz
dDxKU1Rlc3RJbnRlcmZhY2UqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKKyAgICBBU1NFUlRfR0Nf
T0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RJbnRlcmZhY2U6OnNfaW5mbyk7Cisg
ICAgVGVzdEludGVyZmFjZSogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RJbnRlcmZhY2UqPihjYXN0
ZWRUaGlzLT5pbXBsKCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQorICAg
ICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiTm90
IGVub3VnaCBhcmd1bWVudHMiKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IHN0YXRpY19jYXN0PEpTRE9NR2xv
YmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOworICAgIGlmICghc2NyaXB0Q29udGV4dCkKKyAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyh1c3Ry
aW5nVG9TdHJpbmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgTWlzc2luZ0lzVW5k
ZWZpbmVkKS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihl
eGVjLCAwLCBNaXNzaW5nSXNVbmRlZmluZWQpLnRvU3RyaW5nKGV4ZWMpKSk7CisgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOworICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoZXhlYywgMSwgTWlzc2luZ0lzVW5kZWZpbmVkKSkpOworICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKKworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50
YWxNZXRob2QyKGltcGwsIHNjcmlwdENvbnRleHQsIHN0ckFyZywgb2JqQXJnLCBlYykpKTsKKyAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KTsKK30KKworI2VuZGlmCisKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc09ic2VydmFibGUo
SlNUZXN0SW50ZXJmYWNlKiBqc1Rlc3RJbnRlcmZhY2UpCiB7CiAgICAgaWYgKGpzVGVzdEludGVy
ZmFjZS0+aGFzQ3VzdG9tUHJvcGVydGllcygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCmluZGV4IDk4YjU2
ZDgwNTVjOTc4N2Q4MDAzZjU2NDFjYzk1ZDgyYTg0MDI5NjMuLmE0NDNiOTAzZTIwMWVlZmJjYzAz
NTBmNjVjNGQ2Y2ZiNDg5Y2JiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKQEAgLTEwMiw2ICsxMDIs
OCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNf
aW5mbzsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90
Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVy
dHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7CiAgICAgICAgIHJldHVy
biBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19p
bmZvKTsKQEAgLTExMCw3ICsxMTIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEpTVGVzdElu
dGVyZmFjZVByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlNDOjpKU05vbkZpbmFs
T2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkgeyB9CiBwcm90ZWN0ZWQ6Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7Cisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIH07CiAKIGNsYXNzIEpT
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsK
QEAgLTE0MCw2ICsxNDIsMTAgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBKU0M6OkNvbnN0cnVj
dFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0M6OkpTQ2VsbCosIEpTQzo6Q29uc3RydWN0RGF0YSYp
OwogfTsKIAorLy8gRnVuY3Rpb25zCisKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDEoSlND
OjpFeGVjU3RhdGUqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDIoSlNDOjpFeGVjU3Rh
dGUqKTsKIC8vIEF0dHJpYnV0ZXMKIAogSlNDOjpKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN0cjEo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9N
VGVzdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdEludGVyZmFjZS5oCmluZGV4IDIzNDI1OWI0NTQwOWNhMzNlNmE3MjJkOTI3MzEw
YTg2YjU1NTQzMmMuLjdjY2VkNWU4ZjE0ZjJiMTE2YmQyNDhlYWU0YmVlOGNiODQwZmNhYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0SW50ZXJmYWNlLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFdFQktJVF9W
RVJTSU9OX01BWF9BTExPV0VEID49IFdFQktJVF9WRVJTSU9OX0xBVEVTVAogCitAY2xhc3MgRE9N
VGVzdE9iajsKIEBjbGFzcyBOU1N0cmluZzsKIAogQGludGVyZmFjZSBET01UZXN0SW50ZXJmYWNl
IDogRE9NT2JqZWN0CkBAIC00Miw2ICs0Myw4IEBACiAtIChOU1N0cmluZyAqKXN0cjM7CiAtICh2
b2lkKXNldFN0cjM6KE5TU3RyaW5nICopbmV3U3RyMzsKICNlbmRpZgorLSAodm9pZClzdXBwbGVt
ZW50YWxNZXRob2QxOworLSAoRE9NVGVzdE9iaiAqKXN1cHBsZW1lbnRhbE1ldGhvZDI6KE5TU3Ry
aW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKIEBlbmQKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0SW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L09iakMvRE9NVGVzdEludGVyZmFjZS5tbQppbmRleCBmNDY5Y2YxMGFmODRmNWI5YjFhMmM2OThi
MTMyMTFjNzk3OTBlMTUyLi4yNWVkNDhkMGFmYzI4MTdiNjY1YjQyMDdmN2U4ZDQzNWQxNjM5ZDM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0SW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UubW0KQEAgLTM5LDEwICszOSwxMiBAQAogI2ltcG9y
dCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01TdHlsZVNoZWV0SW50ZXJuYWwuaCIK
ICNpbXBvcnQgIkRPTVRlc3RJbnRlcmZhY2VJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NVGVzdE9i
akludGVybmFsLmgiCiAjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgogI2ltcG9ydCAiSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmgiCiAjaW1wb3J0ICJLVVJMLmgiCiAjaW1wb3J0ICJUZXN0SW50
ZXJmYWNlLmgiCisjaW1wb3J0ICJUZXN0T2JqLmgiCiAjaW1wb3J0ICJUZXN0U3VwcGxlbWVudGFs
LmgiCiAjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgogI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMu
aCIKQEAgLTEwNiw2ICsxMDgsMjkgQEAKIH0KICNlbmRpZgogCisKKyNpZiBFTkFCTEUoQ29uZGl0
aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKy0gKHZvaWQpc3VwcGxlbWVudGFsTWV0aG9k
MQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBUZXN0
U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRob2QxKElNUEwpOworfQorCisjZW5kaWYKKwor
CisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCistIChET01U
ZXN0T2JqICopc3VwcGxlbWVudGFsTWV0aG9kMjooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihE
T01UZXN0T2JqICopb2JqQXJnCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIERPTVRlc3RP
YmogKnJlc3VsdCA9IGtpdChXVEY6OmdldFB0cihUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50
YWxNZXRob2QyKElNUEwsIHN0ckFyZywgY29yZShvYmpBcmcpLCBlYykpKTsKKyAgICBXZWJDb3Jl
OjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyNlbmRpZgor
CiBAZW5kCiAKIFdlYkNvcmU6OlRlc3RJbnRlcmZhY2UqIGNvcmUoRE9NVGVzdEludGVyZmFjZSAq
d3JhcHBlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9UZXN0U3VwcGxlbWVudGFsLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0U3VwcGxlbWVudGFsLmlkbAppbmRleCA0NjZmZGQ1MWE4ZDZlNzhjZjMzMjBlYWVl
ZjE4NmI5Y2ZiMjZmZjMyLi4wZDdiZTAyY2ZjNWQ5YTAzNzIyYWE2OGQyOGFjNTcxZGEzYTJhODg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFN1
cHBsZW1lbnRhbC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3RTdXBwbGVtZW50YWwuaWRsCkBAIC0zNiw1ICszNiw4IEBAIG1vZHVsZSB0ZXN0IHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzdHIxOwogICAgICAgICBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHN0cjI7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyLCBDdXN0
b21TZXR0ZXJdIERPTVN0cmluZyBzdHIzOworCisgICAgICAgIHZvaWQgc3VwcGxlbWVudGFsTWV0
aG9kMSgpOworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gVGVzdE9i
aiBzdXBwbGVtZW50YWxNZXRob2QyKGluIERPTVN0cmluZyBzdHJBcmcsIGluIFRlc3RPYmogb2Jq
QXJnKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNw
cAppbmRleCA1MzU4YjVlY2I0OTMxYjVjYjgzMDNiNzkzMTk3MzRhZmFjNzU4NGM1Li43YzA1ODUy
NTM5ZTEzZjI5MTRkZGQ2NzlhN2I4ZGQ3MDE0NzRkY2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNw
cApAQCAtMzIsNyArMzIsMTEgQEAKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKICNpbmNsdWRl
ICJWOElzb2xhdGVkQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKKyNpbmNsdWRlICJW
OFRlc3RPYmouaCIKICNpbmNsdWRlICJWOFRlc3RTdXBwbGVtZW50YWwuaCIKKyNpbmNsdWRlIDx3
dGYvR2V0UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTc4LDYgKzgyLDQ1IEBAIHN0YXRpYyB2b2lkIHN0cjJBdHRyU2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1CiAKICNlbmRp
ZiAvLyBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKIAorI2lmIEVO
QUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorCitzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHN1cHBsZW1lbnRhbE1ldGhvZDFDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RJbnRlcmZhY2Uuc3VwcGxl
bWVudGFsTWV0aG9kMSIpOworICAgIFRlc3RJbnRlcmZhY2UqIGltcCA9IFY4VGVzdEludGVyZmFj
ZTo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxl
bWVudGFsTWV0aG9kMShpbXApOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsK
K30KKworI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEy
KQorCisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisKK3N0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3VwcGxlbWVudGFsTWV0aG9kMkNhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdEludGVy
ZmFjZS5zdXBwbGVtZW50YWxNZXRob2QyIik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQor
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5
OjpUeXBlRXJyb3IpOworICAgIFRlc3RJbnRlcmZhY2UqIGltcCA9IFY4VGVzdEludGVyZmFjZTo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAg
eworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8
Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBNaXNzaW5nSXNVbmRl
ZmluZWQpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2Jq
OjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBNaXNzaW5nSXNV
bmRlZmluZWQpKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6
Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBNaXNzaW5nSXNVbmRlZmluZWQp
KSkgOiAwKTsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghc2NyaXB0Q29udGV4dCkKKyAgICAg
ICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKKyAgICBSZWZQdHI8VGVzdE9iaj4gcmVzdWx0ID0g
VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9kMihpbXAsIHNjcmlwdENvbnRleHQs
IHN0ckFyZywgb2JqQXJnLCBlYyk7CisgICAgaWYgKFVOTElLRUxZKGVjKSkKKyAgICAgICAgZ290
byBmYWlsOworICAgIHJldHVybiB0b1Y4KHJlc3VsdC5yZWxlYXNlKCkpOworICAgIH0KKyAgICBm
YWlsOgorICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CisgICAgcmV0dXJuIHY4OjpI
YW5kbGU8djg6OlZhbHVlPigpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjExKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisKIH0gLy8gbmFtZXNwYWNlIFRlc3RJbnRlcmZhY2VJbnRl
cm5hbAogCiBzdGF0aWMgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSBUZXN0SW50ZXJmYWNlQXR0cnNb
XSA9IHsKQEAgLTk1LDYgKzEzOCwxMiBAQCBzdGF0aWMgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSBU
ZXN0SW50ZXJmYWNlQXR0cnNbXSA9IHsKICNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8
IEVOQUJMRShDb25kaXRpb24xMikKIH07CiAKK3N0YXRpYyBjb25zdCBCYXRjaGVkQ2FsbGJhY2sg
VGVzdEludGVyZmFjZUNhbGxiYWNrc1tdID0geworI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwg
RU5BQkxFKENvbmRpdGlvbjEyKQorICAgIHsic3VwcGxlbWVudGFsTWV0aG9kMSIsIFRlc3RJbnRl
cmZhY2VJbnRlcm5hbDo6c3VwcGxlbWVudGFsTWV0aG9kMUNhbGxiYWNrfSwKKyNlbmRpZgorfTsK
Kwogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4VGVzdEludGVyZmFjZTo6Y29uc3RydWN0b3JDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRl
c3RJbnRlcmZhY2UuQ29uc3RydWN0b3IiKTsKQEAgLTEzNSwxMSArMTg0LDIzIEBAIHN0YXRpYyB2
ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0SW50ZXJm
YWNlVGVtcGxhdGUodjg6CiAgICAgdjg6OkxvY2FsPHY4OjpTaWduYXR1cmU+IGRlZmF1bHRTaWdu
YXR1cmU7CiAgICAgZGVmYXVsdFNpZ25hdHVyZSA9IGNvbmZpZ3VyZVRlbXBsYXRlKGRlc2MsICJU
ZXN0SW50ZXJmYWNlIiwgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIFY4
VGVzdEludGVyZmFjZTo6aW50ZXJuYWxGaWVsZENvdW50LAogICAgICAgICBUZXN0SW50ZXJmYWNl
QXR0cnMsIFdURl9BUlJBWV9MRU5HVEgoVGVzdEludGVyZmFjZUF0dHJzKSwKLSAgICAgICAgMCwg
MCk7CisgICAgICAgIFRlc3RJbnRlcmZhY2VDYWxsYmFja3MsIFdURl9BUlJBWV9MRU5HVEgoVGVz
dEludGVyZmFjZUNhbGxiYWNrcykpOwogICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0U2lnbmF0dXJl
KTsgLy8gSW4gc29tZSBjYXNlcywgaXQgd2lsbCBub3QgYmUgdXNlZC4KICAgICBkZXNjLT5TZXRD
YWxsSGFuZGxlcihWOFRlc3RJbnRlcmZhY2U6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOworICAgIHY4
OjpMb2NhbDx2ODo6T2JqZWN0VGVtcGxhdGU+IGluc3RhbmNlID0gZGVzYy0+SW5zdGFuY2VUZW1w
bGF0ZSgpOworICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0VGVtcGxhdGU+IHByb3RvID0gZGVzYy0+
UHJvdG90eXBlVGVtcGxhdGUoKTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOyAvLyBJbiBz
b21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1c2VkLgorICAgIFVOVVNFRF9QQVJBTShwcm90byk7
IC8vIEluIHNvbWUgY2FzZXMsIGl0IHdpbGwgbm90IGJlIHVzZWQuCiAgICAgCiAKKyAgICAvLyBD
dXN0b20gU2lnbmF0dXJlICdzdXBwbGVtZW50YWxNZXRob2QyJworICAgIGNvbnN0IGludCBzdXBw
bGVtZW50YWxNZXRob2QyQXJnYyA9IDI7CisgICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1w
bGF0ZT4gc3VwcGxlbWVudGFsTWV0aG9kMkFyZ3Zbc3VwcGxlbWVudGFsTWV0aG9kMkFyZ2NdID0g
eyB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCBWOFRlc3RPYmo6OkdldFJhd1Rl
bXBsYXRlKCkgfTsKKyAgICB2ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+IHN1cHBsZW1lbnRhbE1l
dGhvZDJTaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXcoZGVzYywgc3VwcGxlbWVudGFsTWV0
aG9kMkFyZ2MsIHN1cHBsZW1lbnRhbE1ldGhvZDJBcmd2KTsKKyNpZiBFTkFCTEUoQ29uZGl0aW9u
MTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKyAgICBwcm90by0+U2V0KHY4OjpTdHJpbmc6Ok5l
dygic3VwcGxlbWVudGFsTWV0aG9kMiIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RJ
bnRlcmZhY2VJbnRlcm5hbDo6c3VwcGxlbWVudGFsTWV0aG9kMkNhbGxiYWNrLCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4oKSwgc3VwcGxlbWVudGFsTWV0aG9kMlNpZ25hdHVyZSkpOworI2VuZGlmIC8v
IEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorCiAgICAgLy8gQ3Vz
dG9tIHRvU3RyaW5nIHRlbXBsYXRlCiAgICAgZGVzYy0+U2V0KGdldFRvU3RyaW5nTmFtZSgpLCBn
ZXRUb1N0cmluZ1RlbXBsYXRlKCkpOwogICAgIHJldHVybiBkZXNjOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>