<?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>74068</bug_id>
          
          <creation_ts>2011-12-08 02:01:02 -0800</creation_ts>
          <short_desc>Fixing support for static conditional overloaded functions</short_desc>
          <delta_ts>2011-12-08 10:55:25 -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>DOM</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>http://www.w3.org/TR/WebIDL/#idl-overloading</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>71968</blocked>
    
    <blocked>73365</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kaustubh Atrawalkar">kaustubh.ra</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>arv</cc>
    
    <cc>japhet</cc>
    
    <cc>kaustubh.ra</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>517257</commentid>
    <comment_count>0</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2011-12-08 02:01:02 -0800</bug_when>
    <thetext>Need to fix the support for static conditional overloaded functions in JSC. For all other frameworks its working.
When overloaded functions are conditional, there are two local static functions are created. The bindings generator script pushes this &quot;static&quot; keyword first and then pushes &quot;#if {conditional}&quot; later which causes incorrect bindings being generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517261</commentid>
    <comment_count>1</comment_count>
      <attachid>118350</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2011-12-08 02:05:07 -0800</bug_when>
    <thetext>Created attachment 118350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517483</commentid>
    <comment_count>2</comment_count>
      <attachid>118350</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-08 09:42:37 -0800</bug_when>
    <thetext>Comment on attachment 118350
Patch

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

&gt; Source/WebCore/bindings/scripts/test/CPP/WebDOMTestObj.cpp:909
&gt; +#if ENABLE(Condition1)

It would be nice to have a blank line after this line, but that&apos;s really a minor nit.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517492</commentid>
    <comment_count>3</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2011-12-08 09:56:19 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 118350 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=118350&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/test/CPP/WebDOMTestObj.cpp:909
&gt; &gt; +#if ENABLE(Condition1)
&gt; 
&gt; It would be nice to have a blank line after this line, but that&apos;s really a minor nit.  :)

Thanks Adam for quick review :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517503</commentid>
    <comment_count>4</comment_count>
      <attachid>118350</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2011-12-08 10:04:28 -0800</bug_when>
    <thetext>Comment on attachment 118350
Patch

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

This does not do V8. I&apos;m fine without V8 support in this patch. I can add it in another patch.

&gt; Source/WebCore/bindings/scripts/test/TestObj.idl:171
&gt; +        static [Conditional=Condition1] void overloadedMethod1(in long arg);
&gt; +        static [Conditional=Condition1] void overloadedMethod1(in DOMString type);

Can this be called overloadedClassMethod instead?

&gt; Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp:1288
&gt;  
&gt; +static v8::Handle&lt;v8::Value&gt; overloadedMethod11Callback(const v8::Arguments&amp; args)

This needs #if ENABLE(Condition1) too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517561</commentid>
    <comment_count>5</comment_count>
      <attachid>118350</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-08 10:55:20 -0800</bug_when>
    <thetext>Comment on attachment 118350
Patch

Clearing flags on attachment: 118350

Committed r102351: &lt;http://trac.webkit.org/changeset/102351&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517562</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-08 10:55:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118350</attachid>
            <date>2011-12-08 02:05:07 -0800</date>
            <delta_ts>2011-12-08 10:55:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>74068_patch.txt</filename>
            <type>text/plain</type>
            <size>16694</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjMyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDExLTEyLTA4ICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIEZpeGluZyBz
