<?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>151431</bug_id>
          
          <creation_ts>2015-11-18 21:33:51 -0800</creation_ts>
          <short_desc>Add WebCore namespace for generated bindings for supplemental method calls</short_desc>
          <delta_ts>2015-11-23 11:57:39 -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>Tools / Tests</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="Nikos Andronikos">nikos.andronikos</reporter>
          <assigned_to name="Nikos Andronikos">nikos.andronikos</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>lforschler</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1143178</commentid>
    <comment_count>0</comment_count>
    <who name="Nikos Andronikos">nikos.andronikos</who>
    <bug_when>2015-11-18 21:33:51 -0800</bug_when>
    <thetext>This patch adds &quot;WebCore::&quot; to supplemental method calls for bindings code generated for JS and Objective-C.
This will solve a build failure we have observed while trying to add a partial interface Document binding for the Web Animation API implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143185</commentid>
    <comment_count>1</comment_count>
      <attachid>265845</attachid>
    <who name="Nikos Andronikos">nikos.andronikos</who>
    <bug_when>2015-11-18 21:47:52 -0800</bug_when>
    <thetext>Created attachment 265845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143205</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-11-18 23:27:38 -0800</bug_when>
    <thetext>What is the build failure?  What does the generated code look like?  Is it calling WebCore namespace code from a namespace inside WebCore?  I would believe this change is necessary, but I&apos;d like a little more info.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143293</commentid>
    <comment_count>3</comment_count>
      <attachid>265845</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-11-19 08:50:31 -0800</bug_when>
    <thetext>Comment on attachment 265845
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Add WebCore namespace for generated bindings for supplemental method calls

Why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144103</commentid>
    <comment_count>4</comment_count>
    <who name="Nikos Andronikos">nikos.andronikos</who>
    <bug_when>2015-11-22 16:38:24 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; What is the build failure?  What does the generated code look like?  Is it
&gt; calling WebCore namespace code from a namespace inside WebCore?  I would
&gt; believe this change is necessary, but I&apos;d like a little more info.

The build failure is that the namespace “WebCore::” is missing before the class name.  A little background of what I am implementing:

I am implementing a partial interface extension to the “Document” interface using &quot;Supplement&quot; (see “Supplementable.h”).

The generated code is output into DOMDocument.mm and looks like this:
  
- (DOMDocumentTimeline *)timeline
 {
     WebCore::JSMainThreadNullState state;
     return kit(WTF::getPtr(DocumentAnimation::timeline(IMPL)));
}
  
The compiler complains that “DocumentAnimation” cannot be resolved, because “WebCore::” is missing.  My fix corrects this by adding the namespace to “DocumentAnimation”.
  
