<?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>156863</bug_id>
          
          <creation_ts>2016-04-21 13:26:02 -0700</creation_ts>
          <short_desc>Web Inspector: Source directives lost when using Function constructor repeatedly</short_desc>
          <delta_ts>2016-04-22 17:40:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>156022</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mattbaker</cc>
    
    <cc>msaboff</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1185904</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-21 13:26:02 -0700</bug_when>
    <thetext>* SUMMARY
Source directives lost when using Function constructor repeatedly.

* TEST
&lt;script&gt;
console.log(Function(&quot;\n//# sourceURL=test.js\nreturn 1+1&quot;)());
&lt;/script&gt;

* STEPS TO REPRODUCE
1. Inspect test page
2. Reload
  =&gt; notice &quot;test.js&quot; shows up in Resources sidebar in Extra Scripts folder
3. Reload again and again
  =&gt; notice &quot;test.js&quot; no longer shows up in Resources sidebar in Extra Scripts folder

* NOTES
From bug 156022. When constructing the executable for `Function(str)` we go through:

    frame #0: JSC::CodeCache::getFunctionExecutableFromGlobalCode
    frame #1: JSC::UnlinkedFunctionExecutable::fromGlobalCode
    frame #2: JSC::FunctionExecutable::fromGlobalCode
    frame #3: JSC::constructFunctionSkippingEvalEnabledCheck
    frame #4: JSC::constructFunction
    frame #5: JSC::constructFunction
    frame #6: JSC::callFunctionConstructor

At which point if we do not have it in the CodeCache we parse it. If we do have this in the code cache, we return the cached unlinked function executable skipping parsing.

By skipping parsing we don&apos;t update the SourceProvider with the sourceURL/sourceMappingURL, because we normally do that under JSC::Parser&lt;&gt;::parse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185905</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-04-21 13:26:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/25861064&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185927</commentid>
    <comment_count>2</comment_count>
      <attachid>276954</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-21 13:54:53 -0700</bug_when>
    <thetext>Created attachment 276954
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185960</commentid>
    <comment_count>3</comment_count>
      <attachid>276954</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-04-21 14:35:13 -0700</bug_when>
    <thetext>Comment on attachment 276954
[PATCH] Proposed Fix

What about cached non-function code, like program code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186000</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-21 16:19:53 -0700</bug_when>
    <thetext>&gt; What about cached non-function code, like program code?

I was unable to get them to reproduce this issue.

The cases I know about are:

   - Program or Module
     - &lt;script&gt; / API typically have a URL which dominates even if a sourceURL
   - Eval
     - eval() may have a sourceURL
   - Function
     - Function() may have a sourceURL
     - HTML inline event listeners &lt;body onload=&quot;foo&quot;&gt;

Programs, at least from a web page, don&apos;t seem to have this issue. This handles `Function()`. I couldn&apos;t reproduce the issue with `eval`.

For example:

    &lt;script&gt;
    console.log(eval(&quot;\n//# sourceURL=test.js\nconsole.log(1)&quot;));
    console.log(eval(&quot;\n//# sourceURL=test.js\nconsole.log(2)&quot;));
    &lt;/script&gt;

Most of the time the cache is avoided if breakpoints are on which would cause DebuggerOn, but even with breakpoints disabled this was not cached because of TDZ speculation:

    (lldb) f
    frame #0: 0x0000000104e35678 JavaScriptCore`JSC::UnlinkedEvalCodeBlock* JSC::CodeCache::getGlobalCodeBlock ... at CodeCache.cpp:91
       88  	    // FIXME: We should do something smart for TDZ instead of just disabling caching.
       89  	    // https://bugs.webkit.org/show_bug.cgi?id=154010
       90  	    bool canCache = debuggerMode == DebuggerOff &amp;&amp; profilerMode == ProfilerOff &amp;&amp; !vm.typeProfiler() &amp;&amp; !vm.controlFlowProfiler() &amp;&amp; !variablesUnderTDZ-&gt;size();
    -&gt; 91  	    if (cache &amp;&amp; canCache) {

    (lldb) p canCache
    (bool) $12 = false

    (lldb) p variablesUnderTDZ-&gt;size()
    (unsigned int) $17 = 1

I&apos;ll investigate this a bit further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186001</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-21 16:23:17 -0700</bug_when>
    <thetext>&gt; I&apos;ll investigate this a bit further.

The TDZ variable here was &quot;this&quot;, heh.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186092</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-21 19:53:39 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; What about cached non-function code, like program code?
&gt; 
&gt; I was unable to get them to reproduce this issue.
&gt; 
&gt; The cases I know about are:
&gt; 
&gt;    - Program or Module
&gt;      - &lt;script&gt; / API typically have a URL which dominates even if a
&gt; sourceURL

We may be seeing this with Programs and &lt;script&gt; in 150009.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186097</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-21 20:31:14 -0700</bug_when>
    <thetext>&gt; We may be seeing this with Programs and &lt;script&gt; in 150009.

Well, somehow I&apos;m seeing this in bug 150009, and adding identical code to CodeCache for Programs makes this work. I have had no luck creating a reduction for it yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186104</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-21 21:06:39 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I have had no luck creating a reduction for it yet.

Nevermind, my reduction was working I was just seeing unexpected results because of special handling in the Web Inspector for &lt;script&gt;s, which will need to be addressed separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186106</commentid>
    <comment_count>9</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-21 21:18:04 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; I&apos;ll investigate this a bit further.
&gt; 
&gt; The TDZ variable here was &quot;this&quot;, heh.

This seems like it could be a legitimate bug though. It seems the eval code cache might always be getting thwarted by `this` even if `this` is not used? I&apos;ll ask Saam tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186109</commentid>
    <comment_count>10</comment_count>
      <attachid>277007</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-21 21:25:41 -0700</bug_when>
    <thetext>Created attachment 277007
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186505</commentid>
    <comment_count>11</comment_count>
      <attachid>277007</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-04-22 16:52:45 -0700</bug_when>
    <thetext>Comment on attachment 277007
[PATCH] Proposed Fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186527</commentid>
    <comment_count>12</comment_count>
      <attachid>277007</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-22 17:40:22 -0700</bug_when>
    <thetext>Comment on attachment 277007
[PATCH] Proposed Fix

Clearing flags on attachment: 277007

Committed r199939: &lt;http://trac.webkit.org/changeset/199939&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186528</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-22 17:40:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276954</attachid>
            <date>2016-04-21 13:54:53 -0700</date>
            <delta_ts>2016-04-21 21:25:41 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>CodeCache.patch</filename>
            <type>text/plain</type>
            <size>10645</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OWE5NmZlLi42Mzg2MzAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDQt
MjEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBTb3VyY2UgZGlyZWN0aXZlcyBsb3N0IHdoZW4gdXNpbmcgRnVuY3Rpb24gY29u
c3RydWN0b3IgcmVwZWF0ZWRseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU2ODYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNTg2MTA2ND4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci9zb3VyY2VVUkwtRnVuY3Rpb24tY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc291cmNlVVJMLUZ1bmN0aW9uLWNv
bnN0cnVjdG9yLmh0bWw6IEFkZGVkLgorCiAyMDE2LTA0LTIwICBKb3NlcGggUGVjb3Jhcm8gIDxw
ZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogY29uc29sZS50YWJs
ZShuYXZpZ2F0b3IpIHRocm93cyBleGNlcHRpb24gYWJvdXQgYHJvd1ByZXZpZXcucHJvcGVydHlQ
cmV2aWV3cy5sZW5ndGhgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc291cmNlVVJMLUZ1bmN0aW9uLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2VVUkwtRnVuY3Rpb24tY29uc3RydWN0b3ItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2MDJiM2YKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlVVJM
LUZ1bmN0aW9uLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3Rz
IGZvciB0aGUgRGVidWdnZXIuc2NyaXB0UGFyc2VkIG1lc3NhZ2VzIHRoZSBmcm9udGVuZCByZWNl
aXZlcyB3aGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyB1c2VkIG9uIHRoZSBwYWdlIHdp
dGggdGhlIHNhbWUgc291cmNlIGFuZCBzb3VyY2VVUkwuCisKKworPT0gUnVubmluZyB0ZXN0IHN1
aXRlOiBEZWJ1Z2dlci5zY3JpcHRQYXJzZWQuc291cmNlVVJMRnJvbUZ1bmN0aW9uQ29uc3RydWN0
b3IKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDaGVja0Zvck11bHRpcGxlU291cmNlVVJMU2NyaXB0
c0FkZGVkCitQQVNTOiBTaG91bGQgc2VlIDMgU2NyaXB0cyB3aXRoIHNvdXJjZVVSTCB0ZXN0Lmpz
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2VVUkwt
RnVuY3Rpb24tY29uc3RydWN0b3IuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9zb3VyY2VVUkwtRnVuY3Rpb24tY29uc3RydWN0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5lM2I0YjM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZVVSTC1GdW5jdGlvbi1jb25zdHJ1Y3Rvci5odG1sCkBA
IC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRyaWdnZXJGdW5jdGlvbkNvbnN0cnVj
dG9yTXVsdGlwbGVUaW1lcygpIHsKKyAgICBsZXQgc3VtID0gMDsKKyAgICBzdW0gKz0gRnVuY3Rp
b24oIlxuLy8jIHNvdXJjZVVSTD10ZXN0LmpzXG5yZXR1cm4gMSsxIikoKTsKKyAgICBzdW0gKz0g
RnVuY3Rpb24oIlxuLy8jIHNvdXJjZVVSTD10ZXN0LmpzXG5yZXR1cm4gMSsxIikoKTsKKyAgICBz
dW0gKz0gRnVuY3Rpb24oIlxuLy8jIHNvdXJjZVVSTD10ZXN0LmpzXG5yZXR1cm4gMSsxIikoKTsK
KyAgICByZXR1cm4gc3VtOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUg
PSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZC5z
b3VyY2VVUkxGcm9tRnVuY3Rpb25Db25zdHJ1Y3RvciIpOworCisgICAgc3VpdGUuYWRkVGVzdENh
c2UoeworICAgICAgICBuYW1lOiAiQ2hlY2tGb3JNdWx0aXBsZVNvdXJjZVVSTFNjcmlwdHNBZGRl
ZCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVHJpZ2dlciBtdWx0aXBsZSBGdW5jdGlvbiBjb25z
dHJ1Y3RvciBjYWxscyB3aXRoIHRoZSBzYW1lIHNvdXJjZSBhbmQgZXhwZWN0IG11bHRpcGxlIFNj
cmlwdHMgYWRkZWQgd2l0aCBzb3VyY2VVUkxzIiwKKyAgICAgICAgdGVzdDogKHJlc29sdmUsIHJl
amVjdCkgPT4geworICAgICAgICAgICAgbGV0IHNlZW4gPSAwOworICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAg
ICAgIGlmIChldmVudC5kYXRhLnNjcmlwdC5zb3VyY2VVUkwgPT09ICJ0ZXN0LmpzIikKKyAgICAg
ICAgICAgICAgICAgICAgc2VlbisrOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInRyaWdnZXJGdW5jdGlvbkNvbnN0cnVjdG9yTXVs
dGlwbGVUaW1lcygpIiwgKCkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdChzZWVuID09PSAzLCAiU2hvdWxkIHNlZSAzIFNjcmlwdHMgd2l0aCBzb3VyY2VVUkwg
dGVzdC5qcyIpOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVz
dHMgZm9yIHRoZSBEZWJ1Z2dlci5zY3JpcHRQYXJzZWQgbWVzc2FnZXMgdGhlIGZyb250ZW5kIHJl
Y2VpdmVzIHdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIHVzZWQgb24gdGhlIHBhZ2Ug
d2l0aCB0aGUgc2FtZSBzb3VyY2UgYW5kIHNvdXJjZVVSTC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3YmU3ODQ0Li5mZjFiNmZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNi0wNC0yMSAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNvdXJj
ZSBkaXJlY3RpdmVzIGxvc3Qgd2hlbiB1c2luZyBGdW5jdGlvbiBjb25zdHJ1Y3RvciByZXBlYXRl
ZGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY4
NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI1ODYxMDY0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvdXJjZSBkaXJlY3RpdmVzIChzb3VyY2VV
UkwgYW5kIHNvdXJjZU1hcHBpbmdVUkwpIGFyZSBub3JtYWxseSBhY2Nlc3NlZCB0aHJvdWdoCisg
ICAgICAgIHRoZSBTb3VyY2VQcm92aWRlciBhbmQgbm9ybWFsbHkgc2V0IHdoZW4gdGhlIHNjcmlw
dCBpcyBwYXJzZWQuIEhvd2V2ZXIsIHdoZW4KKyAgICAgICAgRnVuY3Rpb25Db25zdHJ1Y3RvciBt
YWtlcyB1c2Ugb2YgdGhlIENvZGVDYWNoZSwgcGFyc2luZyBpcyBza2lwcGVkIGFuZCB0aGUgbmV3
CisgICAgICAgIFNvdXJjZVByb3ZpZGVyIG5ldmVyIGdldHMgdGhlIHNvdXJjZVVSTC9zb3VyY2VN
YXBwaW5nVVJMLiBUaGlzIHBhdGNoIHN0b3JlcyB0aGUKKyAgICAgICAgZGlyZWN0aXZlcyBvbiB0
aGUgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUgd2hlbiBlbnRlcmluZyB0aGUgY2FjaGUsIGFu
ZCBzdG9yZXMKKyAgICAgICAgdGhlbSBvbiB0aGUgbmV3IHByb3ZpZGVycyB3aGVuIHRoZSBjYWNo
ZSBpcyB1c2VkLgorCisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUuaDoKKyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKiBydW50
aW1lL0NvZGVDYWNoZS5oOgorICAgICAgICAqIHJ1bnRpbWUvQ29kZUNhY2hlLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q29kZUNhY2hlOjpnZXRGdW5jdGlvbkV4ZWN1dGFibGVGcm9tR2xvYmFsQ29kZSk6
CisgICAgICAgIFN0b3JlIGRpcmVjdGl2ZXMgb24gdGhlIHVubGlua2VkIGV4ZWN1dGFibGUgd2hl
biBhZGRpbmcgdG8gdGhlIGNhY2hlLCBzbworICAgICAgICB0aGV5IGNhbiBiZSB1c2VkIHRvIHVw
ZGF0ZSBuZXcgcHJvdmlkZXJzIHdoZW4gdGhlIGNhY2hlIGdldHMgdXNlZC4KKworICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICBBZGQgbmVlZGVkIGhlYWRlciBh
ZnRlciBDb2RlQ2FjaGUgaGVhZGVyIGNsZWFudXAuCisKIDIwMTYtMDQtMjAgIE1pY2hhZWwgU2Fi
b2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTkwMjg5KTog
U3BpbiB0cnlpbmcgdG8gdmlldy9zaWduIGluIHRvIGhib2dvLmNvbQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUuaAppbmRleCA2OTdmMTJjLi5iMzU5MTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaApAQCAt
MTM2LDcgKzEzNiwxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Fycm93RnVuY3Rpb24oKSBjb25z
dCB7IHJldHVybiBwYXJzZU1vZGUoKSA9PSBTb3VyY2VQYXJzZU1vZGU6OkFycm93RnVuY3Rpb25N
b2RlOyB9CiAKICAgICBKU0M6OkRlcml2ZWRDb250ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUo
KSBjb25zdCB7cmV0dXJuIHN0YXRpY19jYXN0PEpTQzo6RGVyaXZlZENvbnRleHRUeXBlPihtX2Rl
cml2ZWRDb250ZXh0VHlwZSk7IH0KLSAgICAKKworICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
RGlyZWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkxEaXJlY3RpdmU7IH0KKyAgICBj
b25zdCBTdHJpbmcmIHNvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmUoKSBjb25zdCB7IHJldHVybiBt
X3NvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmU7IH0KKyAgICB2b2lkIHNldFNvdXJjZVVSTERpcmVj
dGl2ZShjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgeyBtX3NvdXJjZVVSTERpcmVjdGl2ZSA9IHNv
dXJjZVVSTDsgfQorICAgIHZvaWQgc2V0U291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZShjb25zdCBT
dHJpbmcmIHNvdXJjZU1hcHBpbmdVUkwpIHsgbV9zb3VyY2VNYXBwaW5nVVJMRGlyZWN0aXZlID0g
c291cmNlTWFwcGluZ1VSTDsgfQorCiBwcml2YXRlOgogICAgIFVubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlKFZNKiwgU3RydWN0dXJlKiwgY29uc3QgU291cmNlQ29kZSYsIFJlZlB0cjxTb3VyY2VQ
cm92aWRlcj4mJiBzb3VyY2VPdmVycmlkZSwgRnVuY3Rpb25NZXRhZGF0YU5vZGUqLCBVbmxpbmtl
ZEZ1bmN0aW9uS2luZCwgQ29uc3RydWN0QWJpbGl0eSwgVmFyaWFibGVFbnZpcm9ubWVudCYsICBK
U0M6OkRlcml2ZWRDb250ZXh0VHlwZSk7CiAKQEAgLTE3MSw2ICsxNzYsOSBAQCBwcml2YXRlOgog
ICAgIFJlZlB0cjxTb3VyY2VQcm92aWRlcj4gbV9zb3VyY2VPdmVycmlkZTsKICAgICBTb3VyY2VD
b2RlIG1fY2xhc3NTb3VyY2U7CiAKKyAgICBTdHJpbmcgbV9zb3VyY2VVUkxEaXJlY3RpdmU7Cisg
ICAgU3RyaW5nIG1fc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZTsKKwogICAgIFZhcmlhYmxlRW52
aXJvbm1lbnQgbV9wYXJlbnRTY29wZVREWlZhcmlhYmxlczsKIAogcHJvdGVjdGVkOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCmluZGV4IDU2M2Q5ZDgu
LjBjNTNlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNl
UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3Zp
ZGVyLmgKQEAgLTY1LDEyICs2NSwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBp
c1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV92YWxpZGF0ZWQ7IH0KICAgICAgICAgdm9pZCBzZXRW
YWxpZCgpIHsgbV92YWxpZGF0ZWQgPSB0cnVlOyB9CiAKLSAgICBwcml2YXRlOgotICAgICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gZnJpZW5kIGNsYXNzIFBhcnNlcjsKLQogICAgICAgICB2b2lk
IHNldFNvdXJjZVVSTERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgeyBtX3NvdXJj
ZVVSTERpcmVjdGl2ZSA9IHNvdXJjZVVSTDsgfQogICAgICAgICB2b2lkIHNldFNvdXJjZU1hcHBp
bmdVUkxEaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBzb3VyY2VNYXBwaW5nVVJMKSB7IG1fc291cmNl
TWFwcGluZ1VSTERpcmVjdGl2ZSA9IHNvdXJjZU1hcHBpbmdVUkw7IH0KIAorICAgIHByaXZhdGU6
CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZ2V0SUQoKTsKIAogICAgICAgICBTdHJp
bmcgbV91cmw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2Rl
Q2FjaGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcApp
bmRleCA2NzRhNTE4Li5kYWU0YzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db2RlQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvZGVDYWNoZS5jcHAKQEAgLTI0LDEyICsyNCw5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgotCiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCiAKICNpbmNsdWRlICJCeXRlY29kZUdlbmVy
YXRvci5oIgotI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKLSNpbmNsdWRlICJF
eGVjdXRhYmxlSW5mby5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJQYXJz
ZXIuaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCkBAIC0xNTYsOCArMTUzLDEyIEBAIFVu
bGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBDb2RlQ2FjaGU6OmdldEZ1bmN0aW9uRXhlY3V0YWJs
ZUZyb21HbG9iYWxDb2RlKFZNJiB2CiAgICAgICAgIEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1
aWx0aW4sIAogICAgICAgICBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdCk7CiAgICAgU291
cmNlQ29kZVZhbHVlKiBjYWNoZSA9IG1fc291cmNlQ29kZS5maW5kQ2FjaGVBbmRVcGRhdGVBZ2Uo
a2V5KTsKLSAgICBpZiAoY2FjaGUpCi0gICAgICAgIHJldHVybiBqc0Nhc3Q8VW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGUqPihjYWNoZS0+Y2VsbC5nZXQoKSk7CisgICAgaWYgKGNhY2hlKSB7Cisg
ICAgICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0ganNDYXN0PFVu
bGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKj4oY2FjaGUtPmNlbGwuZ2V0KCkpOworICAgICAgICBz
b3VyY2UucHJvdmlkZXIoKS0+c2V0U291cmNlVVJMRGlyZWN0aXZlKGV4ZWN1dGFibGUtPnNvdXJj
ZVVSTERpcmVjdGl2ZSgpKTsKKyAgICAgICAgc291cmNlLnByb3ZpZGVyKCktPnNldFNvdXJjZU1h
cHBpbmdVUkxEaXJlY3RpdmUoZXhlY3V0YWJsZS0+c291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZSgp
KTsKKyAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CisgICAgfQogCiAgICAgSlNUZXh0UG9zaXRp
b24gcG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvZ3Jh
bU5vZGU+IHByb2dyYW0gPSBwYXJzZTxQcm9ncmFtTm9kZT4oCkBAIC0xOTMsNiArMTk0LDkgQEAg
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIENvZGVDYWNoZTo6Z2V0RnVuY3Rpb25FeGVjdXRh
YmxlRnJvbUdsb2JhbENvZGUoVk0mIHYKICAgICBWYXJpYWJsZUVudmlyb25tZW50IGVtcHR5VERa
VmFyaWFibGVzOwogICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1
dGFibGUgPSBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6Y3JlYXRlKCZ2bSwgc291cmNlLCBt
ZXRhZGF0YSwgVW5saW5rZWROb3JtYWxGdW5jdGlvbiwgQ29uc3RydWN0QWJpbGl0eTo6Q2FuQ29u
c3RydWN0LCBlbXB0eVREWlZhcmlhYmxlcywgRGVyaXZlZENvbnRleHRUeXBlOjpOb25lKTsKIAor
ICAgIGZ1bmN0aW9uRXhlY3V0YWJsZS0+c2V0U291cmNlVVJMRGlyZWN0aXZlKHNvdXJjZS5wcm92
aWRlcigpLT5zb3VyY2VVUkwoKSk7CisgICAgZnVuY3Rpb25FeGVjdXRhYmxlLT5zZXRTb3VyY2VN
YXBwaW5nVVJMRGlyZWN0aXZlKHNvdXJjZS5wcm92aWRlcigpLT5zb3VyY2VNYXBwaW5nVVJMKCkp
OworCiAgICAgbV9zb3VyY2VDb2RlLmFkZENhY2hlKGtleSwgU291cmNlQ29kZVZhbHVlKHZtLCBm
dW5jdGlvbkV4ZWN1dGFibGUsIG1fc291cmNlQ29kZS5hZ2UoKSkpOwogICAgIHJldHVybiBmdW5j
dGlvbkV4ZWN1dGFibGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db2RlQ2FjaGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNo
ZS5oCmluZGV4IDQ3MDMwNzIuLjdmNmM3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvZGVDYWNoZS5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaWZuZGVmIENvZGVDYWNoZV9oCiAj
ZGVmaW5lIENvZGVDYWNoZV9oCiAKLSNpbmNsdWRlICJDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmgi
CiAjaW5jbHVkZSAiRXhlY3V0YWJsZUluZm8uaCIKICNpbmNsdWRlICJQYXJzZXJNb2Rlcy5oIgog
I2luY2x1ZGUgIlNvdXJjZUNvZGUuaCIKQEAgLTM0LDI4ICszMywyMiBAQAogI2luY2x1ZGUgIlN0
cm9uZy5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1JhbmRvbU51bWJlci5oPgotI2luY2x1ZGUgPHd0Zi9XZWFr
UmFuZG9tLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBK
U0MgewogCiBjbGFzcyBFdmFsRXhlY3V0YWJsZTsKLWNsYXNzIEZ1bmN0aW9uTWV0YWRhdGFOb2Rl
OwogY2xhc3MgSWRlbnRpZmllcjsKLWNsYXNzIEpTU2NvcGU7CitjbGFzcyBNb2R1bGVQcm9ncmFt
RXhlY3V0YWJsZTsKIGNsYXNzIFBhcnNlckVycm9yOwogY2xhc3MgUHJvZ3JhbUV4ZWN1dGFibGU7
Ci1jbGFzcyBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZTsKK2NsYXNzIFNvdXJjZUNvZGU7CiBjbGFz
cyBVbmxpbmtlZENvZGVCbG9jazsKIGNsYXNzIFVubGlua2VkRXZhbENvZGVCbG9jazsKLWNsYXNz
IFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jazsKLWNsYXNzIFVubGlua2VkRnVuY3Rpb25D
b2RlQmxvY2s7CiBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNzIFVubGlu
a2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jazsKIGNsYXNzIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9j
azsKIGNsYXNzIFZNOwotY2xhc3MgU291cmNlQ29kZTsKLWNsYXNzIFNvdXJjZVByb3ZpZGVyOwog
Y2xhc3MgVmFyaWFibGVFbnZpcm9ubWVudDsKIAogc3RydWN0IFNvdXJjZUNvZGVWYWx1ZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5k
ZXggZmE0OWE5OS4uMGI2ODlhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMTU0LDYgKzE1NCw3IEBACiAjaW5jbHVkZSAiV2Vh
a01hcFByb3RvdHlwZS5oIgogI2luY2x1ZGUgIldlYWtTZXRDb25zdHJ1Y3Rvci5oIgogI2luY2x1
ZGUgIldlYWtTZXRQcm90b3R5cGUuaCIKKyNpbmNsdWRlIDx3dGYvUmFuZG9tTnVtYmVyLmg+CiAK
ICNpZiBFTkFCTEUoSU5UTCkKICNpbmNsdWRlICJJbnRsT2JqZWN0LmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277007</attachid>
            <date>2016-04-21 21:25:41 -0700</date>
            <delta_ts>2016-04-22 17:40:22 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>directives-2.patch</filename>
            <type>text/plain</type>
            <size>15907</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MmE0MTRkLi4wNjEzZTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDQt
MjEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBTb3VyY2UgZGlyZWN0aXZlcyBsb3N0IHdoZW4gdXNpbmcgRnVuY3Rpb24gY29u
c3RydWN0b3IgcmVwZWF0ZWRseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU2ODYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNTg2MTA2ND4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci9zb3VyY2VVUkwtcmVwZWF0ZWQtaWRlbnRpY2FsLWV4ZWN1dGlvbnMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc291cmNlVVJMLXJl
cGVhdGVkLWlkZW50aWNhbC1leGVjdXRpb25zLmh0bWw6IEFkZGVkLgorCiAyMDE2LTA0LTIxICBE
ZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBCYWNrZHJvcCBGaWx0ZXIg
c2hvdWxkIG5vdCBiZSB2aXNpYmxlIGlmIGVsZW1lbnQgaGFzIHZpc2liaWxpdHk6aGlkZGVuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlVVJMLXJlcGVh
dGVkLWlkZW50aWNhbC1leGVjdXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zb3VyY2VVUkwtcmVwZWF0ZWQtaWRlbnRpY2FsLWV4ZWN1dGlvbnMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkNWU5ZDkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlVVJM
LXJlcGVhdGVkLWlkZW50aWNhbC1leGVjdXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEz
IEBACitUZXN0cyBmb3IgdGhlIERlYnVnZ2VyLnNjcmlwdFBhcnNlZCBtZXNzYWdlcyBmb3IgaWRl
bnRpY2FsIGNvbnRlbnQgc2hvdWxkIGhhdmUgc291cmNlIGRpcmVjdGl2ZXMgZWFjaCB0aW1lLgor
CisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogRGVidWdnZXIuc2NyaXB0UGFyc2VkLnNvdXJjZVVS
TFJlcGVhdGVkSWRlbnRpY2FsRXhlY3V0aW9ucworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENoZWNr
RnVuY3Rpb25Db25zdHJ1Y3Rvck11bHRpcGxlVGltZXMKK1BBU1M6IFNob3VsZCBzZWUgMyBTY3Jp
cHRzIHdpdGggc291cmNlVVJMCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDaGVja1Byb2dyYW1N
dWx0aXBsZVRpbWVzCitQQVNTOiBTaG91bGQgc2VlIDMgU2NyaXB0cyB3aXRoIHNvdXJjZVVSTAor
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2hlY2tFdmFsTXVsdGlwbGVUaW1lcworUEFTUzogU2hv
dWxkIHNlZSAzIFNjcmlwdHMgd2l0aCBzb3VyY2VVUkwKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZVVSTC1yZXBlYXRlZC1pZGVudGljYWwtZXhlY3V0
aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZVVSTC1yZXBl
YXRlZC1pZGVudGljYWwtZXhlY3V0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmMyNDNkMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc291cmNlVVJMLXJlcGVhdGVkLWlkZW50aWNhbC1leGVjdXRpb25zLmh0bWwK
QEAgLTAsMCArMSw5MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdHJpZ2dlckZ1bmN0aW9uQ29uc3Ry
dWN0b3JNdWx0aXBsZVRpbWVzKCkgeworICAgIGxldCBzdW0gPSAwOworICAgIHN1bSArPSBGdW5j
dGlvbigiXG4vLyMgc291cmNlVVJMPXRlc3QtRnVuY3Rpb24tY29uc3RydWN0b3IuanNcbnJldHVy
biAxKzEiKSgpOworICAgIHN1bSArPSBGdW5jdGlvbigiXG4vLyMgc291cmNlVVJMPXRlc3QtRnVu
Y3Rpb24tY29uc3RydWN0b3IuanNcbnJldHVybiAxKzEiKSgpOworICAgIHN1bSArPSBGdW5jdGlv
bigiXG4vLyMgc291cmNlVVJMPXRlc3QtRnVuY3Rpb24tY29uc3RydWN0b3IuanNcbnJldHVybiAx
KzEiKSgpOworICAgIHJldHVybiBzdW07Cit9CisKK2Z1bmN0aW9uIHRyaWdnZXJQcm9ncmFtTXVs
dGlwbGVUaW1lcygpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDM7ICsraSkgeworICAgICAg
ICBsZXQgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CisgICAgICAg
IHNjcmlwdC50ZXh0ID0gIlxuLy8jIHNvdXJjZVVSTD10ZXN0LXByb2dyYW0uanNcbjErMSI7Cisg
ICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIHRyaWdnZXJFdmFsTXVsdGlwbGVUaW1lcygpIHsKKyAgICBsZXQgc3VtID0gMDsKKyAg
ICBzdW0gKz0gZXZhbCgiXG4vLyMgc291cmNlVVJMPXRlc3QtZXZhbC5qc1xuMSsxIik7CisgICAg
c3VtICs9IGV2YWwoIlxuLy8jIHNvdXJjZVVSTD10ZXN0LWV2YWwuanNcbjErMSIpOworICAgIHN1
bSArPSBldmFsKCJcbi8vIyBzb3VyY2VVUkw9dGVzdC1ldmFsLmpzXG4xKzEiKTsKKyAgICByZXR1
cm4gc3VtOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0
b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZC5zb3VyY2VVUkxS
ZXBlYXRlZElkZW50aWNhbEV4ZWN1dGlvbnMiKTsKKworICAgIC8vIERpc2FibGUgYnJlYWtwb2lu
dHMgdG8gZW5zdXJlIHdlIGRvIG5vdCBhdm9pZCB0aGUgQ29kZUNhY2hlLgorICAgIERlYnVnZ2Vy
QWdlbnQuc2V0QnJlYWtwb2ludHNBY3RpdmUoZmFsc2UpOworCisgICAgc3VpdGUuYWRkVGVzdENh
c2UoeworICAgICAgICBuYW1lOiAiQ2hlY2tGdW5jdGlvbkNvbnN0cnVjdG9yTXVsdGlwbGVUaW1l
cyIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVHJpZ2dlciBtdWx0aXBsZSBGdW5jdGlvbiBjb25z
dHJ1Y3RvciBjYWxscyB3aXRoIHRoZSBzYW1lIHNvdXJjZSBhbmQgZXhwZWN0IG11bHRpcGxlIFNj
cmlwdHMgYWRkZWQgd2l0aCBzb3VyY2VVUkxzLiIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCBy
ZWplY3QpID0+IHsKKyAgICAgICAgICAgIGxldCBzZWVuID0gMDsKKyAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVi
dWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAg
ICAgICBpZiAoZXZlbnQuZGF0YS5zY3JpcHQuc291cmNlVVJMID09PSAidGVzdC1GdW5jdGlvbi1j
b25zdHJ1Y3Rvci5qcyIpCisgICAgICAgICAgICAgICAgICAgIHNlZW4rKzsKKyAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgidHJpZ2dlckZ1
bmN0aW9uQ29uc3RydWN0b3JNdWx0aXBsZVRpbWVzKCkiLCAoKSA9PiB7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHNlZW4gPT09IDMsICJTaG91bGQgc2VlIDMgU2Ny
aXB0cyB3aXRoIHNvdXJjZVVSTCIpOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
CisgICAgICAgIG5hbWU6ICJDaGVja1Byb2dyYW1NdWx0aXBsZVRpbWVzIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJUcmlnZ2VyIG11bHRpcGxlIHByb2dyYW0gZXhlY3V0aW9ucyB3aXRoIHRoZSBz
YW1lIHNvdXJjZSBhbmQgZXhwZWN0IG11bHRpcGxlIFNjcmlwdHMgYWRkZWQgd2l0aCBzb3VyY2VV
UkxzLiIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAg
IGxldCBzZWVuID0gMDsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlw
dEFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5zY3Jp
cHQuc291cmNlVVJMID09PSAidGVzdC1wcm9ncmFtLmpzIikKKyAgICAgICAgICAgICAgICAgICAg
c2VlbisrOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKCJ0cmlnZ2VyUHJvZ3JhbU11bHRpcGxlVGltZXMoKSIsICgpID0+IHsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoc2VlbiA9PT0gMywgIlNob3VsZCBz
ZWUgMyBTY3JpcHRzIHdpdGggc291cmNlVVJMIik7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRl
c3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNoZWNrRXZhbE11bHRpcGxlVGltZXMiLAorICAgICAg
ICBkZXNjcmlwdGlvbjogIlRyaWdnZXIgZXZhbCB3aXRoIHRoZSBzYW1lIHNvdXJjZSBhbmQgZXhw
ZWN0IG11bHRpcGxlIFNjcmlwdHMgYWRkZWQgd2l0aCBzb3VyY2VVUkxzLiIsCisgICAgICAgIHRl
c3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIGxldCBzZWVuID0gMDsKKyAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCAoZXZlbnQpID0+
IHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5zY3JpcHQuc291cmNlVVJMID09PSAi
dGVzdC1ldmFsLmpzIikKKyAgICAgICAgICAgICAgICAgICAgc2VlbisrOworICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJ0cmlnZ2VyRXZh
bE11bHRpcGxlVGltZXMoKSIsICgpID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoc2VlbiA9PT0gMywgIlNob3VsZCBzZWUgMyBTY3JpcHRzIHdpdGggc291cmNl
VVJMIik7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyBm
b3IgdGhlIERlYnVnZ2VyLnNjcmlwdFBhcnNlZCBtZXNzYWdlcyBmb3IgaWRlbnRpY2FsIGNvbnRl
bnQgc2hvdWxkIGhhdmUgc291cmNlIGRpcmVjdGl2ZXMgZWFjaCB0aW1lLjwvcD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDMzMWI2N2YuLjdlYTVhNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTA0LTIxICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogU291cmNlIGRpcmVjdGl2ZXMgbG9zdCB3aGVuIHVzaW5nIEZ1bmN0aW9uIGNvbnN0cnVjdG9y
IHJlcGVhdGVkbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1Njg2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjU4NjEwNjQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU291cmNlIGRpcmVjdGl2ZXMg
KHNvdXJjZVVSTCBhbmQgc291cmNlTWFwcGluZ1VSTCkgYXJlIG5vcm1hbGx5IGFjY2Vzc2VkIHRo
cm91Z2gKKyAgICAgICAgdGhlIFNvdXJjZVByb3ZpZGVyIGFuZCBub3JtYWxseSBzZXQgd2hlbiB0
aGUgc2NyaXB0IGlzIHBhcnNlZC4gSG93ZXZlciwgd2hlbiBhCisgICAgICAgIENvZGVDYWNoZSBs
b29rdXAgc2tpcHMgcGFyc2luZywgdGhlIG5ldyBTb3VyY2VQcm92aWRlciBuZXZlciBnZXRzIHRo
ZSBkaXJlY3RpdmVzCisgICAgICAgIChzb3VyY2VVUkwvc291cmNlTWFwcGluZ1VSTCkuIFRoaXMg
cGF0Y2ggc3RvcmVzIHRoZSBkaXJlY3RpdmVzIG9uIHRoZSBVbmxpbmtlZENvZGVCbG9jaworICAg
ICAgICBhbmQgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUgd2hlbiBlbnRlcmluZyB0aGUgY2Fj
aGUsIGFuZCBjb3BpZXMgdG8gdGhlIG5ldyBwcm92aWRlcnMKKyAgICAgICAgd2hlbiB0aGUgY2Fj
aGUgaXMgdXNlZC4KKworICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmg6Cisg
ICAgICAgIChKU0M6OlVubGlua2VkQ29kZUJsb2NrOjpzb3VyY2VVUkxEaXJlY3RpdmUpOgorICAg
ICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6c291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZSk6
CisgICAgICAgIChKU0M6OlVubGlua2VkQ29kZUJsb2NrOjpzZXRTb3VyY2VVUkxEaXJlY3RpdmUp
OgorICAgICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6c2V0U291cmNlTWFwcGluZ1VSTERp
cmVjdGl2ZSk6CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUu
aDoKKyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKiBydW50aW1l
L0NvZGVDYWNoZS5jcHA6CisgICAgICAgIChKU0M6OkNvZGVDYWNoZTo6Z2V0R2xvYmFsQ29kZUJs
b2NrKToKKyAgICAgICAgKEpTQzo6Q29kZUNhY2hlOjpnZXRGdW5jdGlvbkV4ZWN1dGFibGVGcm9t
R2xvYmFsQ29kZSk6CisgICAgICAgICogcnVudGltZS9Db2RlQ2FjaGUuaDoKKyAgICAgICAgU3Rv
cmUgZGlyZWN0aXZlcyBvbiB0aGUgdW5saW5rZWQgY29kZSBibG9jayAvIGV4ZWN1dGFibGUgd2hl
biBhZGRpbmcKKyAgICAgICAgdG8gdGhlIGNhY2hlLCBzbyB0aGV5IGNhbiBiZSB1c2VkIHRvIHVw
ZGF0ZSBuZXcgcHJvdmlkZXJzIHdoZW4gdGhlCisgICAgICAgIGNhY2hlIGdldHMgdXNlZC4KKwor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICBBZGQgbmVlZGVk
IGhlYWRlciBhZnRlciBDb2RlQ2FjaGUgaGVhZGVyIGNsZWFudXAuCisKIDIwMTYtMDQtMjEgIEtl
aXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgRlRMIHNob3Vs
ZCBoYW5kbGUgZXhjZXB0aW9ucyBpbiBvcGVyYXRpb25Jbk9wdGltaXplCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCmluZGV4IGM2OTg3
MmEuLmQyNjViYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9V
bmxpbmtlZENvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9V
bmxpbmtlZENvZGVCbG9jay5oCkBAIC0zMzksNiArMzM5LDExIEBAIHB1YmxpYzoKICAgICAgICAg
bV9lbmRDb2x1bW4gPSBlbmRDb2x1bW47CiAgICAgfQogCisgICAgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkxEaXJlY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTERpcmVjdGl2ZTsgfQor
ICAgIGNvbnN0IFN0cmluZyYgc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZTsgfQorICAgIHZvaWQgc2V0U291cmNlVVJM
RGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSB7IG1fc291cmNlVVJMRGlyZWN0aXZl
ID0gc291cmNlVVJMOyB9CisgICAgdm9pZCBzZXRTb3VyY2VNYXBwaW5nVVJMRGlyZWN0aXZlKGNv
bnN0IFN0cmluZyYgc291cmNlTWFwcGluZ1VSTCkgeyBtX3NvdXJjZU1hcHBpbmdVUkxEaXJlY3Rp
dmUgPSBzb3VyY2VNYXBwaW5nVVJMOyB9CisKICAgICBDb2RlRmVhdHVyZXMgY29kZUZlYXR1cmVz
KCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlczsgfQogICAgIGJvb2wgaGFzQ2FwdHVyZWRWYXJp
YWJsZXMoKSBjb25zdCB7IHJldHVybiBtX2hhc0NhcHR1cmVkVmFyaWFibGVzOyB9CiAgICAgdW5z
aWduZWQgZmlyc3RMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9maXJzdExpbmU7IH0KQEAgLTM5MCw2
ICszOTUsOSBAQCBwcml2YXRlOgogICAgIFZpcnR1YWxSZWdpc3RlciBtX3Njb3BlUmVnaXN0ZXI7
CiAgICAgVmlydHVhbFJlZ2lzdGVyIG1fZ2xvYmFsT2JqZWN0UmVnaXN0ZXI7CiAKKyAgICBTdHJp
bmcgbV9zb3VyY2VVUkxEaXJlY3RpdmU7CisgICAgU3RyaW5nIG1fc291cmNlTWFwcGluZ1VSTERp
cmVjdGl2ZTsKKwogICAgIHVuc2lnbmVkIG1fdXNlc0V2YWwgOiAxOwogICAgIHVuc2lnbmVkIG1f
aXNTdHJpY3RNb2RlIDogMTsKICAgICB1bnNpZ25lZCBtX2lzQ29uc3RydWN0b3IgOiAxOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGUuaAppbmRleCA2OTdmMTJjLi5iMzU5MTk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1
dGFibGUuaApAQCAtMTM2LDcgKzEzNiwxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Fycm93RnVu
Y3Rpb24oKSBjb25zdCB7IHJldHVybiBwYXJzZU1vZGUoKSA9PSBTb3VyY2VQYXJzZU1vZGU6OkFy
cm93RnVuY3Rpb25Nb2RlOyB9CiAKICAgICBKU0M6OkRlcml2ZWRDb250ZXh0VHlwZSBkZXJpdmVk
Q29udGV4dFR5cGUoKSBjb25zdCB7cmV0dXJuIHN0YXRpY19jYXN0PEpTQzo6RGVyaXZlZENvbnRl
eHRUeXBlPihtX2Rlcml2ZWRDb250ZXh0VHlwZSk7IH0KLSAgICAKKworICAgIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMRGlyZWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkxEaXJlY3Rp
dmU7IH0KKyAgICBjb25zdCBTdHJpbmcmIHNvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmUoKSBjb25z
dCB7IHJldHVybiBtX3NvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmU7IH0KKyAgICB2b2lkIHNldFNv
dXJjZVVSTERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgeyBtX3NvdXJjZVVSTERp
cmVjdGl2ZSA9IHNvdXJjZVVSTDsgfQorICAgIHZvaWQgc2V0U291cmNlTWFwcGluZ1VSTERpcmVj
dGl2ZShjb25zdCBTdHJpbmcmIHNvdXJjZU1hcHBpbmdVUkwpIHsgbV9zb3VyY2VNYXBwaW5nVVJM
RGlyZWN0aXZlID0gc291cmNlTWFwcGluZ1VSTDsgfQorCiBwcml2YXRlOgogICAgIFVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlKFZNKiwgU3RydWN0dXJlKiwgY29uc3QgU291cmNlQ29kZSYsIFJl
ZlB0cjxTb3VyY2VQcm92aWRlcj4mJiBzb3VyY2VPdmVycmlkZSwgRnVuY3Rpb25NZXRhZGF0YU5v
ZGUqLCBVbmxpbmtlZEZ1bmN0aW9uS2luZCwgQ29uc3RydWN0QWJpbGl0eSwgVmFyaWFibGVFbnZp
cm9ubWVudCYsICBKU0M6OkRlcml2ZWRDb250ZXh0VHlwZSk7CiAKQEAgLTE3MSw2ICsxNzYsOSBA
QCBwcml2YXRlOgogICAgIFJlZlB0cjxTb3VyY2VQcm92aWRlcj4gbV9zb3VyY2VPdmVycmlkZTsK
ICAgICBTb3VyY2VDb2RlIG1fY2xhc3NTb3VyY2U7CiAKKyAgICBTdHJpbmcgbV9zb3VyY2VVUkxE
aXJlY3RpdmU7CisgICAgU3RyaW5nIG1fc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZTsKKwogICAg
IFZhcmlhYmxlRW52aXJvbm1lbnQgbV9wYXJlbnRTY29wZVREWlZhcmlhYmxlczsKIAogcHJvdGVj
dGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92
aWRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCmlu
ZGV4IDU2M2Q5ZDguLjBjNTNlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvU291cmNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1NvdXJjZVByb3ZpZGVyLmgKQEAgLTY1LDEyICs2NSwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV92YWxpZGF0ZWQ7IH0KICAgICAg
ICAgdm9pZCBzZXRWYWxpZCgpIHsgbV92YWxpZGF0ZWQgPSB0cnVlOyB9CiAKLSAgICBwcml2YXRl
OgotICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gZnJpZW5kIGNsYXNzIFBhcnNlcjsKLQog
ICAgICAgICB2b2lkIHNldFNvdXJjZVVSTERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCkgeyBtX3NvdXJjZVVSTERpcmVjdGl2ZSA9IHNvdXJjZVVSTDsgfQogICAgICAgICB2b2lkIHNl
dFNvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBzb3VyY2VNYXBwaW5nVVJM
KSB7IG1fc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZSA9IHNvdXJjZU1hcHBpbmdVUkw7IH0KIAor
ICAgIHByaXZhdGU6CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZ2V0SUQoKTsKIAog
ICAgICAgICBTdHJpbmcgbV91cmw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db2RlQ2FjaGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29k
ZUNhY2hlLmNwcAppbmRleCA2MzdhNGM1Li44YjI1MzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAKQEAgLTI0LDEyICsyNCw5IEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgotCiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCiAKICNpbmNsdWRlICJC
eXRlY29kZUdlbmVyYXRvci5oIgotI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIK
LSNpbmNsdWRlICJFeGVjdXRhYmxlSW5mby5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNp
bmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCkBAIC05OSw2ICs5
Niw4IEBAIFVubGlua2VkQ29kZUJsb2NrVHlwZSogQ29kZUNhY2hlOjpnZXRHbG9iYWxDb2RlQmxv
Y2soVk0mIHZtLCBFeGVjdXRhYmxlVHlwZSogZXhlCiAgICAgICAgIGJvb2wgZW5kQ29sdW1uSXNP
blN0YXJ0TGluZSA9ICFsaW5lQ291bnQ7CiAgICAgICAgIHVuc2lnbmVkIGVuZENvbHVtbiA9IHVu
bGlua2VkQ29kZUJsb2NrLT5lbmRDb2x1bW4oKSArIChlbmRDb2x1bW5Jc09uU3RhcnRMaW5lID8g
c3RhcnRDb2x1bW4gOiAxKTsKICAgICAgICAgZXhlY3V0YWJsZS0+cmVjb3JkUGFyc2UodW5saW5r
ZWRDb2RlQmxvY2stPmNvZGVGZWF0dXJlcygpLCB1bmxpbmtlZENvZGVCbG9jay0+aGFzQ2FwdHVy
ZWRWYXJpYWJsZXMoKSwgZmlyc3RMaW5lLCBmaXJzdExpbmUgKyBsaW5lQ291bnQsIHN0YXJ0Q29s
dW1uLCBlbmRDb2x1bW4pOworICAgICAgICBzb3VyY2UucHJvdmlkZXIoKS0+c2V0U291cmNlVVJM
RGlyZWN0aXZlKHVubGlua2VkQ29kZUJsb2NrLT5zb3VyY2VVUkxEaXJlY3RpdmUoKSk7CisgICAg
ICAgIHNvdXJjZS5wcm92aWRlcigpLT5zZXRTb3VyY2VNYXBwaW5nVVJMRGlyZWN0aXZlKHVubGlu
a2VkQ29kZUJsb2NrLT5zb3VyY2VNYXBwaW5nVVJMRGlyZWN0aXZlKCkpOwogICAgICAgICByZXR1
cm4gdW5saW5rZWRDb2RlQmxvY2s7CiAgICAgfQogICAgIHR5cGVkZWYgdHlwZW5hbWUgQ2FjaGVU
eXBlczxVbmxpbmtlZENvZGVCbG9ja1R5cGU+OjpSb290Tm9kZSBSb290Tm9kZTsKQEAgLTExOCw2
ICsxMTcsOCBAQCBVbmxpbmtlZENvZGVCbG9ja1R5cGUqIENvZGVDYWNoZTo6Z2V0R2xvYmFsQ29k
ZUJsb2NrKFZNJiB2bSwgRXhlY3V0YWJsZVR5cGUqIGV4ZQogCiAgICAgVW5saW5rZWRDb2RlQmxv
Y2tUeXBlKiB1bmxpbmtlZENvZGVCbG9jayA9IFVubGlua2VkQ29kZUJsb2NrVHlwZTo6Y3JlYXRl
KCZ2bSwgZXhlY3V0YWJsZS0+ZXhlY3V0YWJsZUluZm8oKSk7CiAgICAgdW5saW5rZWRDb2RlQmxv
Y2stPnJlY29yZFBhcnNlKHJvb3ROb2RlLT5mZWF0dXJlcygpLCByb290Tm9kZS0+aGFzQ2FwdHVy
ZWRWYXJpYWJsZXMoKSwgcm9vdE5vZGUtPmZpcnN0TGluZSgpIC0gc291cmNlLmZpcnN0TGluZSgp
LCBsaW5lQ291bnQsIHVubGlua2VkRW5kQ29sdW1uKTsKKyAgICB1bmxpbmtlZENvZGVCbG9jay0+
c2V0U291cmNlVVJMRGlyZWN0aXZlKHNvdXJjZS5wcm92aWRlcigpLT5zb3VyY2VVUkwoKSk7Cisg
ICAgdW5saW5rZWRDb2RlQmxvY2stPnNldFNvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmUoc291cmNl
LnByb3ZpZGVyKCktPnNvdXJjZU1hcHBpbmdVUkwoKSk7CiAKICAgICBlcnJvciA9IEJ5dGVjb2Rl
R2VuZXJhdG9yOjpnZW5lcmF0ZSh2bSwgcm9vdE5vZGUuZ2V0KCksIHVubGlua2VkQ29kZUJsb2Nr
LCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSwgdmFyaWFibGVzVW5kZXJURFopOwogCkBAIC0x
NTYsOCArMTU3LDEyIEBAIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBDb2RlQ2FjaGU6Omdl
dEZ1bmN0aW9uRXhlY3V0YWJsZUZyb21HbG9iYWxDb2RlKFZNJiB2CiAgICAgICAgIEpTUGFyc2Vy
QnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4sIAogICAgICAgICBKU1BhcnNlclN0cmljdE1vZGU6Ok5v
dFN0cmljdCk7CiAgICAgU291cmNlQ29kZVZhbHVlKiBjYWNoZSA9IG1fc291cmNlQ29kZS5maW5k
Q2FjaGVBbmRVcGRhdGVBZ2Uoa2V5KTsKLSAgICBpZiAoY2FjaGUpCi0gICAgICAgIHJldHVybiBq
c0Nhc3Q8VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqPihjYWNoZS0+Y2VsbC5nZXQoKSk7Cisg
ICAgaWYgKGNhY2hlKSB7CisgICAgICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVj
dXRhYmxlID0ganNDYXN0PFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKj4oY2FjaGUtPmNlbGwu
Z2V0KCkpOworICAgICAgICBzb3VyY2UucHJvdmlkZXIoKS0+c2V0U291cmNlVVJMRGlyZWN0aXZl
KGV4ZWN1dGFibGUtPnNvdXJjZVVSTERpcmVjdGl2ZSgpKTsKKyAgICAgICAgc291cmNlLnByb3Zp
ZGVyKCktPnNldFNvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmUoZXhlY3V0YWJsZS0+c291cmNlTWFw
cGluZ1VSTERpcmVjdGl2ZSgpKTsKKyAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CisgICAgfQog
CiAgICAgSlNUZXh0UG9zaXRpb24gcG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZTsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UHJvZ3JhbU5vZGU+IHByb2dyYW0gPSBwYXJzZTxQcm9ncmFtTm9kZT4oCkBA
IC0xOTMsNiArMTk4LDkgQEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIENvZGVDYWNoZTo6
Z2V0RnVuY3Rpb25FeGVjdXRhYmxlRnJvbUdsb2JhbENvZGUoVk0mIHYKICAgICBWYXJpYWJsZUVu
dmlyb25tZW50IGVtcHR5VERaVmFyaWFibGVzOwogICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlKiBmdW5jdGlvbkV4ZWN1dGFibGUgPSBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6Y3Jl
YXRlKCZ2bSwgc291cmNlLCBtZXRhZGF0YSwgVW5saW5rZWROb3JtYWxGdW5jdGlvbiwgQ29uc3Ry
dWN0QWJpbGl0eTo6Q2FuQ29uc3RydWN0LCBlbXB0eVREWlZhcmlhYmxlcywgRGVyaXZlZENvbnRl
eHRUeXBlOjpOb25lKTsKIAorICAgIGZ1bmN0aW9uRXhlY3V0YWJsZS0+c2V0U291cmNlVVJMRGly
ZWN0aXZlKHNvdXJjZS5wcm92aWRlcigpLT5zb3VyY2VVUkwoKSk7CisgICAgZnVuY3Rpb25FeGVj
dXRhYmxlLT5zZXRTb3VyY2VNYXBwaW5nVVJMRGlyZWN0aXZlKHNvdXJjZS5wcm92aWRlcigpLT5z
b3VyY2VNYXBwaW5nVVJMKCkpOworCiAgICAgbV9zb3VyY2VDb2RlLmFkZENhY2hlKGtleSwgU291
cmNlQ29kZVZhbHVlKHZtLCBmdW5jdGlvbkV4ZWN1dGFibGUsIG1fc291cmNlQ29kZS5hZ2UoKSkp
OwogICAgIHJldHVybiBmdW5jdGlvbkV4ZWN1dGFibGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvZGVDYWNoZS5oCmluZGV4IDQ3MDMwNzIuLjdmNmM3MzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaWZu
ZGVmIENvZGVDYWNoZV9oCiAjZGVmaW5lIENvZGVDYWNoZV9oCiAKLSNpbmNsdWRlICJDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZUluZm8uaCIKICNpbmNsdWRl
ICJQYXJzZXJNb2Rlcy5oIgogI2luY2x1ZGUgIlNvdXJjZUNvZGUuaCIKQEAgLTM0LDI4ICszMywy
MiBAQAogI2luY2x1ZGUgIlN0cm9uZy5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1JhbmRvbU51bWJlci5oPgot
I2luY2x1ZGUgPHd0Zi9XZWFrUmFuZG9tLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBFdmFsRXhlY3V0YWJsZTsKLWNsYXNzIEZ1
bmN0aW9uTWV0YWRhdGFOb2RlOwogY2xhc3MgSWRlbnRpZmllcjsKLWNsYXNzIEpTU2NvcGU7Citj
bGFzcyBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZTsKIGNsYXNzIFBhcnNlckVycm9yOwogY2xhc3Mg
UHJvZ3JhbUV4ZWN1dGFibGU7Ci1jbGFzcyBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZTsKK2NsYXNz
IFNvdXJjZUNvZGU7CiBjbGFzcyBVbmxpbmtlZENvZGVCbG9jazsKIGNsYXNzIFVubGlua2VkRXZh
bENvZGVCbG9jazsKLWNsYXNzIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jazsKLWNsYXNz
IFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZTsKK2NsYXNzIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jazsKIGNsYXNzIFVubGlu
a2VkUHJvZ3JhbUNvZGVCbG9jazsKIGNsYXNzIFZNOwotY2xhc3MgU291cmNlQ29kZTsKLWNsYXNz
IFNvdXJjZVByb3ZpZGVyOwogY2xhc3MgVmFyaWFibGVFbnZpcm9ubWVudDsKIAogc3RydWN0IFNv
dXJjZUNvZGVWYWx1ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHAKaW5kZXggNTVlZjZlZC4uZGM3MTU2YyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMTU0LDYgKzE1NCw3
IEBACiAjaW5jbHVkZSAiV2Vha01hcFByb3RvdHlwZS5oIgogI2luY2x1ZGUgIldlYWtTZXRDb25z
dHJ1Y3Rvci5oIgogI2luY2x1ZGUgIldlYWtTZXRQcm90b3R5cGUuaCIKKyNpbmNsdWRlIDx3dGYv
UmFuZG9tTnVtYmVyLmg+CiAKICNpZiBFTkFCTEUoSU5UTCkKICNpbmNsdWRlICJJbnRsT2JqZWN0
LmgiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>