dXBwb3J0IGZvciBzdGF0aWMgY29uZGl0aW9uYWwgb3ZlcmxvYWRlZCBmdW5jdGlvbnMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA2OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9u
KTogUHVzaGluZyAic3RhdGljIiBrZXl3b3JkIGFmdGVyIGNvbmRpdGlvbiAiI2lmIi4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwOgorICAgICAg
ICAoV2ViRE9NVGVzdE9iajo6b3ZlcmxvYWRlZE1ldGhvZDEpOiBBZGRlZCBuZXdseSBnZW5lcmF0
ZWQgYmluZGluZ3MuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01U
ZXN0T2JqLmg6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0
L1dlYktpdERPTVRlc3RPYmouY3BwOiBEaXR0by4KKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9v
Ympfb3ZlcmxvYWRlZF9tZXRob2QxKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMTEpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxMik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZDEpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
aDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9i
ai5oOiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
T2JqLm1tOiBEaXR0by4KKyAgICAgICAgKC1bRE9NVGVzdE9iaiBvdmVybG9hZGVkTWV0aG9kMTpd
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6IERpdHRvLgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpJbnRlcm5hbDo6b3ZlcmxvYWRlZE1ldGhvZDExQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9iakludGVybmFsOjpvdmVybG9hZGVkTWV0
aG9kMTJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6Om92ZXJs
b2FkZWRNZXRob2QxQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Q29uZmlndXJlVjhUZXN0
T2JqVGVtcGxhdGUpOgorCiAyMDExLTEyLTA4ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE1vdmUgc2NhbGVQYWdlQnkgZnJvbSBldmVudFNlbmRlciB0byB3
aW5kb3cuaW50ZXJuYWxzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMTAyMzIzKQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkK
QEAgLTIwNzEsNiArMjA3MSwxMyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAg
ICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gR2V0RnVuY3Rpb25OYW1lKCRjbGFzc05hbWUsICRm
dW5jdGlvbik7CiAKKyAgICAgICAgICAgIG15ICRjb25kaXRpb25hbCA9ICRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKKyAgICAgICAgICAg
IGlmICgkY29uZGl0aW9uYWwpIHsKKyAgICAgICAgICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJp
bmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZ0Zyb21BdHRyaWJ1
dGVWYWx1ZSgkY29uZGl0aW9uYWwpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKTsKKyAgICAgICAgICAgIH0KKworCiAgICAg
ICAgICAgICBpZiAoISRpc0N1c3RvbSAmJiAkaXNPdmVybG9hZGVkKSB7CiAgICAgICAgICAgICAg
ICAgIyBBcHBlbmQgYSBudW1iZXIgdG8gYW4gb3ZlcmxvYWRlZCBtZXRob2QncyBuYW1lIHRvIG1h
a2UgaXQgdW5pcXVlOgogICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAkZnVuY3Rpb25O
YW1lIC4gJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH07CkBAIC0yMDc4LDE0ICsyMDg1LDggQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAjIGRvbid0IGdlbmVy
YXRlIGEgcHJvdG90eXBlIGZvciBpdCBpbiB0aGUgaGVhZGVyLgogICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAic3RhdGljICIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
Ci0gICAgICAgICAgICBteSAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUgPSAkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGF0aW9uRnVuY3Rpb24i
fSB8fCAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFt
ZSk7CiAKLSAgICAgICAgICAgIG15ICRjb25kaXRpb25hbCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKLSAgICAgICAgICAgIGlmICgk
Y29uZGl0aW9uYWwpIHsKLSAgICAgICAgICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAk
Y29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZ0Zyb21BdHRyaWJ1dGVWYWx1
ZSgkY29uZGl0aW9uYWwpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lm
ICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG15
ICRmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50YXRpb25GdW5jdGlvbiJ9IHx8ICRjb2RlR2VuZXJh
dG9yLT5XS19sY2ZpcnN0KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsKIAogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMICR7ZnVu
Y3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4ZWMpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAie1xuIik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdE9iai5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsCShyZXZpc2lvbiAxMDIzMjMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE2
NSw2ICsxNjUsMTEgQEAgbW9kdWxlIHRlc3QgewogICAgICAgICBzdGF0aWMgdm9pZCBjbGFzc01l
dGhvZCgpOwogICAgICAgICBzdGF0aWMgbG9uZyBjbGFzc01ldGhvZFdpdGhPcHRpb25hbChpbiBb
T3B0aW9uYWxdIGxvbmcgYXJnKTsKIAorICAgICAgICAvLyBTdGF0aWMgbWV0aG9kIHdpdGggY29u
ZGl0aW9uYWwgb24gb3ZlcmxvYWRlZCBtZXRob2RzCisKKyAgICAgICAgc3RhdGljIFtDb25kaXRp
b25hbD1Db25kaXRpb24xXSB2b2lkIG92ZXJsb2FkZWRNZXRob2QxKGluIGxvbmcgYXJnKTsKKyAg
ICAgICAgc3RhdGljIFtDb25kaXRpb25hbD1Db25kaXRpb24xXSB2b2lkIG92ZXJsb2FkZWRNZXRo
b2QxKGluIERPTVN0cmluZyB0eXBlKTsKKwogI2lmIGRlZmluZWQoVEVTVElOR19WOCkKICAgICAg
ICAgLy8gJ0VuYWJsZWRBdFJ1bnRpbWUnIG1ldGhvZHMgYW5kIGF0dHJpYnV0ZXMuCiAgICAgICAg
IFtFbmFibGVkQXRSdW50aW1lXSB2b2lkIGVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxKGluIGludCBp
bnRBcmcpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9X
ZWJET01UZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCShyZXZpc2lvbiAxMDIzMjMpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05MDUsNiArOTA1LDMwIEBAIGludCBXZWJET01UZXN0T2JqOjpj
bGFzc01ldGhvZFdpdGhPcHRpb24KICAgICByZXR1cm4gaW1wbCgpLT5jbGFzc01ldGhvZFdpdGhP
cHRpb25hbChhcmcpOwogfQogCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKK3ZvaWQgV2ViRE9N
VGVzdE9iajo6b3ZlcmxvYWRlZE1ldGhvZDEoaW50IGFyZykKK3sKKyAgICBpZiAoIWltcGwoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaW1wbCgpLT5vdmVybG9hZGVkTWV0aG9kMShhcmcpOwor
fQorCisjZW5kaWYKKworCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpCit2b2lkIFdlYkRPTVRlc3RP
Ymo6Om92ZXJsb2FkZWRNZXRob2QxKGNvbnN0IFdlYkRPTVN0cmluZyYgdHlwZSkKK3sKKyAgICBp
ZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW1wbCgpLT5vdmVybG9hZGVkTWV0
aG9kMSh0eXBlKTsKK30KKworI2VuZGlmCisKIFdlYkNvcmU6OlRlc3RPYmoqIHRvV2ViQ29yZShj
b25zdCBXZWJET01UZXN0T2JqJiB3cmFwcGVyKQogewogICAgIHJldHVybiB3cmFwcGVyLmltcGwo
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9N
VGVzdE9iai5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCShyZXZpc2lvbiAxMDIzMjMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAkod29ya2luZyBj
b3B5KQpAQCAtMTgxLDYgKzE4MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbmRpdGlvbmFsTWV0
aG9kMygpOwogICAgIHZvaWQgY2xhc3NNZXRob2QoKTsKICAgICBpbnQgY2xhc3NNZXRob2RXaXRo
T3B0aW9uYWwoaW50IGFyZyk7CisgICAgdm9pZCBvdmVybG9hZGVkTWV0aG9kMShpbnQgYXJnKTsK
KyAgICB2b2lkIG92ZXJsb2FkZWRNZXRob2QxKGNvbnN0IFdlYkRPTVN0cmluZyYgdHlwZSk7CiAK
ICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpbXBsKCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0
L1dlYktpdERPTVRlc3RPYmouY3BwCShyZXZpc2lvbiAxMDIzMjMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDE1LDYgKzQxNSwzMCBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NsYXNz
X21ldGhvZF93aXRoX29wCiAgICAgcmV0dXJuIHJlczsKIH0KIAordm9pZAord2Via2l0X2RvbV90
ZXN0X29ial9vdmVybG9hZGVkX21ldGhvZDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcg
YXJnKQoreworI2lmIEVOQUJMRShDb25kaXRpb24xKQorICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2Vs
Zik7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNv
cmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGl0ZW0tPm92ZXJs
b2FkZWRNZXRob2QxKGFyZyk7CisjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjEpICovCit9CisK
K3ZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfb3ZlcmxvYWRlZF9tZXRob2QxKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB0eXBlKQoreworI2lmIEVOQUJMRShDb25kaXRpb24x
KQorICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodHlwZSk7CisgICAgV1RGOjpTdHJpbmcg
Y29udmVydGVkX3R5cGUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodHlwZSk7CisgICAgaXRlbS0+
b3ZlcmxvYWRlZE1ldGhvZDEoY29udmVydGVkX3R5cGUpOworI2VuZGlmIC8qIEVOQUJMRShDb25k
aXRpb24xKSAqLworfQorCiBnbG9uZwogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfcmVhZF9vbmx5
X2ludF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2Vi
S2l0RE9NVGVzdE9iai5oCShyZXZpc2lvbiAxMDIzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM2OSw2ICszNjksMjggQEAgV0VCS0lUX0FQSSBnbG9uZwogd2Via2l0X2RvbV90ZXN0
X29ial9jbGFzc19tZXRob2Rfd2l0aF9vcHRpb25hbChXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBn
bG9uZyBhcmcpOwogCiAvKioKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfb3ZlcmxvYWRlZF9tZXRo
b2QxOgorICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKKyAqIEBhcmc6IEEgI2dsb25nCisg
KgorICogUmV0dXJuczoKKyAqCisqKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0
X29ial9vdmVybG9hZGVkX21ldGhvZDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgYXJn
KTsKKworLyoqCisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX292ZXJsb2FkZWRfbWV0aG9kMToKKyAq
IEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCisgKiBAdHlwZTogQSAjZ2NoYXIKKyAqCisgKiBS
ZXR1cm5zOgorICoKKyoqLworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX292
ZXJsb2FkZWRfbWV0aG9kMShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdHlw
ZSk7CisKKy8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfcmVhZF9vbmx5X2ludF9hdHRy
OgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkocmV2
aXNpb24gMTAyMzIzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NCwxMSArMTY0LDE0IEBAIHN0YXRp
YyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpDb24KICAgICB7ICJDT05TVF9KQVZBU0NS
SVBUIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX0pBVkFTQ1JJUFQpLCAoaW50cHRy
X3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgSU5UUklOU0lDKERGRzo6Tm9JbnRyaW5zaWMpIH0sCiAg
ICAgeyAiY2xhc3NNZXRob2QiLCBEb250RGVsZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNz
TWV0aG9kKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5v
SW50cmluc2ljKSB9LAogICAgIHsgImNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsIiwgRG9udERlbGV0
ZSB8IEZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhPcHRpb25hbCksIChpbnRwdHJf
dCkxIFRIVU5LX0dFTkVSQVRPUigwKSBJTlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykgfSwKKyNp
ZiBFTkFCTEUoQ29uZGl0aW9uMSkKKyAgICB7ICJvdmVybG9hZGVkTWV0aG9kMSIsIERvbnREZWxl
dGUgfCBGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEpLCAoaW50cHRyX3QpMSBU
SFVOS19HRU5FUkFUT1IoMCkgSU5UUklOU0lDKERGRzo6Tm9JbnRyaW5zaWMpIH0sCisjZW5kaWYK
ICAgICB7IDAsIDAsIDAsIDAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50
cmluc2ljKSB9CiB9OwogCiAjdW5kZWYgVEhVTktfR0VORVJBVE9SCi1zdGF0aWMgY29uc3QgSGFz
aFRhYmxlIEpTVGVzdE9iakNvbnN0cnVjdG9yVGFibGUgPSB7IDM1LCAzMSwgSlNUZXN0T2JqQ29u
c3RydWN0b3JUYWJsZVZhbHVlcywgMCB9Oworc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RP
YmpDb25zdHJ1Y3RvclRhYmxlID0geyAzNiwgMzEsIEpTVGVzdE9iakNvbnN0cnVjdG9yVGFibGVW
YWx1ZXMsIDAgfTsKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKQogQ09NUElMRV9BU1NFUlQoMCA9
PSBUZXN0T2JqOjpDT05ESVRJT05BTF9DT05TVCwgVGVzdE9iakVudW1DT05ESVRJT05BTF9DT05T
VElzV3JvbmdVc2VEb250Q2hlY2tFbnVtcyk7CkBAIC0xODg5LDYgKzE4OTIsNDUgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDbwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0KTsKIH0KIAorI2lmIEVOQUJMRShDb25kaXRpb24xKQorc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJs
b2FkZWRNZXRob2QxMShFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlw
ZUVycm9yKGV4ZWMsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpKTsKKyAgICBpbnQgYXJnKE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIE1pc3NpbmdJc1VuZGVmaW5lZCkudG9JbnQzMihl
eGVjKSk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIFRlc3RPYmo6Om92ZXJsb2FkZWRNZXRo
b2QxKGFyZyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30K
KworI2VuZGlmCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kMTIoRXhlY1N0YXRlKiBleGVjKQoreworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkg
PCAxKQorICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihl
eGVjLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7CisgICAgY29uc3QgU3RyaW5nJiB0eXBlKHVz
dHJpbmdUb1N0cmluZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBNaXNzaW5nSXNV
bmRlZmluZWQpLmlzRW1wdHkoKSA/IFVTdHJpbmcoKSA6IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGV4ZWMsIDAsIE1pc3NpbmdJc1VuZGVmaW5lZCkudG9TdHJpbmcoZXhlYykpKTsKKyAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CisgICAgVGVzdE9iajo6b3ZlcmxvYWRlZE1ldGhvZDEodHlwZSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKworRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3ZlcmxvYWRlZE1l
dGhvZDEoRXhlY1N0YXRlKiBleGVjKQoreworICAgIHNpemVfdCBhcmdzQ291bnQgPSBleGVjLT5h
cmd1bWVudENvdW50KCk7CisgICAgaWYgKGFyZ3NDb3VudCA9PSAxKQorICAgICAgICByZXR1cm4g
anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxMShleGVjKTsKKyAg
ICBKU1ZhbHVlIGFyZzAoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIGlmICgoYXJnc0NvdW50ID09
IDEgJiYgKGFyZzAuaXNVbmRlZmluZWRPck51bGwoKSB8fCBhcmcwLmlzU3RyaW5nKCkgfHwgYXJn
MC5pc09iamVjdCgpKSkpCisgICAgICAgIHJldHVybiBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZDEyKGV4ZWMpOworICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOworfQorCisjZW5kaWYKKwogdm9pZCBKU1Rlc3RPYmo6OnZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU1Rlc3RPYmoqIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4oY2VsbCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCShyZXZpc2lvbiAx
MDIzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4NSw2ICsxODUsNyBAQCBKU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKEpTQzo6RXhlY1N0
YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3Ry
dWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0
aG9kV2l0aE9wdGlvbmFsKEpTQzo6RXhlY1N0YXRlKik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Qx
KEpTQzo6RXhlY1N0YXRlKik7CiAvLyBBdHRyaWJ1dGVzCiAKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RP
YmpSZWFkT25seUludEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L09iakMvRE9NVGVzdE9iai5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAkocmV2aXNpb24gMTAyMzIzKQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNzMsNiArMTczLDggQEAgZW51bSB7CiAtICh2b2lkKWNvbmRpdGlv
bmFsTWV0aG9kMzsKIC0gKHZvaWQpY2xhc3NNZXRob2Q7CiAtIChpbnQpY2xhc3NNZXRob2RXaXRo
T3B0aW9uYWw6KGludClhcmc7CistICh2b2lkKW92ZXJsb2FkZWRNZXRob2QxOihpbnQpYXJnOwor
LSAodm9pZClvdmVybG9hZGVkTWV0aG9kMTooTlNTdHJpbmcgKil0eXBlOwogQGVuZAogCiAjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmoubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L09iakMvRE9NVGVzdE9iai5tbQkocmV2aXNpb24gMTAyMzIzKQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQkod29ya2luZyBjb3B5
KQpAQCAtNzY4LDYgKzc2OCwyNiBAQCAtIChpbnQpY2xhc3NNZXRob2RXaXRoT3B0aW9uYWw6KGlu
dClhcmcKICAgICByZXR1cm4gSU1QTC0+Y2xhc3NNZXRob2RXaXRoT3B0aW9uYWwoYXJnKTsKIH0K
IAorCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpCistICh2b2lkKW92ZXJsb2FkZWRNZXRob2QxOihp
bnQpYXJnCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IElNUEwtPm92ZXJsb2FkZWRNZXRob2QxKGFyZyk7Cit9CisKKyNlbmRpZgorCisKKyNpZiBFTkFC
TEUoQ29uZGl0aW9uMSkKKy0gKHZvaWQpb3ZlcmxvYWRlZE1ldGhvZDE6KE5TU3RyaW5nICopdHlw
ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBM
LT5vdmVybG9hZGVkTWV0aG9kMSh0eXBlKTsKK30KKworI2VuZGlmCisKIEBlbmQKIAogV2ViQ29y
ZTo6VGVzdE9iaiogY29yZShET01UZXN0T2JqICp3cmFwcGVyKQpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAJKHJl
dmlzaW9uIDEwMjMyMykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjg1LDYgKzEyODUsMzcgQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjbGFzc01ldGhvZAogICAgIHJldHVybiB2ODo6SW50
ZWdlcjo6TmV3KFRlc3RPYmo6OmNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKGFyZykpOwogfQogCitz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2QxMUNhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5v
dmVybG9hZGVkTWV0aG9kMTEiKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAg
IHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVF
cnJvcik7CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgYXJnLCB0b0ludDMyKE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDAsIE1pc3NpbmdJc1VuZGVmaW5lZCkpKTsKKyAgICBUZXN0T2Jq
OjpvdmVybG9hZGVkTWV0aG9kMShhcmcpOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4oKTsKK30KKworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9k
MTJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19TVEFUUygi
RE9NLlRlc3RPYmoub3ZlcmxvYWRlZE1ldGhvZDEyIik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBW
OFByb3h5OjpUeXBlRXJyb3IpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05f
QkxPQ0soVjhQYXJhbWV0ZXI8PiwgdHlwZSwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywg
MCwgTWlzc2luZ0lzVW5kZWZpbmVkKSk7CisgICAgVGVzdE9iajo6b3ZlcmxvYWRlZE1ldGhvZDEo
dHlwZSk7CisgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOworfQorCitzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2QxQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm92ZXJsb2Fk
ZWRNZXRob2QxIik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPT0gMSkKKyAgICAgICAgcmV0dXJu
IG92ZXJsb2FkZWRNZXRob2QxMUNhbGxiYWNrKGFyZ3MpOworICAgIGlmICgoYXJncy5MZW5ndGgo
KSA9PSAxICYmIChhcmdzWzBdLT5Jc051bGwoKSB8fCBhcmdzWzBdLT5Jc1VuZGVmaW5lZCgpIHx8
IGFyZ3NbMF0tPklzU3RyaW5nKCkgfHwgYXJnc1swXS0+SXNPYmplY3QoKSkpKQorICAgICAgICBy
ZXR1cm4gb3ZlcmxvYWRlZE1ldGhvZDEyQ2FsbGJhY2soYXJncyk7CisgICAgVjhQcm94eTo6dGhy
b3dUeXBlRXJyb3IoKTsKKyAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKK30K
Kwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkQXRSdW50aW1lTWV0aG9kMUNh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00u
VGVzdE9iai5lbmFibGVkQXRSdW50aW1lTWV0aG9kMSIpOwpAQCAtMTU2MCw2ICsxNTkxLDcgQEAg
c3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYQogICAgIHByb3RvLT5TZXQo
djg6OlN0cmluZzo6TmV3KCJjdXN0b21BcmdzQW5kRXhjZXB0aW9uIiksIHY4OjpGdW5jdGlvblRl
bXBsYXRlOjpOZXcoVGVzdE9iakludGVybmFsOjpjdXN0b21BcmdzQW5kRXhjZXB0aW9uQ2FsbGJh
Y2ssIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpLCBjdXN0b21BcmdzQW5kRXhjZXB0aW9uU2lnbmF0
dXJlKSk7CiAgICAgZGVzYy0+U2V0KHY4OjpTdHJpbmc6Ok5ldygiY2xhc3NNZXRob2QiKSwgdjg6
OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqSW50ZXJuYWw6OmNsYXNzTWV0aG9kQ2FsbGJh
Y2ssIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpLCB2ODo6TG9jYWw8djg6OlNpZ25hdHVyZT4oKSkp
OwogICAgIGRlc2MtPlNldCh2ODo6U3RyaW5nOjpOZXcoImNsYXNzTWV0aG9kV2l0aE9wdGlvbmFs
IiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdE9iakludGVybmFsOjpjbGFzc01ldGhv
ZFdpdGhPcHRpb25hbENhbGxiYWNrLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKSwgdjg6OkxvY2Fs
PHY4OjpTaWduYXR1cmU+KCkpKTsKKyAgICBkZXNjLT5TZXQodjg6OlN0cmluZzo6TmV3KCJvdmVy
bG9hZGVkTWV0aG9kMSIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpJbnRlcm5h
bDo6b3ZlcmxvYWRlZE1ldGhvZDFDYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCksIHY4
OjpMb2NhbDx2ODo6U2lnbmF0dXJlPigpKSk7CiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxRW5hYmxlZCgpKQogICAgICAgICBwcm90by0+U2V0
KHY4OjpTdHJpbmc6Ok5ldygiZW5hYmxlZEF0UnVudGltZU1ldGhvZDEiKSwgdjg6OkZ1bmN0aW9u
VGVtcGxhdGU6Ok5ldyhUZXN0T2JqSW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2Fs
bGJhY2ssIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpLCBkZWZhdWx0U2lnbmF0dXJlKSk7CiAgICAg
aWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmZlYXR1cmVOYW1lRW5hYmxlZCgpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>