Note: It looks to me like the lack of the WebCore namespace specifier was an oversight by the author of the supplemental interface changes. He seems to have corrected that oversight for GObject (see: https://bugs.webkit.org/show_bug.cgi?id=79293), but not here. I presume no code has been generated that has hit this before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144104</commentid>
    <comment_count>5</comment_count>
      <attachid>266073</attachid>
    <who name="Nikos Andronikos">nikos.andronikos</who>
    <bug_when>2015-11-22 16:49:14 -0800</bug_when>
    <thetext>Created attachment 266073
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144105</commentid>
    <comment_count>6</comment_count>
    <who name="Nikos Andronikos">nikos.andronikos</who>
    <bug_when>2015-11-22 16:50:13 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 265845 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=265845&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Add WebCore namespace for generated bindings for supplemental method calls
&gt; 
&gt; Why?

See updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144206</commentid>
    <comment_count>7</comment_count>
      <attachid>266073</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-23 11:57:35 -0800</bug_when>
    <thetext>Comment on attachment 266073
Patch

Clearing flags on attachment: 266073

Committed r192750: &lt;http://trac.webkit.org/changeset/192750&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144207</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-23 11:57:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265845</attachid>
            <date>2015-11-18 21:47:52 -0800</date>
            <delta_ts>2015-11-22 16:49:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151431-20151119164627.patch</filename>
            <type>text/plain</type>
            <size>16844</size>
            <attacher name="Nikos Andronikos">nikos.andronikos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyNjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzUxMGQyZDI1ZjQxY2Iz
NGQ5YTRlMjNjY2I5Yzk1NGU5Y2M1Mjk3NS4uNzJmZmMzNTVjYmZhYTM1Y2UxZGVkYmI0ZThlZGU4
NDY2MTE1MzJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTExLTE4ICBOaWtv
cyBBbmRyb25pa29zIDxuaWtvcy5hbmRyb25pa29zLXdlYmtpdEBjaXNyYS5jYW5vbi5jb20uYXU+
CisKKyAgICAgICAgQWRkIFdlYkNvcmUgbmFtZXNwYWNlIGZvciBnZW5lcmF0ZWQgYmluZGluZ3Mg
Zm9yIHN1cHBsZW1lbnRhbCBtZXRob2QgY2FsbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTQzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkICJXZWJDb3JlOjoiIHRvIGJpbmRpbmcgY29kZSBn
ZW5lcmF0ZWQgZm9yIEpTIGFuZCBPYmpDIGZvciBtZXRob2QgY2FsbHMgZm9yIHN1cHBsZW1lbnRh
bC9wYXJ0aWFsIGludGVyZmFjZSAKKyAgICAgICAgaW1wbGVtZW50YXRpb25zLgorCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0
ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOgorICAgICAgICAo
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0cik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHIp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMSk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNB
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0
cjIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1
cHBsZW1lbnRhbE1ldGhvZDEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2Q0KToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLm1tOgor
ICAgICAgICAoLVtET01UZXN0SW50ZXJmYWNlIHN1cHBsZW1lbnRhbFN0cjFdKToKKyAgICAgICAg
KC1bRE9NVGVzdEludGVyZmFjZSBzdXBwbGVtZW50YWxTdHIyXSk6CisgICAgICAgICgtW0RPTVRl
c3RJbnRlcmZhY2Ugc2V0U3VwcGxlbWVudGFsU3RyMjpdKToKKyAgICAgICAgKC1bRE9NVGVzdElu
dGVyZmFjZSBzdXBwbGVtZW50YWxTdHIzXSk6CisgICAgICAgICgtW0RPTVRlc3RJbnRlcmZhY2Ug
c2V0U3VwcGxlbWVudGFsU3RyMzpdKToKKyAgICAgICAgKC1bRE9NVGVzdEludGVyZmFjZSBzdXBw
bGVtZW50YWxOb2RlXSk6CisgICAgICAgICgtW0RPTVRlc3RJbnRlcmZhY2Ugc2V0U3VwcGxlbWVu
dGFsTm9kZTpdKToKKyAgICAgICAgKC1bRE9NVGVzdEludGVyZmFjZSBidWlsdGluQXR0cmlidXRl
XSk6CisgICAgICAgICgtW0RPTVRlc3RJbnRlcmZhY2Ugc2V0QnVpbHRpbkF0dHJpYnV0ZTpdKToK
KyAgICAgICAgKC1bRE9NVGVzdEludGVyZmFjZSBzdXBwbGVtZW50YWxNZXRob2QxXSk6CisgICAg
ICAgICgtW0RPTVRlc3RJbnRlcmZhY2Ugc3VwcGxlbWVudGFsTWV0aG9kMjpvYmpBcmc6XSk6Cisg
ICAgICAgICgtW0RPTVRlc3RJbnRlcmZhY2Ugc3VwcGxlbWVudGFsTWV0aG9kM10pOgorICAgICAg
ICAoLVtET01UZXN0SW50ZXJmYWNlIHN1cHBsZW1lbnRhbE1ldGhvZDRdKToKKyAgICAgICAgKC1b
RE9NVGVzdEludGVyZmFjZSBidWlsdGluRnVuY3Rpb25dKToKKwogMjAxNS0xMS0xOCAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJHTCBzbG93IHZpZGVvIHRv
IHRleHR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KaW5kZXggYjZlOGIyZmU2NzUyZTY2MDI3MGQ0NjNjMmUzOWQyZGYyZGM3OTYx
MC4uMTMzZTc5NDcxOTA5YjE4OTNkNTc1MWYzNTVkZjIxN2MzZTNiNWMzOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI0
MzYsNyArMjQzNiw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAg
ICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJ
bXBsZW1lbnRlZEJ5In0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRpbXBsZW1lbnRl
ZEJ5ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVt
ZW50ZWRCeSJ9OwogICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtpbXBs
ZW1lbnRlZEJ5fS5oIn0gPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFt
ZSA9ICIke2ltcGxlbWVudGVkQnl9Ojoke2Z1bmN0aW9uTmFtZX0iOworICAgICAgICAgICAgICAg
ICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJXZWJDb3JlOjoke2ltcGxlbWVudGVkQnl9Ojoke2Z1
bmN0aW9uTmFtZX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgdW5zaGlmdChAYXJndW1lbnRz
LCAiJmltcGwiKSBpZiAhJGF0dHJpYnV0ZS0+aXNTdGF0aWM7CiAgICAgICAgICAgICAgICAgICAg
IH0gZWxzaWYgKCRhdHRyaWJ1dGUtPmlzU3RhdGljKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lID0gIiR7aW50ZXJmYWNlTmFtZX06OiR7ZnVuY3Rpb25OYW1lfSI7CkBA
IC0yNzk1LDcgKzI3OTUsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAg
ICAgICAgICAgICAgICAgbXkgJGltcGxlbWVudGVkQnkgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In07CiAgICAgICAgICAgICAgICAg
ICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiJHtpbXBsZW1lbnRlZEJ5fS5oIiwgJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifSk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNoaWZ0KEBhcmd1bWVudHMsICImaW1wbCIpIGlmICEkYXR0
cmlidXRlLT5pc1N0YXRpYzsKLSAgICAgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUg
PSAiJHtpbXBsZW1lbnRlZEJ5fTo6JHtmdW5jdGlvbk5hbWV9IjsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICRmdW5jdGlvbk5hbWUgPSAiV2ViQ29yZTo6JHtpbXBsZW1lbnRlZEJ5fTo6JHtmdW5j
dGlvbk5hbWV9IjsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+aXNT
dGF0aWMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiJHtpbnRl
cmZhY2VOYW1lfTo6JHtmdW5jdGlvbk5hbWV9IjsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKQEAgLTMzMTQsNyArMzMxNCw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAg
IGlmICgkaW1wbGVtZW50ZWRCeSkgewogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiJHtpbXBs
ZW1lbnRlZEJ5fS5oIiwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDb25kaXRpb25hbCJ9KTsKICAgICAgICAgdW5zaGlmdChAYXJndW1lbnRzLCAiJmltcGwiKSBp
ZiAhJGZ1bmN0aW9uLT5pc1N0YXRpYzsKLSAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICIke2ltcGxl
bWVudGVkQnl9Ojoke2Z1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lfSI7CisgICAgICAgICRmdW5j
dGlvbk5hbWUgPSAiV2ViQ29yZTo6JHtpbXBsZW1lbnRlZEJ5fTo6JHtmdW5jdGlvbkltcGxlbWVu
dGF0aW9uTmFtZX0iOwogICAgIH0gZWxzaWYgKCRmdW5jdGlvbi0+aXNTdGF0aWMpIHsKICAgICAg
ICAgJGZ1bmN0aW9uTmFtZSA9ICIke2ludGVyZmFjZU5hbWV9Ojoke2Z1bmN0aW9uSW1wbGVtZW50
YXRpb25OYW1lfSI7CiAgICAgfSBlbHNpZiAoJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBl
IGFuZCAhJHN2Z0xpc3RQcm9wZXJ0eVR5cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCmluZGV4IGYzNzJhMTBlMDMzZWRl
YmZjNTM1OGRmM2ZkMTI0YWYyMGNiZTU2YWEuLjY0NjI4MDNhZjMxYzQ2MmY2N2YxZGE5NjI5Y2Iw
MWM3MDI3ZjgwNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvck9iakMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQpAQCAtMTI5OCw3ICsxMjk4LDcgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In0pIHsKICAgICAgICAgICAgICAgICBt
eSAkaW1wbGVtZW50ZWRCeSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkltcGxlbWVudGVkQnkifTsKICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIk
e2ltcGxlbWVudGVkQnl9LmgifSA9IDE7Ci0gICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRI
ZWFkID0gIiR7aW1wbGVtZW50ZWRCeX06OiR7Z2V0dGVyRXhwcmVzc2lvblByZWZpeH1JTVBMIjsK
KyAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAiV2ViQ29yZTo6JHtpbXBsZW1l
bnRlZEJ5fTo6JHtnZXR0ZXJFeHByZXNzaW9uUHJlZml4fUlNUEwiOwogICAgICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAiSU1QTC0+JGdldHRl
ckV4cHJlc3Npb25QcmVmaXgiOwogICAgICAgICAgICAgfQpAQCAtMTQ0NCw3ICsxNDQ0LDcgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgbXkgJGltcGxl
bWVudGVkQnkgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJ
bXBsZW1lbnRlZEJ5In07CiAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7aW1w
bGVtZW50ZWRCeX0uaCJ9ID0gMTsKICAgICAgICAgICAgICAgICAgICAgdW5zaGlmdChAYXJndW1l
bnRzLCAiSU1QTCIpOwotICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gIiR7aW1w
bGVtZW50ZWRCeX06OiR7ZnVuY3Rpb25OYW1lfSI7CisgICAgICAgICAgICAgICAgICAgICRmdW5j
dGlvbk5hbWUgPSAiV2ViQ29yZTo6JHtpbXBsZW1lbnRlZEJ5fTo6JHtmdW5jdGlvbk5hbWV9IjsK
ICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25O
YW1lID0gIklNUEwtPiR7ZnVuY3Rpb25OYW1lfSI7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTU3
Miw3ICsxNTcyLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAg
ICBteSAkaW1wbGVtZW50ZWRCeSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9OwogICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
IiR7aW1wbGVtZW50ZWRCeX0uaCJ9ID0gMTsKICAgICAgICAgICAgICAgICB1bnNoaWZ0KEBwYXJh
bWV0ZXJOYW1lcywgJGNhbGxlcik7Ci0gICAgICAgICAgICAgICAgJGNvbnRlbnQgPSAiJHtpbXBs
ZW1lbnRlZEJ5fTo6IiAuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRmdW5jdGlvbk5hbWUp
IC4gIigiIC4gam9pbigiLCAiLCBAcGFyYW1ldGVyTmFtZXMpIC4gIikiOworICAgICAgICAgICAg
ICAgICRjb250ZW50ID0gIldlYkNvcmU6OiR7aW1wbGVtZW50ZWRCeX06OiIgLiAkY29kZUdlbmVy
YXRvci0+V0tfbGNmaXJzdCgkZnVuY3Rpb25OYW1lKSAuICIoIiAuIGpvaW4oIiwgIiwgQHBhcmFt
ZXRlck5hbWVzKSAuICIpIjsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg
bXkgJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEFzIn0gfHwgJGNvZGVHZW5lcmF0b3ItPldL
X2xjZmlyc3QoJGZ1bmN0aW9uTmFtZSk7CiAgICAgICAgICAgICAgICAgJGNvbnRlbnQgPSAiJGNh
bGxlci0+IiAuICRmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZSAuICIoIiAuIGpvaW4oIiwgIiwg
QHBhcmFtZXRlck5hbWVzKSAuICIpIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKaW5kZXggZmQ4Y2Vh
MzVkYzJlZmZmMGQ1NGFlZTMxMzY2MTQyMmUzNWMwYmMxZS4uMzI5Nzk0NjYzMWE4NzE0ZTkyMDU1
ODRlOWNlYjgxY2RlY2ZhNjNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKQEAgLTUyNSw3ICs1
MjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1l
bnRhbFN0YXRpY1JlYWRPbmx5QXR0cihFeGVjU3RhdAogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7
CiAgICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKFRlc3RTdXBwbGVtZW50YWw6OnN1cHBs
ZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0cigpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVt
YmVyKFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5
QXR0cigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTUz
Nyw3ICs1MzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1
cHBsZW1lbnRhbFN0YXRpY0F0dHIoRXhlY1N0YXRlKiBzdGF0ZQogICAgIFVOVVNFRF9QQVJBTShz
dGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhp
c1ZhbHVlKTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nV2l0aENhY2hlKHN0YXRlLCBU
ZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdGF0aWNBdHRyKCkpOworICAgIEpTVmFsdWUg
cmVzdWx0ID0ganNTdHJpbmdXaXRoQ2FjaGUoc3RhdGUsIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50
YWw6OnN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShyZXN1bHQpOwogfQogCkBAIC01NTYsNyArNTU2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xv
dEIKICAgICAgICAgcmV0dXJuIHRocm93R2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RJbnRl
cmZhY2UiLCAic3VwcGxlbWVudGFsU3RyMSIpOwogICAgIH0KICAgICBhdXRvJiBpbXBsID0gY2Fz
dGVkVGhpcy0+d3JhcHBlZCgpOwotICAgIEpTVmFsdWUgcmVzdWx0ID0ganNTdHJpbmdXaXRoQ2Fj
aGUoc3RhdGUsIFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0cjEoJmltcGwpKTsKKyAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nV2l0aENhY2hlKHN0YXRlLCBXZWJDb3JlOjpUZXN0
U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdHIxKCZpbXBsKSk7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC01NzUsNyArNTc1LDcgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihFeGVjU3RhdGUqIHN0YXRlLCBKU09i
amVjdCogc2xvdEIKICAgICAgICAgcmV0dXJuIHRocm93R2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwg
IlRlc3RJbnRlcmZhY2UiLCAic3VwcGxlbWVudGFsU3RyMiIpOwogICAgIH0KICAgICBhdXRvJiBp
bXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOwotICAgIEpTVmFsdWUgcmVzdWx0ID0ganNTdHJp
bmdXaXRoQ2FjaGUoc3RhdGUsIFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0cjIoJmlt
cGwpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nV2l0aENhY2hlKHN0YXRlLCBXZWJD
b3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdHIyKCZpbXBsKSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC02MDYsNyArNjA2LDcgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShFeGVjU3RhdGUqIHN0
YXRlLCBKU09iamVjdCogc2xvdEIKICAgICAgICAgcmV0dXJuIHRocm93R2V0dGVyVHlwZUVycm9y
KCpzdGF0ZSwgIlRlc3RJbnRlcmZhY2UiLCAic3VwcGxlbWVudGFsTm9kZSIpOwogICAgIH0KICAg
ICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOwotICAgIEpTVmFsdWUgcmVzdWx0
ID0gdG9KUyhzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKFRl
c3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE5vZGUoJmltcGwpKSk7CisgICAgSlNWYWx1ZSBy
ZXN1bHQgPSB0b0pTKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQ
dHIoV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTm9kZSgmaW1wbCkpKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTcxOSw3ICs3MTks
NyBAQCB2b2lkIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGlj
QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iagogICAgIFN0cmluZyBuYXRpdmVWYWx1ZSA9IHZh
bHVlLnRvU3RyaW5nKHN0YXRlKS0+dmFsdWUoc3RhdGUpOwogICAgIGlmIChVTkxJS0VMWShzdGF0
ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47Ci0gICAgVGVzdFN1cHBsZW1lbnRh
bDo6c2V0U3VwcGxlbWVudGFsU3RhdGljQXR0cihuYXRpdmVWYWx1ZSk7CisgICAgV2ViQ29yZTo6
VGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsU3RhdGljQXR0cihuYXRpdmVWYWx1ZSk7
CiB9CiAKICNlbmRpZgpAQCAtNzQxLDcgKzc0MSw3IEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJmYWNl
U3VwcGxlbWVudGFsU3RyMihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwK
ICAgICBTdHJpbmcgbmF0aXZlVmFsdWUgPSB2YWx1ZS50b1N0cmluZyhzdGF0ZSktPnZhbHVlKHN0
YXRlKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAg
cmV0dXJuOwotICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbFN0cjIoJmltcGws
IG5hdGl2ZVZhbHVlKTsKKyAgICBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVt
ZW50YWxTdHIyKCZpbXBsLCBuYXRpdmVWYWx1ZSk7CiB9CiAKICNlbmRpZgpAQCAtNzc3LDcgKzc3
Nyw3IEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShFeGVjU3RhdGUq
IHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwKICAgICBOb2RlKiBuYXRpdmVWYWx1ZSA9IEpT
Tm9kZTo6dG9XcmFwcGVkKHZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2Vw
dGlvbigpKSkKICAgICAgICAgcmV0dXJuOwotICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBs
ZW1lbnRhbE5vZGUoJmltcGwsIG5hdGl2ZVZhbHVlKTsKKyAgICBXZWJDb3JlOjpUZXN0U3VwcGxl
bWVudGFsOjpzZXRTdXBwbGVtZW50YWxOb2RlKCZpbXBsLCBuYXRpdmVWYWx1ZSk7CiB9CiAKICNl
bmRpZgpAQCAtODYyLDcgKzg2Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QxCiAgICAgICAg
IHJldHVybiB0aHJvd1RoaXNUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdEludGVyZmFjZSIsICJzdXBw
bGVtZW50YWxNZXRob2QxIik7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRU
aGlzLCBKU1Rlc3RJbnRlcmZhY2U6OmluZm8oKSk7CiAgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRo
aXMtPndyYXBwZWQoKTsKLSAgICBUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRob2Qx
KCZpbXBsKTsKKyAgICBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRo
b2QxKCZpbXBsKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCkBAIC04ODksNyArODg5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDIKICAgICBUZXN0
T2JqKiBvYmpBcmcgPSBKU1Rlc3RPYmo6OnRvV3JhcHBlZChzdGF0ZS0+YXJndW1lbnQoMSkpOwog
ICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9K
UyhzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKFRlc3RTdXBw
bGVtZW50YWw6OnN1cHBsZW1lbnRhbE1ldGhvZDIoJmltcGwsIHNjcmlwdENvbnRleHQsIHN0ckFy
Zywgb2JqQXJnLCBlYykpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoc3RhdGUsIGNhc3Rl
ZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihXZWJDb3JlOjpUZXN0U3VwcGxlbWVu
dGFsOjpzdXBwbGVtZW50YWxNZXRob2QyKCZpbXBsLCBzY3JpcHRDb250ZXh0LCBzdHJBcmcsIG9i
akFyZywgZWMpKSk7CiAKICAgICBzZXRET01FeGNlcHRpb24oc3RhdGUsIGVjKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CkBAIC05MTMsNyArOTEzLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBs
ZW1lbnRhbE1ldGhvZDMKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRp
b24xMikKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3JGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDQoRXhlY1N0YXRlKiBzdGF0ZSkKIHsKLSAg
ICBUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRob2Q0KCk7CisgICAgV2ViQ29yZTo6
VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9kNCgpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLm1t
CmluZGV4IDQ5ODcxYmUyNzFmYTUwNzc0NjBiMGE1NTJmNmU5NmIwOTU0MDA2OWMuLjg5NDE5MWIx
NWVlNWRlOGRhNjQwOGVhZjY5NGIzMmQ0MWJjOGExMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdEludGVyZmFj
ZS5tbQpAQCAtMTI0LDcgKzEyNCw3IEBAIC0gKHZvaWQpc2V0SW1wbGVtZW50c05vZGU6KERPTU5v
ZGUgKiluZXdJbXBsZW1lbnRzTm9kZQogLSAoTlNTdHJpbmcgKilzdXBwbGVtZW50YWxTdHIxCiB7
CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBU
ZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdHIxKElNUEwpOworICAgIHJldHVybiBXZWJD
b3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdHIxKElNUEwpOwogfQogI2VuZGlm
CiAKQEAgLTEzMiwxMyArMTMyLDEzIEBAIC0gKE5TU3RyaW5nICopc3VwcGxlbWVudGFsU3RyMQog
LSAoTlNTdHJpbmcgKilzdXBwbGVtZW50YWxTdHIyCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVt
ZW50YWxTdHIyKElNUEwpOworICAgIHJldHVybiBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpz
dXBwbGVtZW50YWxTdHIyKElNUEwpOwogfQogCiAtICh2b2lkKXNldFN1cHBsZW1lbnRhbFN0cjI6
KE5TU3RyaW5nICopbmV3U3VwcGxlbWVudGFsU3RyMgogewogICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50
YWxTdHIyKElNUEwsIG5ld1N1cHBsZW1lbnRhbFN0cjIpOworICAgIFdlYkNvcmU6OlRlc3RTdXBw
bGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbFN0cjIoSU1QTCwgbmV3U3VwcGxlbWVudGFsU3RyMik7
CiB9CiAjZW5kaWYKIApAQCAtMTQ2LDEzICsxNDYsMTMgQEAgLSAodm9pZClzZXRTdXBwbGVtZW50
YWxTdHIyOihOU1N0cmluZyAqKW5ld1N1cHBsZW1lbnRhbFN0cjIKIC0gKE5TU3RyaW5nICopc3Vw
cGxlbWVudGFsU3RyMwogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKLSAgICByZXR1cm4gVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMyhJTVBMKTsK
KyAgICByZXR1cm4gV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMyhJ
TVBMKTsKIH0KIAogLSAodm9pZClzZXRTdXBwbGVtZW50YWxTdHIzOihOU1N0cmluZyAqKW5ld1N1
cHBsZW1lbnRhbFN0cjMKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7Ci0gICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsU3RyMyhJTVBMLCBuZXdT
dXBwbGVtZW50YWxTdHIzKTsKKyAgICBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBw
bGVtZW50YWxTdHIzKElNUEwsIG5ld1N1cHBsZW1lbnRhbFN0cjMpOwogfQogI2VuZGlmCiAKQEAg
LTE2MCw3ICsxNjAsNyBAQCAtICh2b2lkKXNldFN1cHBsZW1lbnRhbFN0cjM6KE5TU3RyaW5nICop
bmV3U3VwcGxlbWVudGFsU3RyMwogLSAoRE9NTm9kZSAqKXN1cHBsZW1lbnRhbE5vZGUKIHsKICAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIGtpdChX
VEY6OmdldFB0cihUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxOb2RlKElNUEwpKSk7Cisg
ICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBw
bGVtZW50YWxOb2RlKElNUEwpKSk7CiB9CiAKIC0gKHZvaWQpc2V0U3VwcGxlbWVudGFsTm9kZToo
RE9NTm9kZSAqKW5ld1N1cHBsZW1lbnRhbE5vZGUKQEAgLTE2OCw3ICsxNjgsNyBAQCAtICh2b2lk
KXNldFN1cHBsZW1lbnRhbE5vZGU6KERPTU5vZGUgKiluZXdTdXBwbGVtZW50YWxOb2RlCiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIEFTU0VSVChuZXdTdXBw
bGVtZW50YWxOb2RlKTsKIAotICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbE5v
ZGUoSU1QTCwgY29yZShuZXdTdXBwbGVtZW50YWxOb2RlKSk7CisgICAgV2ViQ29yZTo6VGVzdFN1
cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsTm9kZShJTVBMLCBjb3JlKG5ld1N1cHBsZW1lbnRh
bE5vZGUpKTsKIH0KICNlbmRpZgogCkBAIC0xNzYsMTMgKzE3NiwxMyBAQCAtICh2b2lkKXNldFN1
cHBsZW1lbnRhbE5vZGU6KERPTU5vZGUgKiluZXdTdXBwbGVtZW50YWxOb2RlCiAtICh1bnNpZ25l
ZCBzaG9ydClidWlsdGluQXR0cmlidXRlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBUZXN0U3VwcGxlbWVudGFsOjpidWlsdGluQXR0cmli
dXRlKElNUEwpOworICAgIHJldHVybiBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpidWlsdGlu
QXR0cmlidXRlKElNUEwpOwogfQogCiAtICh2b2lkKXNldEJ1aWx0aW5BdHRyaWJ1dGU6KHVuc2ln
bmVkIHNob3J0KW5ld0J1aWx0aW5BdHRyaWJ1dGUKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0QnVpbHRpbkF0dHJp
YnV0ZShJTVBMLCBuZXdCdWlsdGluQXR0cmlidXRlKTsKKyAgICBXZWJDb3JlOjpUZXN0U3VwcGxl
bWVudGFsOjpzZXRCdWlsdGluQXR0cmlidXRlKElNUEwsIG5ld0J1aWx0aW5BdHRyaWJ1dGUpOwog
fQogI2VuZGlmCiAKQEAgLTIzNCw3ICsyMzQsNyBAQCAtICh2b2lkKWltcGxlbWVudHNNZXRob2Q0
CiAtICh2b2lkKXN1cHBsZW1lbnRhbE1ldGhvZDEKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0
aG9kMShJTVBMKTsKKyAgICBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxN
ZXRob2QxKElNUEwpOwogfQogCiAjZW5kaWYKQEAgLTI0NSw3ICsyNDUsNyBAQCAtIChET01UZXN0
T2JqICopc3VwcGxlbWVudGFsTWV0aG9kMjooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01U
ZXN0T2JqICopb2JqQQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBET01UZXN0T2JqICpy
ZXN1bHQgPSBraXQoV1RGOjpnZXRQdHIoVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0
aG9kMihJTVBMLCBzdHJBcmcsIGNvcmUob2JqQXJnKSwgZWMpKSk7CisgICAgRE9NVGVzdE9iaiAq
cmVzdWx0ID0ga2l0KFdURjo6Z2V0UHRyKFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBs
ZW1lbnRhbE1ldGhvZDIoSU1QTCwgc3RyQXJnLCBjb3JlKG9iakFyZyksIGVjKSkpOwogICAgIFdl
YkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTI1
Nyw3ICsyNTcsNyBAQCAtIChET01UZXN0T2JqICopc3VwcGxlbWVudGFsTWV0aG9kMjooTlNTdHJp
bmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQQogLSAodm9pZClzdXBwbGVtZW50
YWxNZXRob2QzCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwot
ICAgIFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE1ldGhvZDMoSU1QTCk7CisgICAgV2Vi
Q29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9kMyhJTVBMKTsKIH0KIAog
I2VuZGlmCkBAIC0yNjcsNyArMjY3LDcgQEAgLSAodm9pZClzdXBwbGVtZW50YWxNZXRob2QzCiAt
ICh2b2lkKXN1cHBsZW1lbnRhbE1ldGhvZDQKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7Ci0gICAgVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9k
NChJTVBMKTsKKyAgICBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRo
b2Q0KElNUEwpOwogfQogCiAjZW5kaWYKQEAgLTI3Nyw3ICsyNzcsNyBAQCAtICh2b2lkKXN1cHBs
ZW1lbnRhbE1ldGhvZDQKIC0gKHZvaWQpYnVpbHRpbkZ1bmN0aW9uCiB7CiAgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFRlc3RTdXBwbGVtZW50YWw6OmJ1aWx0
aW5GdW5jdGlvbihJTVBMKTsKKyAgICBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpidWlsdGlu
RnVuY3Rpb24oSU1QTCk7CiB9CiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266073</attachid>
            <date>2015-11-22 16:49:14 -0800</date>
            <delta_ts>2015-11-23 11:57:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151431-20151123114750.patch</filename>
            <type>text/plain</type>
            <size>16977</size>
            <attacher name="Nikos Andronikos">nikos.andronikos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyNzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVmMWEyM2UyMjhlN2Rk
YzBjOGJkMGJlMDFmNTA2NzAwZDc2YzljMS4uZjBlYWZmMDEyNzdmZmExZTRjYzZjMWEyMGRiMzNm
YTVlNmYxZDgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE1LTExLTIyICBOaWtv
cyBBbmRyb25pa29zIDxuaWtvcy5hbmRyb25pa29zLXdlYmtpdEBjaXNyYS5jYW5vbi5jb20uYXU+
CisKKyAgICAgICAgQWRkIFdlYkNvcmUgbmFtZXNwYWNlIGZvciBnZW5lcmF0ZWQgYmluZGluZ3Mg
Zm9yIHN1cHBsZW1lbnRhbCBtZXRob2QgY2FsbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTQzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZHJlc3MgYnVpbGQgZmFpbHVyZXMgZm9yIGdlbmVyYXRl
ZCBzdXBwbGVtZW50YWwgbWV0aG9kIGNhbGxzIHdoaWNoIGFyZSBpbiB0aGUgV2ViQ29yZSBuYW1l
c3BhY2UuIAorICAgICAgICBUaGUgYmluZGluZ3MgYXJlIG91dHNpZGUgdGhlIFdlYkNvcmUgbmFt
ZXNwYWNlIC0gc28gYWRkIFdlYkNvcmUgbmFtZXNwYWNlIHNwZWNpZmllciB3aGVyZSByZXF1aXJl
ZC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAg
ICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6
CisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50
YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBw
bGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50
ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjEpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2Qx
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3Vw
cGxlbWVudGFsTWV0aG9kMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VDb25z
dHJ1Y3RvckZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kNCk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdEludGVyZmFjZS5tbToKKyAgICAgICAgKC1bRE9NVGVz
dEludGVyZmFjZSBzdXBwbGVtZW50YWxTdHIxXSk6CisgICAgICAgICgtW0RPTVRlc3RJbnRlcmZh
Y2Ugc3VwcGxlbWVudGFsU3RyMl0pOgorICAgICAgICAoLVtET01UZXN0SW50ZXJmYWNlIHNldFN1
cHBsZW1lbnRhbFN0cjI6XSk6CisgICAgICAgICgtW0RPTVRlc3RJbnRlcmZhY2Ugc3VwcGxlbWVu
dGFsU3RyM10pOgorICAgICAgICAoLVtET01UZXN0SW50ZXJmYWNlIHNldFN1cHBsZW1lbnRhbFN0
cjM6XSk6CisgICAgICAgICgtW0RPTVRlc3RJbnRlcmZhY2Ugc3VwcGxlbWVudGFsTm9kZV0pOgor
ICAgICAgICAoLVtET01UZXN0SW50ZXJmYWNlIHNldFN1cHBsZW1lbnRhbE5vZGU6XSk6CisgICAg
ICAgICgtW0RPTVRlc3RJbnRlcmZhY2UgYnVpbHRpbkF0dHJpYnV0ZV0pOgorICAgICAgICAoLVtE
T01UZXN0SW50ZXJmYWNlIHNldEJ1aWx0aW5BdHRyaWJ1dGU6XSk6CisgICAgICAgICgtW0RPTVRl
c3RJbnRlcmZhY2Ugc3VwcGxlbWVudGFsTWV0aG9kMV0pOgorICAgICAgICAoLVtET01UZXN0SW50
ZXJmYWNlIHN1cHBsZW1lbnRhbE1ldGhvZDI6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0
SW50ZXJmYWNlIHN1cHBsZW1lbnRhbE1ldGhvZDNdKToKKyAgICAgICAgKC1bRE9NVGVzdEludGVy
ZmFjZSBzdXBwbGVtZW50YWxNZXRob2Q0XSk6CisgICAgICAgICgtW0RPTVRlc3RJbnRlcmZhY2Ug
YnVpbHRpbkZ1bmN0aW9uXSk6CisKIDIwMTUtMTEtMjIgIE15bGVzIEMuIE1heGZpZWxkICA8bW1h
eGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBGb250IHNlbGVjdGlvbiBzaG91bGQgbm90IGNv
bnN1bHQgZm9udC12YXJpYW50IHByb3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDQ3M2U1ZWE2NDc4ZDJiZGVkMDM0
NmY2NGYwOTI2YTM0ZWI3YmY3NGUuLjQ0ODVlZGRkZWVlMzlhNGZkNzNmMGRlOTMxZGMyOTA1MmRm
ZjFhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC0yNDM5LDcgKzI0MzksNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgICAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9KSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBteSAkaW1wbGVtZW50ZWRCeSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifTsKICAgICAgICAgICAgICAgICAgICAgICAgICRp
bXBsSW5jbHVkZXN7IiR7aW1wbGVtZW50ZWRCeX0uaCJ9ID0gMTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICRmdW5jdGlvbk5hbWUgPSAiJHtpbXBsZW1lbnRlZEJ5fTo6JHtmdW5jdGlvbk5hbWV9
IjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiV2ViQ29yZTo6JHtp
bXBsZW1lbnRlZEJ5fTo6JHtmdW5jdGlvbk5hbWV9IjsKICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2hpZnQoQGFyZ3VtZW50cywgIiZpbXBsIikgaWYgISRhdHRyaWJ1dGUtPmlzU3RhdGljOwog
ICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5pc1N0YXRpYykgewogICAg
ICAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICIke2ludGVyZmFjZU5hbWV9Ojok
e2Z1bmN0aW9uTmFtZX0iOwpAQCAtMjc5OCw3ICsyNzk4LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRpbXBsZW1lbnRlZEJ5ID0gJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9
OwogICAgICAgICAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIiR7aW1wbGVtZW50
ZWRCeX0uaCIsICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNv
bmRpdGlvbmFsIn0pOwogICAgICAgICAgICAgICAgICAgICAgICAgdW5zaGlmdChAYXJndW1lbnRz
LCAiJmltcGwiKSBpZiAhJGF0dHJpYnV0ZS0+aXNTdGF0aWM7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAkZnVuY3Rpb25OYW1lID0gIiR7aW1wbGVtZW50ZWRCeX06OiR7ZnVuY3Rpb25OYW1lfSI7
CisgICAgICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gIldlYkNvcmU6OiR7aW1w
bGVtZW50ZWRCeX06OiR7ZnVuY3Rpb25OYW1lfSI7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxz
aWYgKCRhdHRyaWJ1dGUtPmlzU3RhdGljKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb25OYW1lID0gIiR7aW50ZXJmYWNlTmFtZX06OiR7ZnVuY3Rpb25OYW1lfSI7CiAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0zMzE3LDcgKzMzMTcsNyBAQCBzdWIgR2VuZXJhdGVQ
YXJhbWV0ZXJzQ2hlY2sKICAgICBpZiAoJGltcGxlbWVudGVkQnkpIHsKICAgICAgICAgQWRkVG9J
bXBsSW5jbHVkZXMoIiR7aW1wbGVtZW50ZWRCeX0uaCIsICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifSk7CiAgICAgICAgIHVuc2hpZnQoQGFy
Z3VtZW50cywgIiZpbXBsIikgaWYgISRmdW5jdGlvbi0+aXNTdGF0aWM7Ci0gICAgICAgICRmdW5j
dGlvbk5hbWUgPSAiJHtpbXBsZW1lbnRlZEJ5fTo6JHtmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFt
ZX0iOworICAgICAgICAkZnVuY3Rpb25OYW1lID0gIldlYkNvcmU6OiR7aW1wbGVtZW50ZWRCeX06
OiR7ZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWV9IjsKICAgICB9IGVsc2lmICgkZnVuY3Rpb24t
PmlzU3RhdGljKSB7CiAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiJHtpbnRlcmZhY2VOYW1lfTo6
JHtmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZX0iOwogICAgIH0gZWxzaWYgKCRzdmdQcm9wZXJ0
eU9yTGlzdFByb3BlcnR5VHlwZSBhbmQgISRzdmdMaXN0UHJvcGVydHlUeXBlKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBt
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQpp
bmRleCBmMzcyYTEwZTAzM2VkZWJmYzUzNThkZjNmZDEyNGFmMjBjYmU1NmFhLi42NDYyODAzYWYz
MWM0NjJmNjdmMWRhOTYyOWNiMDFjNzAyN2Y4MDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KQEAgLTEyOTgsNyArMTI5
OCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBpZiAoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9KSB7
CiAgICAgICAgICAgICAgICAgbXkgJGltcGxlbWVudGVkQnkgPSAkYXR0cmlidXRlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In07CiAgICAgICAgICAgICAg
ICAgJGltcGxJbmNsdWRlc3siJHtpbXBsZW1lbnRlZEJ5fS5oIn0gPSAxOwotICAgICAgICAgICAg
ICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICIke2ltcGxlbWVudGVkQnl9Ojoke2dldHRlckV4cHJl
c3Npb25QcmVmaXh9SU1QTCI7CisgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRIZWFkID0g
IldlYkNvcmU6OiR7aW1wbGVtZW50ZWRCeX06OiR7Z2V0dGVyRXhwcmVzc2lvblByZWZpeH1JTVBM
IjsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRI
ZWFkID0gIklNUEwtPiRnZXR0ZXJFeHByZXNzaW9uUHJlZml4IjsKICAgICAgICAgICAgIH0KQEAg
LTE0NDQsNyArMTQ0NCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAg
ICAgICAgICAgIG15ICRpbXBsZW1lbnRlZEJ5ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9OwogICAgICAgICAgICAgICAgICAgICAk
aW1wbEluY2x1ZGVzeyIke2ltcGxlbWVudGVkQnl9LmgifSA9IDE7CiAgICAgICAgICAgICAgICAg
ICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgIklNUEwiKTsKLSAgICAgICAgICAgICAgICAgICAgJGZ1
bmN0aW9uTmFtZSA9ICIke2ltcGxlbWVudGVkQnl9Ojoke2Z1bmN0aW9uTmFtZX0iOworICAgICAg
ICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gIldlYkNvcmU6OiR7aW1wbGVtZW50ZWRCeX06
OiR7ZnVuY3Rpb25OYW1lfSI7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJJTVBMLT4ke2Z1bmN0aW9uTmFtZX0iOwogICAgICAg
ICAgICAgICAgIH0KQEAgLTE1NzIsNyArMTU3Miw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgICAgICAgICAgICAgbXkgJGltcGxlbWVudGVkQnkgPSAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifTsKICAgICAgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyIke2ltcGxlbWVudGVkQnl9LmgifSA9IDE7CiAgICAgICAgICAg
ICAgICAgdW5zaGlmdChAcGFyYW1ldGVyTmFtZXMsICRjYWxsZXIpOwotICAgICAgICAgICAgICAg
ICRjb250ZW50ID0gIiR7aW1wbGVtZW50ZWRCeX06OiIgLiAkY29kZUdlbmVyYXRvci0+V0tfbGNm
aXJzdCgkZnVuY3Rpb25OYW1lKSAuICIoIiAuIGpvaW4oIiwgIiwgQHBhcmFtZXRlck5hbWVzKSAu
ICIpIjsKKyAgICAgICAgICAgICAgICAkY29udGVudCA9ICJXZWJDb3JlOjoke2ltcGxlbWVudGVk
Qnl9OjoiIC4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGZ1bmN0aW9uTmFtZSkgLiAiKCIg
LiBqb2luKCIsICIsIEBwYXJhbWV0ZXJOYW1lcykgLiAiKSI7CiAgICAgICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZSA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRBcyJ9IHx8
ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRmdW5jdGlvbk5hbWUpOwogICAgICAgICAgICAg
ICAgICRjb250ZW50ID0gIiRjYWxsZXItPiIgLiAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUg
LiAiKCIgLiBqb2luKCIsICIsIEBwYXJhbWV0ZXJOYW1lcykgLiAiKSI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuY3BwCmluZGV4IGZkOGNlYTM1ZGMyZWZmZjBkNTRhZWUzMTM2NjE0MjJlMzVjMGJjMWUuLjMy
OTc5NDY2MzFhODcxNGU5MjA1NTg0ZTljZWI4MWNkZWNmYTYzYTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIoRXhlY1N0YXQKICAgICBV
TlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5V
U0VEX1BBUkFNKHRoaXNWYWx1ZSk7Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihUZXN0
U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIoKSk7CisgICAgSlNW
YWx1ZSByZXN1bHQgPSBqc051bWJlcihXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVt
ZW50YWxTdGF0aWNSZWFkT25seUF0dHIoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShy
ZXN1bHQpOwogfQogCkBAIC01MzcsNyArNTM3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKEV4ZWNTdGF0ZSogc3RhdGUK
ICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBqc1N0cmlu
Z1dpdGhDYWNoZShzdGF0ZSwgVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RhdGljQXR0
cigpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nV2l0aENhY2hlKHN0YXRlLCBXZWJD
b3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdGF0aWNBdHRyKCkpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApAQCAtNTU2LDcgKzU1Niw3IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjEoRXhlY1N0YXRlKiBz
dGF0ZSwgSlNPYmplY3QqIHNsb3RCCiAgICAgICAgIHJldHVybiB0aHJvd0dldHRlclR5cGVFcnJv
cigqc3RhdGUsICJUZXN0SW50ZXJmYWNlIiwgInN1cHBsZW1lbnRhbFN0cjEiKTsKICAgICB9CiAg
ICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKLSAgICBKU1ZhbHVlIHJlc3Vs
dCA9IGpzU3RyaW5nV2l0aENhY2hlKHN0YXRlLCBUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50
YWxTdHIxKCZpbXBsKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc1N0cmluZ1dpdGhDYWNoZShz
dGF0ZSwgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMSgmaW1wbCkp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApAQCAtNTc1LDcgKzU3
NSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCCiAgICAgICAgIHJldHVybiB0aHJvd0dldHRl
clR5cGVFcnJvcigqc3RhdGUsICJUZXN0SW50ZXJmYWNlIiwgInN1cHBsZW1lbnRhbFN0cjIiKTsK
ICAgICB9CiAgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKLSAgICBKU1Zh
bHVlIHJlc3VsdCA9IGpzU3RyaW5nV2l0aENhY2hlKHN0YXRlLCBUZXN0U3VwcGxlbWVudGFsOjpz
dXBwbGVtZW50YWxTdHIyKCZpbXBsKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc1N0cmluZ1dp
dGhDYWNoZShzdGF0ZSwgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3Ry
MigmaW1wbCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApAQCAt
NjA2LDcgKzYwNiw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRh
bE5vZGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCCiAgICAgICAgIHJldHVybiB0
aHJvd0dldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0SW50ZXJmYWNlIiwgInN1cHBsZW1lbnRh
bE5vZGUiKTsKICAgICB9CiAgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsK
LSAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVj
dCgpLCBXVEY6OmdldFB0cihUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxOb2RlKCZpbXBs
KSkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFs
T2JqZWN0KCksIFdURjo6Z2V0UHRyKFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1l
bnRhbE5vZGUoJmltcGwpKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
fQogCkBAIC03MTksNyArNzE5LDcgQEAgdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
clN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmoKICAgICBTdHJp
bmcgbmF0aXZlVmFsdWUgPSB2YWx1ZS50b1N0cmluZyhzdGF0ZSktPnZhbHVlKHN0YXRlKTsKICAg
ICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbFN0YXRpY0F0dHIobmF0aXZlVmFs
dWUpOworICAgIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbFN0YXRp
Y0F0dHIobmF0aXZlVmFsdWUpOwogfQogCiAjZW5kaWYKQEAgLTc0MSw3ICs3NDEsNyBAQCB2b2lk
IHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNP
YmplY3QqIGJhc2VPYmplY3QsCiAgICAgU3RyaW5nIG5hdGl2ZVZhbHVlID0gdmFsdWUudG9TdHJp
bmcoc3RhdGUpLT52YWx1ZShzdGF0ZSk7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNl
cHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKLSAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBw
bGVtZW50YWxTdHIyKCZpbXBsLCBuYXRpdmVWYWx1ZSk7CisgICAgV2ViQ29yZTo6VGVzdFN1cHBs
ZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsU3RyMigmaW1wbCwgbmF0aXZlVmFsdWUpOwogfQogCiAj
ZW5kaWYKQEAgLTc3Nyw3ICs3NzcsNyBAQCB2b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1l
bnRhbE5vZGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsCiAgICAgTm9k
ZSogbmF0aXZlVmFsdWUgPSBKU05vZGU6OnRvV3JhcHBlZCh2YWx1ZSk7CiAgICAgaWYgKFVOTElL
RUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKLSAgICBUZXN0U3Vw
cGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxOb2RlKCZpbXBsLCBuYXRpdmVWYWx1ZSk7CisgICAg
V2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsTm9kZSgmaW1wbCwgbmF0
aXZlVmFsdWUpOwogfQogCiAjZW5kaWYKQEAgLTg2Miw3ICs4NjIsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVu
dGFsTWV0aG9kMQogICAgICAgICByZXR1cm4gdGhyb3dUaGlzVHlwZUVycm9yKCpzdGF0ZSwgIlRl
c3RJbnRlcmZhY2UiLCAic3VwcGxlbWVudGFsTWV0aG9kMSIpOwogICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0SW50ZXJmYWNlOjppbmZvKCkpOwogICAgIGF1
dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7Ci0gICAgVGVzdFN1cHBsZW1lbnRhbDo6
c3VwcGxlbWVudGFsTWV0aG9kMSgmaW1wbCk7CisgICAgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRh
bDo6c3VwcGxlbWVudGFsTWV0aG9kMSgmaW1wbCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIApAQCAtODg5LDcgKzg4OSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50
YWxNZXRob2QyCiAgICAgVGVzdE9iaiogb2JqQXJnID0gSlNUZXN0T2JqOjp0b1dyYXBwZWQoc3Rh
dGUtPmFyZ3VtZW50KDEpKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigp
KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBK
U1ZhbHVlIHJlc3VsdCA9IHRvSlMoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBX
VEY6OmdldFB0cihUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRob2QyKCZpbXBsLCBz
Y3JpcHRDb250ZXh0LCBzdHJBcmcsIG9iakFyZywgZWMpKSk7CisgICAgSlNWYWx1ZSByZXN1bHQg
PSB0b0pTKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoV2Vi
Q29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9kMigmaW1wbCwgc2NyaXB0
Q29udGV4dCwgc3RyQXJnLCBvYmpBcmcsIGVjKSkpOwogCiAgICAgc2V0RE9NRXhjZXB0aW9uKHN0
YXRlLCBlYyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtOTEzLDcg
KzkxMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QzCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEx
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2Q0KEV4ZWNT
dGF0ZSogc3RhdGUpCiB7Ci0gICAgVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9k
NCgpOworICAgIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE1ldGhvZDQo
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
SW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdEludGVyZmFjZS5tbQppbmRleCA0OTg3MWJlMjcxZmE1MDc3NDYwYjBhNTUyZjZlOTZi
MDk1NDAwNjljLi44OTQxOTFiMTVlZTVkZThkYTY0MDhlYWY2OTRiMzJkNDFiYzhhMTM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
SW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9P
YmpDL0RPTVRlc3RJbnRlcmZhY2UubW0KQEAgLTEyNCw3ICsxMjQsNyBAQCAtICh2b2lkKXNldElt
cGxlbWVudHNOb2RlOihET01Ob2RlICopbmV3SW1wbGVtZW50c05vZGUKIC0gKE5TU3RyaW5nICop
c3VwcGxlbWVudGFsU3RyMQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKLSAgICByZXR1cm4gVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMShJTVBM
KTsKKyAgICByZXR1cm4gV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3Ry
MShJTVBMKTsKIH0KICNlbmRpZgogCkBAIC0xMzIsMTMgKzEzMiwxMyBAQCAtIChOU1N0cmluZyAq
KXN1cHBsZW1lbnRhbFN0cjEKIC0gKE5TU3RyaW5nICopc3VwcGxlbWVudGFsU3RyMgogewogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gVGVzdFN1
cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMihJTVBMKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6
VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMihJTVBMKTsKIH0KIAogLSAodm9pZClz
ZXRTdXBwbGVtZW50YWxTdHIyOihOU1N0cmluZyAqKW5ld1N1cHBsZW1lbnRhbFN0cjIKIHsKICAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgVGVzdFN1cHBsZW1l
bnRhbDo6c2V0U3VwcGxlbWVudGFsU3RyMihJTVBMLCBuZXdTdXBwbGVtZW50YWxTdHIyKTsKKyAg
ICBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxTdHIyKElNUEwsIG5l
d1N1cHBsZW1lbnRhbFN0cjIpOwogfQogI2VuZGlmCiAKQEAgLTE0NiwxMyArMTQ2LDEzIEBAIC0g
KHZvaWQpc2V0U3VwcGxlbWVudGFsU3RyMjooTlNTdHJpbmcgKiluZXdTdXBwbGVtZW50YWxTdHIy
CiAtIChOU1N0cmluZyAqKXN1cHBsZW1lbnRhbFN0cjMKIHsKICAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIFRlc3RTdXBwbGVtZW50YWw6OnN1cHBs
ZW1lbnRhbFN0cjMoSU1QTCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6
OnN1cHBsZW1lbnRhbFN0cjMoSU1QTCk7CiB9CiAKIC0gKHZvaWQpc2V0U3VwcGxlbWVudGFsU3Ry
MzooTlNTdHJpbmcgKiluZXdTdXBwbGVtZW50YWxTdHIzCiB7CiAgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1l
bnRhbFN0cjMoSU1QTCwgbmV3U3VwcGxlbWVudGFsU3RyMyk7CisgICAgV2ViQ29yZTo6VGVzdFN1
cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsU3RyMyhJTVBMLCBuZXdTdXBwbGVtZW50YWxTdHIz
KTsKIH0KICNlbmRpZgogCkBAIC0xNjAsNyArMTYwLDcgQEAgLSAodm9pZClzZXRTdXBwbGVtZW50
YWxTdHIzOihOU1N0cmluZyAqKW5ld1N1cHBsZW1lbnRhbFN0cjMKIC0gKERPTU5vZGUgKilzdXBw
bGVtZW50YWxOb2RlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OwotICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVu
dGFsTm9kZShJTVBMKSkpOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoV2ViQ29yZTo6VGVz
dFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTm9kZShJTVBMKSkpOwogfQogCiAtICh2b2lkKXNl
dFN1cHBsZW1lbnRhbE5vZGU6KERPTU5vZGUgKiluZXdTdXBwbGVtZW50YWxOb2RlCkBAIC0xNjgs
NyArMTY4LDcgQEAgLSAodm9pZClzZXRTdXBwbGVtZW50YWxOb2RlOihET01Ob2RlICopbmV3U3Vw
cGxlbWVudGFsTm9kZQogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
ICAgICBBU1NFUlQobmV3U3VwcGxlbWVudGFsTm9kZSk7CiAKLSAgICBUZXN0U3VwcGxlbWVudGFs
OjpzZXRTdXBwbGVtZW50YWxOb2RlKElNUEwsIGNvcmUobmV3U3VwcGxlbWVudGFsTm9kZSkpOwor
ICAgIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbE5vZGUoSU1QTCwg
Y29yZShuZXdTdXBwbGVtZW50YWxOb2RlKSk7CiB9CiAjZW5kaWYKIApAQCAtMTc2LDEzICsxNzYs
MTMgQEAgLSAodm9pZClzZXRTdXBwbGVtZW50YWxOb2RlOihET01Ob2RlICopbmV3U3VwcGxlbWVu
dGFsTm9kZQogLSAodW5zaWduZWQgc2hvcnQpYnVpbHRpbkF0dHJpYnV0ZQogewogICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gVGVzdFN1cHBsZW1l
bnRhbDo6YnVpbHRpbkF0dHJpYnV0ZShJTVBMKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6VGVzdFN1
cHBsZW1lbnRhbDo6YnVpbHRpbkF0dHJpYnV0ZShJTVBMKTsKIH0KIAogLSAodm9pZClzZXRCdWls
dGluQXR0cmlidXRlOih1bnNpZ25lZCBzaG9ydCluZXdCdWlsdGluQXR0cmlidXRlCiB7CiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFRlc3RTdXBwbGVtZW50
YWw6OnNldEJ1aWx0aW5BdHRyaWJ1dGUoSU1QTCwgbmV3QnVpbHRpbkF0dHJpYnV0ZSk7CisgICAg
V2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c2V0QnVpbHRpbkF0dHJpYnV0ZShJTVBMLCBuZXdC
dWlsdGluQXR0cmlidXRlKTsKIH0KICNlbmRpZgogCkBAIC0yMzQsNyArMjM0LDcgQEAgLSAodm9p
ZClpbXBsZW1lbnRzTWV0aG9kNAogLSAodm9pZClzdXBwbGVtZW50YWxNZXRob2QxCiB7CiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFRlc3RTdXBwbGVtZW50
YWw6OnN1cHBsZW1lbnRhbE1ldGhvZDEoSU1QTCk7CisgICAgV2ViQ29yZTo6VGVzdFN1cHBsZW1l
bnRhbDo6c3VwcGxlbWVudGFsTWV0aG9kMShJTVBMKTsKIH0KIAogI2VuZGlmCkBAIC0yNDUsNyAr
MjQ1LDcgQEAgLSAoRE9NVGVzdE9iaiAqKXN1cHBsZW1lbnRhbE1ldGhvZDI6KE5TU3RyaW5nICop
c3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakEKIHsKICAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgRE9NVGVzdE9iaiAqcmVzdWx0ID0ga2l0KFdURjo6Z2V0UHRyKFRlc3RTdXBwbGVtZW50
YWw6OnN1cHBsZW1lbnRhbE1ldGhvZDIoSU1QTCwgc3RyQXJnLCBjb3JlKG9iakFyZyksIGVjKSkp
OworICAgIERPTVRlc3RPYmogKnJlc3VsdCA9IGtpdChXVEY6OmdldFB0cihXZWJDb3JlOjpUZXN0
U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRob2QyKElNUEwsIHN0ckFyZywgY29yZShvYmpB
cmcpLCBlYykpKTsKICAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwogICAgIHJldHVy
biByZXN1bHQ7CiB9CkBAIC0yNTcsNyArMjU3LDcgQEAgLSAoRE9NVGVzdE9iaiAqKXN1cHBsZW1l
bnRhbE1ldGhvZDI6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakEK
IC0gKHZvaWQpc3VwcGxlbWVudGFsTWV0aG9kMwogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRo
b2QzKElNUEwpOworICAgIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE1l
dGhvZDMoSU1QTCk7CiB9CiAKICNlbmRpZgpAQCAtMjY3LDcgKzI2Nyw3IEBAIC0gKHZvaWQpc3Vw
cGxlbWVudGFsTWV0aG9kMwogLSAodm9pZClzdXBwbGVtZW50YWxNZXRob2Q0CiB7CiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFRlc3RTdXBwbGVtZW50YWw6
OnN1cHBsZW1lbnRhbE1ldGhvZDQoSU1QTCk7CisgICAgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRh
bDo6c3VwcGxlbWVudGFsTWV0aG9kNChJTVBMKTsKIH0KIAogI2VuZGlmCkBAIC0yNzcsNyArMjc3
LDcgQEAgLSAodm9pZClzdXBwbGVtZW50YWxNZXRob2Q0CiAtICh2b2lkKWJ1aWx0aW5GdW5jdGlv
bgogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBUZXN0
U3VwcGxlbWVudGFsOjpidWlsdGluRnVuY3Rpb24oSU1QTCk7CisgICAgV2ViQ29yZTo6VGVzdFN1
cHBsZW1lbnRhbDo6YnVpbHRpbkZ1bmN0aW9uKElNUEwpOwogfQogCiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>