<?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>138726</bug_id>
          
          <creation_ts>2014-11-13 20:16:32 -0800</creation_ts>
          <short_desc>Web Inspector: Provide $exception in the console for the thrown exception value</short_desc>
          <delta_ts>2014-12-02 14:25:15 -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>Web Inspector</component>
          <version>528+ (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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>burg</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mark.lam</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1048627</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-13 20:16:32 -0800</bug_when>
    <thetext>* SUMMARY
When pausing on exceptions it can be difficult or impossible to interact with the actual thrown exception object. For example breaking on an uncaught exception, there is no named reference to the thrown value that would otherwise have been available in &quot;catch (e)&quot;. We can provide a named reference in the console, such as &quot;$e&quot;.

* TEST

    &lt;button id=&quot;x&quot;&gt;Click Me&lt;/button&gt;
    &lt;script&gt;
    var times = 0;
    document.getElementById(&apos;x&apos;).addEventListener(&apos;click&apos;, function() {
        times++;
        if (times === 1)
            [].x.x;
        if (times === 2)
            throw &quot;string error&quot;;
        if (times === 3)
            throw null;
        if (times === 4)
            throw document;
    });
    &lt;/script&gt;

* STEPS TO REPRODUCE
1. Inspect test page
2. Enable break on all exceptions
3. Click the button on the page to trigger exceptions
  =&gt; should be able to get the different thrown values (Errors / objects) via &quot;$e&quot; in the console.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048628</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-11-13 20:16:45 -0800</bug_when>
    <thetext>&lt;rdar://problem/18980012&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048629</commentid>
    <comment_count>2</comment_count>
      <attachid>241541</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-13 20:18:01 -0800</bug_when>
    <thetext>Created attachment 241541
[PATCH] WIP - Needs Tests

I only expose &quot;$e&quot; in console autocompletion when we are paused because of an exception. I still think &quot;$exception&quot; might be clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048769</commentid>
    <comment_count>3</comment_count>
      <attachid>241541</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-11-14 09:15:41 -0800</bug_when>
    <thetext>Comment on attachment 241541
[PATCH] WIP - Needs Tests

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

&gt; Source/JavaScriptCore/inspector/InjectedScriptSource.js:1054
&gt; +    this.$e = injectedScript._exceptionValue;

I am fine with $e or $exception. Autocomplete will kick in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049382</commentid>
    <comment_count>4</comment_count>
      <attachid>241758</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-17 20:21:22 -0800</bug_when>
    <thetext>Created attachment 241758
[PATCH] Proposed Fix

Now with tests and proper handling of $exception inside catch blocks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049383</commentid>
    <comment_count>5</comment_count>
      <attachid>241758</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-17 20:23:38 -0800</bug_when>
    <thetext>Comment on attachment 241758
[PATCH] Proposed Fix

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

&gt; LayoutTests/inspector/debugger/command-line-api-exception.html:60
&gt; +    WebInspector.debuggerManager.addEventListener(WebInspector.DebuggerManager.Event.CallFramesDidChange, function(event) {

Note that these tests use Event.CallFramesDidChange and not Event.Paused because DebuggerManager&apos;s Event.Paused/Event.Resumed do not get called if we immediately pause after stepping (50ms). This event will get called on every pause.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049828</commentid>
    <comment_count>6</comment_count>
      <attachid>241758</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-11-19 10:29:23 -0800</bug_when>
    <thetext>Comment on attachment 241758
[PATCH] Proposed Fix

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

&gt; LayoutTests/inspector/debugger/command-line-api-exception-nested-catch-expected.txt:12
&gt; +CONSOLE MESSAGE: line 67: inner exception
&gt; +CONSOLE MESSAGE: line 69: outer exception
&gt; +Checks that $exception is the value of the current exception, even in nested catch blocks.
&gt; +
&gt; +BEFORE : $exception =&gt; undefined
&gt; +OUTER 1: $exception =&gt; outer exception
&gt; +INNER 1: $exception =&gt; inner exception
&gt; +INNER 2: $exception =&gt; inner exception
&gt; +  CATCH: $exception === e2 ? true
&gt; +OUTER 2: $exception =&gt; outer exception
&gt; +  CATCH: $exception === e1 ? true
&gt; +AFTER  : $exception =&gt; undefined

Nice test.

&gt; Source/JavaScriptCore/inspector/InjectedScriptManager.cpp:128
&gt; +    for (auto it = m_idToInjectedScript.begin(); it != m_idToInjectedScript.end(); ++it)
&gt; +        it-&gt;value.clearExceptionValue();

for (auto injectedScript : m_idToInjectedScript.values()) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049954</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-19 15:50:15 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/176357</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241541</attachid>
            <date>2014-11-13 20:18:01 -0800</date>
            <delta_ts>2014-11-17 20:21:22 -0800</delta_ts>
            <desc>[PATCH] WIP - Needs Tests</desc>
            <filename>in-progress.patch</filename>
            <type>text/plain</type>
            <size>10080</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5j
cHAKaW5kZXggNjFkZGMwYy4uOTVmYTc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKQEAgLTIwMiw2ICsyMDIsMjMgQEAgUGFz
c1JlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IEluamVj
dGVkU2NyaXB0Ojp3cmFwVGFibGUKICAgICByZXR1cm4gQmluZGluZ1RyYWl0czxJbnNwZWN0b3I6
OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+OjpydW50aW1lQ2FzdChyZXN1bHRPYmpl
Y3QpOwogfQogCit2b2lkIEluamVjdGVkU2NyaXB0OjpzZXRFeGNlcHRpb25WYWx1ZShjb25zdCBE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFsdWUpCit7CisgICAgQVNTRVJUKCFoYXNOb1ZhbHVl
KCkpOworICAgIERlcHJlY2F0ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihpbmplY3Rl
ZFNjcmlwdE9iamVjdCgpLCBBU0NJSUxpdGVyYWwoInNldEV4Y2VwdGlvblZhbHVlIiksIGluc3Bl
Y3RvckVudmlyb25tZW50KCktPmZ1bmN0aW9uQ2FsbEhhbmRsZXIoKSk7CisgICAgZnVuY3Rpb24u
YXBwZW5kQXJndW1lbnQodmFsdWUpOworICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gcmVzdWx0
OworICAgIG1ha2VDYWxsKGZ1bmN0aW9uLCAmcmVzdWx0KTsKK30KKwordm9pZCBJbmplY3RlZFNj
cmlwdDo6Y2xlYXJFeGNlcHRpb25WYWx1ZSgpCit7CisgICAgQVNTRVJUKCFoYXNOb1ZhbHVlKCkp
OworICAgIERlcHJlY2F0ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihpbmplY3RlZFNj
cmlwdE9iamVjdCgpLCBBU0NJSUxpdGVyYWwoImNsZWFyRXhjZXB0aW9uVmFsdWUiKSwgaW5zcGVj
dG9yRW52aXJvbm1lbnQoKS0+ZnVuY3Rpb25DYWxsSGFuZGxlcigpKTsKKyAgICBSZWZQdHI8SW5z
cGVjdG9yVmFsdWU+IHJlc3VsdDsKKyAgICBtYWtlQ2FsbChmdW5jdGlvbiwgJnJlc3VsdCk7Cit9
CisKIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIEluamVjdGVkU2NyaXB0OjpmaW5kT2JqZWN0QnlJ
ZChjb25zdCBTdHJpbmcmIG9iamVjdElkKSBjb25zdAogewogICAgIEFTU0VSVCghaGFzTm9WYWx1
ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHQuaAppbmRleCA3MWJkNjhiLi40MmM3OTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCkBAIC02Niw2ICs2Niw5IEBAIHB1YmxpYzoK
ICAgICBQYXNzUmVmUHRyPFByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IHdyYXBPYmpl
Y3QoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmLCBjb25zdCBTdHJpbmcmIGdyb3VwTmFt
ZSwgYm9vbCBnZW5lcmF0ZVByZXZpZXcgPSBmYWxzZSkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxQ
cm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiB3cmFwVGFibGUoY29uc3QgRGVwcmVjYXRl
ZDo6U2NyaXB0VmFsdWUmIHRhYmxlLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgY29s
dW1ucykgY29uc3Q7CiAKKyAgICB2b2lkIHNldEV4Y2VwdGlvblZhbHVlKGNvbnN0IERlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlJik7CisgICAgdm9pZCBjbGVhckV4Y2VwdGlvblZhbHVlKCk7CisKICAg
ICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBmaW5kT2JqZWN0QnlJZChjb25zdCBTdHJpbmcmIG9i
amVjdElkKSBjb25zdDsKICAgICB2b2lkIGluc3BlY3RPYmplY3QoRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUpOwogICAgIHZvaWQgcmVsZWFzZU9iamVjdChjb25zdCBTdHJpbmcmIG9iamVjdElkKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLmNwcAppbmRleCA5YTkwMThiLi5mMzBhYWU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIu
Y3BwCkBAIC0xMjIsNiArMTIyLDEyIEBAIHZvaWQgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpyZWxl
YXNlT2JqZWN0R3JvdXAoY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCkKICAgICAgICAgaXQtPnZh
bHVlLnJlbGVhc2VPYmplY3RHcm91cChvYmplY3RHcm91cCk7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyOjpjbGVhckV4Y2VwdGlvblZhbHVlKCkKK3sKKyAgICBmb3IgKGF1dG8gaXQg
PSBtX2lkVG9JbmplY3RlZFNjcmlwdC5iZWdpbigpOyBpdCAhPSBtX2lkVG9JbmplY3RlZFNjcmlw
dC5lbmQoKTsgKytpdCkKKyAgICAgICAgaXQtPnZhbHVlLmNsZWFyRXhjZXB0aW9uVmFsdWUoKTsK
K30KKwogU3RyaW5nIEluamVjdGVkU2NyaXB0TWFuYWdlcjo6aW5qZWN0ZWRTY3JpcHRTb3VyY2Uo
KQogewogICAgIHJldHVybiBTdHJpbmdJbXBsOjpjcmVhdGVXaXRob3V0Q29weWluZyhJbmplY3Rl
ZFNjcmlwdFNvdXJjZV9qcywgc2l6ZW9mKEluamVjdGVkU2NyaXB0U291cmNlX2pzKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFu
YWdlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1h
bmFnZXIuaAppbmRleCAzM2E2MDg0Li5mNmQwNTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgKQEAgLTY2LDYg
KzY2LDcgQEAgcHVibGljOgogICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yT2Jq
ZWN0SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCk7CiAgICAgdm9pZCBkaXNjYXJkSW5qZWN0ZWRT
Y3JpcHRzKCk7CiAgICAgdm9pZCByZWxlYXNlT2JqZWN0R3JvdXAoY29uc3QgU3RyaW5nJiBvYmpl
Y3RHcm91cCk7CisgICAgdm9pZCBjbGVhckV4Y2VwdGlvblZhbHVlKCk7CiAKIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlSW5qZWN0ZWRTY3JpcHQoSW5qZWN0ZWRTY3JpcHQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdFNvdXJjZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHRTb3VyY2UuanMKaW5kZXggZmM5ZWY3YS4uOTlkZDRjYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCkBA
IC04Niw2ICs4NiwxNiBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJl
dHVybiB0aGlzLl9mYWxsYmFja1dyYXBwZXIob2JqZWN0KTsKICAgICB9LAogCisgICAgc2V0RXhj
ZXB0aW9uVmFsdWU6IGZ1bmN0aW9uKHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5fZXhjZXB0
aW9uVmFsdWUgPSB2YWx1ZTsKKyAgICB9LAorCisgICAgY2xlYXJFeGNlcHRpb25WYWx1ZTogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXMuX2V4Y2VwdGlvblZhbHVlOworICAg
IH0sCisKICAgICAvKioKICAgICAgKiBAcGFyYW0geyp9IG9iamVjdAogICAgICAqIEByZXR1cm4g
eyFSdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0fQpAQCAtMTA0MSw2ICsxMDUxLDcgQEAgSW5qZWN0
ZWRTY3JpcHQuQ2FsbEZyYW1lUHJveHkuX2NyZWF0ZVNjb3BlSnNvbiA9IGZ1bmN0aW9uKHNjb3Bl
VHlwZUNvZGUsIHNjb3BlT2IKIGZ1bmN0aW9uIEJhc2ljQ29tbWFuZExpbmVBUEkoKQogewogICAg
IHRoaXMuJF8gPSBpbmplY3RlZFNjcmlwdC5fbGFzdFJlc3VsdDsKKyAgICB0aGlzLiRlID0gaW5q
ZWN0ZWRTY3JpcHQuX2V4Y2VwdGlvblZhbHVlOwogfQogCiByZXR1cm4gaW5qZWN0ZWRTY3JpcHQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IGEwNmE2ZDMuLmQzY2YyZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC02NSw2ICs2NSw3IEBAIElu
c3BlY3RvckRlYnVnZ2VyQWdlbnQ6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQoSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKiBpbmplY3RlZFNjCiAgICAgLCBtX2NvbnRpbnVlVG9Mb2NhdGlvbkJyZWFrcG9p
bnRJRChKU0M6Om5vQnJlYWtwb2ludElEKQogICAgICwgbV9lbmFibGVkKGZhbHNlKQogICAgICwg
bV9qYXZhU2NyaXB0UGF1c2VTY2hlZHVsZWQoZmFsc2UpCisgICAgLCBtX2hhc0V4Y2VwdGlvblZh
bHVlKGZhbHNlKQogICAgICwgbV9uZXh0UHJvYmVTYW1wbGVJZCgxKQogewogICAgIC8vIEZJWE1F
OiBtYWtlIGJyZWFrUmVhc29uIG9wdGlvbmFsIHNvIHRoYXQgdGhlcmUgd2FzIG5vIG5lZWQgdG8g
aW5pdCBpdCB3aXRoICJvdGhlciIuCkBAIC00NjksNiArNDcwLDggQEAgdm9pZCBJbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50OjpyZXN1bWUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+cmVsZWFzZU9iamVjdEdyb3Vw
KEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmJhY2t0cmFjZU9iamVjdEdyb3VwKTsKKyAgICBjbGVh
ckV4Y2VwdGlvblZhbHVlKCk7CisKICAgICBzY3JpcHREZWJ1Z1NlcnZlcigpLmNvbnRpbnVlUHJv
Z3JhbSgpOwogfQogCkBAIC00NzgsNiArNDgxLDggQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpzdGVwT3ZlcihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCiAgICAgICAgIHJldHVybjsK
IAogICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5yZWxlYXNlT2JqZWN0R3JvdXAoSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6YmFja3RyYWNlT2JqZWN0R3JvdXApOworICAgIGNsZWFyRXhjZXB0
aW9uVmFsdWUoKTsKKwogICAgIHNjcmlwdERlYnVnU2VydmVyKCkuc3RlcE92ZXJTdGF0ZW1lbnQo
KTsKIH0KIApAQCAtNDg3LDYgKzQ5Miw4IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6
c3RlcEludG8oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQogICAgICAgICByZXR1cm47CiAKICAg
ICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+cmVsZWFzZU9iamVjdEdyb3VwKEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OmJhY2t0cmFjZU9iamVjdEdyb3VwKTsKKyAgICBjbGVhckV4Y2VwdGlvblZh
bHVlKCk7CisKICAgICBzY3JpcHREZWJ1Z1NlcnZlcigpLnN0ZXBJbnRvU3RhdGVtZW50KCk7CiAK
ICAgICBpZiAobV9saXN0ZW5lcikKQEAgLTQ5OSw2ICs1MDYsOCBAQCB2b2lkIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OnN0ZXBPdXQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+cmVsZWFzZU9iamVjdEdyb3Vw
KEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmJhY2t0cmFjZU9iamVjdEdyb3VwKTsKKyAgICBjbGVh
ckV4Y2VwdGlvblZhbHVlKCk7CisKICAgICBzY3JpcHREZWJ1Z1NlcnZlcigpLnN0ZXBPdXRPZkZ1
bmN0aW9uKCk7CiB9CiAKQEAgLTY0Myw2ICs2NTIsOCBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQ6OmRpZFBhdXNlKEpTQzo6RXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSwgY29uc3QgRGVwcmVj
YQogICAgICAgICAgICAgbV9icmVha1JlYXNvbiA9IEluc3BlY3RvckRlYnVnZ2VyRnJvbnRlbmRE
aXNwYXRjaGVyOjpSZWFzb246OkV4Y2VwdGlvbjsKICAgICAgICAgICAgIG1fYnJlYWtBdXhEYXRh
ID0gaW5qZWN0ZWRTY3JpcHQud3JhcE9iamVjdChleGNlcHRpb24sIEluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQ6OmJhY2t0cmFjZU9iamVjdEdyb3VwKS0+b3BlbkFjY2Vzc29ycygpOwogICAgICAgICAg
ICAgLy8gbV9icmVha0F1eERhdGEgbWlnaHQgYmUgbnVsbCBhZnRlciB0aGlzLgorICAgICAgICAg
ICAgaW5qZWN0ZWRTY3JpcHQuc2V0RXhjZXB0aW9uVmFsdWUoZXhjZXB0aW9uKTsKKyAgICAgICAg
ICAgIG1faGFzRXhjZXB0aW9uVmFsdWUgPSB0cnVlOwogICAgICAgICB9CiAgICAgfQogCkBAIC03
MjQsNiArNzM1LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpjbGVhckRlYnVnZ2Vy
QnJlYWtwb2ludFN0YXRlKCkKICAgICBtX2NvbnRpbnVlVG9Mb2NhdGlvbkJyZWFrcG9pbnRJRCA9
IEpTQzo6bm9CcmVha3BvaW50SUQ7CiAgICAgY2xlYXJCcmVha0RldGFpbHMoKTsKICAgICBtX2ph
dmFTY3JpcHRQYXVzZVNjaGVkdWxlZCA9IGZhbHNlOworICAgIG1faGFzRXhjZXB0aW9uVmFsdWUg
PSBmYWxzZTsKIAogICAgIHNjcmlwdERlYnVnU2VydmVyKCkuY29udGludWVQcm9ncmFtKCk7CiB9
CkBAIC03NTQsNiArNzY2LDE0IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y2xlYXJC
cmVha0RldGFpbHMoKQogICAgIG1fYnJlYWtBdXhEYXRhID0gbnVsbHB0cjsKIH0KIAordm9pZCBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpjbGVhckV4Y2VwdGlvblZhbHVlKCkKK3sKKyAgICBpZiAo
bV9oYXNFeGNlcHRpb25WYWx1ZSkgeworICAgICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+
Y2xlYXJFeGNlcHRpb25WYWx1ZSgpOworICAgICAgICBtX2hhc0V4Y2VwdGlvblZhbHVlID0gZmFs
c2U7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKIAogI2VuZGlmIC8vIEVO
QUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggNzQzYzcy
OS4uNjY4MzcyYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtMTQ2LDYgKzE0
Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhckRlYnVnZ2VyQnJlYWtwb2ludFN0YXRlKCk7
CiAgICAgdm9pZCBjbGVhckluc3BlY3RvckJyZWFrcG9pbnRTdGF0ZSgpOwogICAgIHZvaWQgY2xl
YXJCcmVha0RldGFpbHMoKTsKKyAgICB2b2lkIGNsZWFyRXhjZXB0aW9uVmFsdWUoKTsKIAogICAg
IGJvb2wgYnJlYWtwb2ludEFjdGlvbnNGcm9tUHJvdG9jb2woRXJyb3JTdHJpbmcmLCBSZWZQdHI8
SW5zcGVjdG9yQXJyYXk+JiBhY3Rpb25zLCBCcmVha3BvaW50QWN0aW9ucyogcmVzdWx0KTsKIApA
QCAtMTY3LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
bV9icmVha0F1eERhdGE7CiAgICAgYm9vbCBtX2VuYWJsZWQ7CiAgICAgYm9vbCBtX2phdmFTY3Jp
cHRQYXVzZVNjaGVkdWxlZDsKKyAgICBib29sIG1faGFzRXhjZXB0aW9uVmFsdWU7CiAgICAgUmVm
UHRyPFdURjo6U3RvcHdhdGNoPiBtX3N0b3B3YXRjaDsKICAgICBpbnQgbV9uZXh0UHJvYmVTYW1w
bGVJZDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29tbWFuZExp
bmVBUElNb2R1bGVTb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29tbWFuZExp
bmVBUElNb2R1bGVTb3VyY2UuanMKaW5kZXggNjFlNTgzYy4uZTg0ZWE1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5q
cwpAQCAtMTI0LDYgKzEyNCw3IEBAIGZ1bmN0aW9uIENvbW1hbmRMaW5lQVBJKGNvbW1hbmRMaW5l
QVBJSW1wbCwgY2FsbEZyYW1lKQogICAgIH0KIAogICAgIHRoaXMuJF8gPSBpbmplY3RlZFNjcmlw
dC5fbGFzdFJlc3VsdDsKKyAgICB0aGlzLiRlID0gaW5qZWN0ZWRTY3JpcHQuX2V4Y2VwdGlvblZh
bHVlOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0phdmFTY3JpcHRSdW50aW1lQ29tcGxldGlvblByb3ZpZGVyLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvSmF2YVNj
cmlwdFJ1bnRpbWVDb21wbGV0aW9uUHJvdmlkZXIuanMKaW5kZXggMGMyZDk4Zi4uMzEwNWUzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvSmF2YVNjcmlwdFJ1bnRpbWVDb21wbGV0aW9uUHJvdmlkZXIuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvSmF2YVNjcmlwdFJ1bnRpbWVD
b21wbGV0aW9uUHJvdmlkZXIuanMKQEAgLTE3NCw3ICsxNzQsOSBAQCBXZWJJbnNwZWN0b3IuSmF2
YVNjcmlwdFJ1bnRpbWVDb21wbGV0aW9uUHJvdmlkZXIucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgUnVudGltZUFnZW50LnJlbGVhc2VPYmplY3RHcm91cCgiY29tcGxldGlvbiIpOwogCiAgICAg
ICAgICAgICBpZiAoIWJhc2UpIHsKLSAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kTGluZUFQ
SSA9IFsiJCIsICIkJCIsICIkeCIsICJkaXIiLCAiZGlyeG1sIiwgImtleXMiLCAidmFsdWVzIiwg
InByb2ZpbGUiLCAicHJvZmlsZUVuZCIsICJtb25pdG9yRXZlbnRzIiwgInVubW9uaXRvckV2ZW50
cyIsICJpbnNwZWN0IiwgImNvcHkiLCAiY2xlYXIiLCAiZ2V0RXZlbnRMaXN0ZW5lcnMiLCAiJDAi
LCAiJDEiLCAiJDIiLCAiJDMiLCAiJDQiLCAiJF8iXTsKKyAgICAgICAgICAgICAgICB2YXIgY29t
bWFuZExpbmVBUEkgPSBbIiQiLCAiJCQiLCAiJHgiLCAiZGlyIiwgImRpcnhtbCIsICJrZXlzIiwg
InZhbHVlcyIsICJwcm9maWxlIiwgInByb2ZpbGVFbmQiLCAibW9uaXRvckV2ZW50cyIsICJ1bm1v
bml0b3JFdmVudHMiLCAiaW5zcGVjdCIsICJjb3B5IiwgImNsZWFyIiwgImdldEV2ZW50TGlzdGVu
ZXJzIiwgIiQwIiwgIiQxIiwgIiQyIiwgIiQzIiwgIiQ0IiwgIiRfIl07CisgICAgICAgICAgICAg
ICAgaWYgKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucGF1c2VkICYmIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1hbmFnZXIucGF1c2VSZWFzb24gPT09IFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1h
bmFnZXIuUGF1c2VSZWFzb24uRXhjZXB0aW9uKQorICAgICAgICAgICAgICAgICAgICBjb21tYW5k
TGluZUFQSS5wdXNoKCIkZSIpOwogICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
Y29tbWFuZExpbmVBUEkubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5
TmFtZXNbY29tbWFuZExpbmVBUElbaV1dID0gdHJ1ZTsKICAgICAgICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241758</attachid>
            <date>2014-11-17 20:21:22 -0800</date>
            <delta_ts>2014-12-02 14:25:15 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>$exception.patch</filename>
            <type>text/plain</type>
            <size>32768</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5YWU1NzNmLi5mZjFiODYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTQtMTEt
MTcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBQcm92aWRlICRleGNlcHRpb24gaW4gdGhlIGNvbnNvbGUgZm9yIHRoZSB0aHJv
d24gZXhjZXB0aW9uIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzg3MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQcm92aWRlIHNvbWUgdGVzdHMgdG8gZW5zdXJlICRleGNlcHRpb24gaXMgdGhl
IHZhbHVlIHdlIGV4cGVjdCBhdCBkaWZmZXJlbnQgdGltZXMsCisgICAgICAgIHN1Y2ggYXMgb24g
dGhlIGV4Y2VwdGlvbiBsaW5lLCB3aGVuIHRoZXJlIGlzIG5vIGV4Y2VwdGlvbiwgb3Igd2hlbiBz
dGVwcGluZyB0aHJvdWdoCisgICAgICAgIGNhdGNoIGJsb2NrcyAoaXQgc2hvdWxkIGFsd2F5cyBi
ZSB0aGUgbW9zdCByZWNlbnQgY2F1Z2h0IGV4Y2VwdGlvbikuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvY29tbWFuZC1saW5lLWFwaS1leGNlcHRpb24tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvY29tbWFuZC1saW5lLWFwaS1leGNlcHRp
b24tbmVzdGVkLWNhdGNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL2NvbW1hbmQtbGluZS1hcGktZXhjZXB0aW9uLW5lc3RlZC1jYXRjaC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvY29tbWFuZC1saW5lLWFwaS1leGNl
cHRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNl
cy9leGNlcHRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKHRyaWdnZXJVbmNhdWdodFR5cGVFeGNl
cHRpb24pOgorICAgICAgICAodHJpZ2dlclVuY2F1Z2h0UmVmZXJlbmNlRXhjZXB0aW9uKToKKyAg
ICAgICAgKHRyaWdnZXJVbmNhdWdodFN5bnRheEV4Y2VwdGlvbik6CisgICAgICAgICh0cmlnZ2Vy
VW5jYXVnaHRET01FeGNlcHRpb24pOgorICAgICAgICAodGhyb3dTdHJpbmcpOgorICAgICAgICAo
dGhyb3dOdW1iZXIpOgorICAgICAgICAodGhyb3dOdWxsKToKKyAgICAgICAgKHRocm93T2JqZWN0
KToKKyAgICAgICAgKHRocm93Tm9kZSk6CisgICAgICAgIChjYXRjaGVyKToKKyAgICAgICAgKG5l
c3RlZENhdGNoQmxvY2tzKToKKwogMjAxNC0xMS0xNyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFw
QGFwcGxlLmNvbT4KIAogICAgICAgICBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWN1ZXMtYWRk
ZWQtb25jZS5odG1sIGZhaWxzIHNvbWV0aW1lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2NvbW1hbmQtbGluZS1hcGktZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jb21tYW5kLWxpbmUtYXBpLWV4Y2VwdGlv
bi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY3NzI5
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jb21t
YW5kLWxpbmUtYXBpLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMiBAQAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDQ6IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmpl
Y3QgKGV2YWx1YXRpbmcgJ1tdLngueCcpCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IFJlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiB2YXJpYWJsZVRoYXREb2VzTm90RXhpc3QK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNjogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4g
JyknCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjI6IEluZGV4U2l6ZUVycm9yOiBET00gRXhjZXB0
aW9uIDE6IEluZGV4IG9yIHNpemUgd2FzIG5lZ2F0aXZlLCBvciBncmVhdGVyIHRoYW4gdGhlIGFs
bG93ZWQgdmFsdWUuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjc6IHRocm93biBzdHJpbmcKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAzMjogMTIzLjQ1NgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM3
OiBudWxsCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDI6IFtvYmplY3QgT2JqZWN0XQorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDQ3OiBbb2JqZWN0IEhUTUxCb2R5RWxlbWVudF0KK0NPTlNPTEUgTUVT
U0FHRTogbGluZSA1NTogQ0FUQ0hFUjogVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9i
amVjdCAoZXZhbHVhdGluZyAnW10ueC54JykKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogQ0FU
Q0hFUjogdGhyb3duIHN0cmluZworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBDQVRDSEVSOiBb
b2JqZWN0IE9iamVjdF0KK0NoZWNrcyB0aGF0ICRleGNlcHRpb24gaXMgYXZhaWxhYmxlIGFuZCBh
Y2N1cmF0ZSBpbiBldmFsdWF0aW9ucyB3aGVuIHBhdXNlZCBvbiBhbiBleGNlcHRpb24uCisKK0JF
Rk9SRTogJGV4Y2VwdGlvbiA9PiB1bmRlZmluZWQKK1BBVVNFICMxOiAkZXhjZXB0aW9uID0+IFR5
cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ1tdLngueCcp
CitQQVVTRSAjMjogJGV4Y2VwdGlvbiA9PiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJp
YWJsZTogdmFyaWFibGVUaGF0RG9lc05vdEV4aXN0CitQQVVTRSAjMzogJGV4Y2VwdGlvbiA9PiBT
eW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKScKK1BBVVNFICM0OiAkZXhjZXB0aW9uID0+
IERPTUV4Y2VwdGlvbgorUEFVU0UgIzU6ICRleGNlcHRpb24gPT4gdGhyb3duIHN0cmluZworUEFV
U0UgIzY6ICRleGNlcHRpb24gPT4gMTIzLjQ1NgorUEFVU0UgIzc6ICRleGNlcHRpb24gPT4gbnVs
bAorUEFVU0UgIzg6ICRleGNlcHRpb24gPT4gT2JqZWN0CitQQVVTRSAjOTogJGV4Y2VwdGlvbiA9
PiBib2R5CitQQVVTRSAjMTA6ICRleGNlcHRpb24gPT4gVHlwZUVycm9yOiB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnW10ueC54JykKK1NURVBQRUQgT1VUIFRPIENBVENI
IEJMT0NLOiAkZXhjZXB0aW9uID09PSBlID8gdHJ1ZQorUEFVU0UgIzExOiAkZXhjZXB0aW9uID0+
IHRocm93biBzdHJpbmcKK1NURVBQRUQgT1VUIFRPIENBVENIIEJMT0NLOiAkZXhjZXB0aW9uID09
PSBlID8gdHJ1ZQorUEFVU0UgIzEyOiAkZXhjZXB0aW9uID0+IE9iamVjdAorU1RFUFBFRCBPVVQg
VE8gQ0FUQ0ggQkxPQ0s6ICRleGNlcHRpb24gPT09IGUgPyB0cnVlCitBRlRFUjogJGV4Y2VwdGlv
biA9PiB1bmRlZmluZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2NvbW1hbmQtbGluZS1hcGktZXhjZXB0aW9uLW5lc3RlZC1jYXRjaC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY29tbWFuZC1saW5lLWFwaS1leGNlcHRp
b24tbmVzdGVkLWNhdGNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5iZjdmN2M3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2NvbW1hbmQtbGluZS1hcGktZXhjZXB0aW9uLW5lc3RlZC1jYXRjaC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY3OiBpbm5lciBl
eGNlcHRpb24KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA2OTogb3V0ZXIgZXhjZXB0aW9uCitDaGVj
a3MgdGhhdCAkZXhjZXB0aW9uIGlzIHRoZSB2YWx1ZSBvZiB0aGUgY3VycmVudCBleGNlcHRpb24s
IGV2ZW4gaW4gbmVzdGVkIGNhdGNoIGJsb2Nrcy4KKworQkVGT1JFIDogJGV4Y2VwdGlvbiA9PiB1
bmRlZmluZWQKK09VVEVSIDE6ICRleGNlcHRpb24gPT4gb3V0ZXIgZXhjZXB0aW9uCitJTk5FUiAx
OiAkZXhjZXB0aW9uID0+IGlubmVyIGV4Y2VwdGlvbgorSU5ORVIgMjogJGV4Y2VwdGlvbiA9PiBp
bm5lciBleGNlcHRpb24KKyAgQ0FUQ0g6ICRleGNlcHRpb24gPT09IGUyID8gdHJ1ZQorT1VURVIg
MjogJGV4Y2VwdGlvbiA9PiBvdXRlciBleGNlcHRpb24KKyAgQ0FUQ0g6ICRleGNlcHRpb24gPT09
IGUxID8gdHJ1ZQorQUZURVIgIDogJGV4Y2VwdGlvbiA9PiB1bmRlZmluZWQKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NvbW1hbmQtbGluZS1hcGktZXhjZXB0
aW9uLW5lc3RlZC1jYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Nv
bW1hbmQtbGluZS1hcGktZXhjZXB0aW9uLW5lc3RlZC1jYXRjaC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjNjI5OTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY29tbWFuZC1saW5lLWFwaS1leGNlcHRpb24tbmVzdGVk
LWNhdGNoLmh0bWwKQEAgLTAsMCArMSw4NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvZXhjZXB0aW9ucy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZnVuY3Rpb24gdHJpZ2dlckV4Y2VwdGlvbigpCit7CisgICAgLy8gV2UgZXhw
ZWN0IHVuY2F1Z2h0IGV4Y2VwdGlvbnMsIHNvIGF2b2lkIGxvZ3MgZm9yIHRoZW0uCisgICAgd2lu
ZG93Lm9uZXJyb3IgPSBmdW5jdGlvbigpe307CisgICAgc2V0VGltZW91dChuZXN0ZWRDYXRjaEJs
b2NrcywgMCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKKwor
ICAgIGZ1bmN0aW9uIGR1bXBDb21tYW5kTGluZUFQSVZhbHVlKHByZWZpeCkgeworICAgICAgICBX
ZWJJbnNwZWN0b3IucnVudGltZU1hbmFnZXIuZXZhbHVhdGVJbkluc3BlY3RlZFdpbmRvdygiJGV4
Y2VwdGlvbiIsICJ0ZXN0IiwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZ1bmN0aW9uKHJlc3VsdCwgd2Fz
VGhyb3duKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhwcmVmaXggKyAiOiAkZXhj
ZXB0aW9uID0+ICIgKyByZXN1bHQuZGVzY3JpcHRpb24pOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBjaGVja0lmRXhjZXB0aW9uVmFsdWVNYXRjaGVzVmFyaWFibGUodmFyTmFt
ZSkgeworICAgICAgICBXZWJJbnNwZWN0b3IucnVudGltZU1hbmFnZXIuZXZhbHVhdGVJbkluc3Bl
Y3RlZFdpbmRvdygiJGV4Y2VwdGlvbiA9PT0gIiArIHZhck5hbWUsICJ0ZXN0IiwgdHJ1ZSwgdHJ1
ZSwgZmFsc2UsIGZ1bmN0aW9uKHJlc3VsdCwgd2FzVGhyb3duKSB7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiICBDQVRDSDogJGV4Y2VwdGlvbiA9PT0gIiArIHZhck5hbWUgKyAiID8g
IiArIHJlc3VsdC5kZXNjcmlwdGlvbik7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHZhciBk
b25lID0gZmFsc2U7CisgICAgdmFyIHBoYXNlID0gMDsKKworICAgIFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2Vy
LkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGlm
IChkb25lKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHBoYXNlKys7CisKKyAgICAg
ICAgLy8gU2tpcCBwYXN0IHRoZSBmaXJzdCBwYXVzZSB0byB0aGUgc2Vjb25kIHBhdXNlLgorICAg
ICAgICBpZiAocGhhc2UgPT09IDEpIHsKKyAgICAgICAgICAgIGR1bXBDb21tYW5kTGluZUFQSVZh
bHVlKCJPVVRFUiAxIik7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2Vy
LnJlc3VtZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8g
UGF1c2VkIG9uIHRoZSBleGNlcHRpb24gaW4gdGhlIGlubmVyIHRyeSwgc3RlcCBvdmVyIHRvIGdl
dCBpbnRvIHRoZSBpbm5lciBjYXRjaC4KKyAgICAgICAgaWYgKHBoYXNlID09PSAyKSB7CisgICAg
ICAgICAgICBkdW1wQ29tbWFuZExpbmVBUElWYWx1ZSgiSU5ORVIgMSIpOworICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5zdGVwT3ZlcigpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gUGF1c2VkIGluIHRoZSBpbm5lciBjYXRjaCwg
dmVyaWZ5ICRleGNlcHRpb24gaXMgImlubmVyIGV4Y2VwdGlvbiIuCisgICAgICAgIGlmIChwaGFz
ZSA9PT0gMykgeworICAgICAgICAgICAgZHVtcENvbW1hbmRMaW5lQVBJVmFsdWUoIklOTkVSIDIi
KTsKKyAgICAgICAgICAgIGNoZWNrSWZFeGNlcHRpb25WYWx1ZU1hdGNoZXNWYXJpYWJsZSgiZTIi
KTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuc3RlcE92ZXIoKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gU3Rl
cHBlZCBpbnRvIHRoZSBvdXRlciBjYXRjaCwgdmVyaWZ5ICRleGNlcHRpb24gaXMgIm91dGVyIGV4
Y2VwdGlvbiIuCisgICAgICAgIGlmIChwaGFzZSA9PT0gNCkgeworICAgICAgICAgICAgZHVtcENv
bW1hbmRMaW5lQVBJVmFsdWUoIk9VVEVSIDIiKTsKKyAgICAgICAgICAgIGNoZWNrSWZFeGNlcHRp
b25WYWx1ZU1hdGNoZXNWYXJpYWJsZSgiZTEiKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICB9KTsKKworICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlJlc3VtZWQsIGZ1bmN0aW9u
KGV2ZW50KSB7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgICAgICBkdW1wQ29tbWFuZExpbmVB
UElWYWx1ZSgiQUZURVIgICIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OworICAgIH0pOworCisgICAgZHVtcENvbW1hbmRMaW5lQVBJVmFsdWUoIkJFRk9SRSAiKTsKKyAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJ0cmlnZ2VyRXhjZXB0aW9uKCkiKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPkNo
ZWNrcyB0aGF0IDxjb2RlPiRleGNlcHRpb248L2NvZGU+IGlzIHRoZSB2YWx1ZSBvZiB0aGUgY3Vy
cmVudCBleGNlcHRpb24sIGV2ZW4gaW4gbmVzdGVkIGNhdGNoIGJsb2Nrcy48L3A+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY29t
bWFuZC1saW5lLWFwaS1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9jb21tYW5kLWxpbmUtYXBpLWV4Y2VwdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjMxOWIxNzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvY29tbWFuZC1saW5lLWFwaS1leGNlcHRpb24uaHRtbApAQCAtMCww
ICsxLDk4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuL3Jlc291cmNlcy9leGNlcHRpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgZXhj
ZXB0aW9uSW5kZXggPSAwOwordmFyIGV4Y2VwdGlvbkNhdXNlcnMgPSBbCisgICAgdHJpZ2dlclVu
Y2F1Z2h0VHlwZUV4Y2VwdGlvbiwKKyAgICB0cmlnZ2VyVW5jYXVnaHRSZWZlcmVuY2VFeGNlcHRp
b24sCisgICAgdHJpZ2dlclVuY2F1Z2h0U3ludGF4RXhjZXB0aW9uLAorICAgIHRyaWdnZXJVbmNh
dWdodERPTUV4Y2VwdGlvbiwKKyAgICB0aHJvd1N0cmluZywKKyAgICB0aHJvd051bWJlciwKKyAg
ICB0aHJvd051bGwsCisgICAgdGhyb3dPYmplY3QsCisgICAgdGhyb3dOb2RlLAorICAgIGZ1bmN0
aW9uKCkgeyBjYXRjaGVyKHRyaWdnZXJVbmNhdWdodFR5cGVFeGNlcHRpb24pOyB9LAorICAgIGZ1
bmN0aW9uKCkgeyBjYXRjaGVyKHRocm93U3RyaW5nKTsgfSwKKyAgICBmdW5jdGlvbigpIHsgY2F0
Y2hlcih0aHJvd09iamVjdCk7IH0sCitdOworCisKK2Z1bmN0aW9uIHRyaWdnZXJOZXh0RXhjZXB0
aW9uKCkKK3sKKyAgICAvLyBXZSBleHBlY3QgdW5jYXVnaHQgZXhjZXB0aW9ucywgc28gYXZvaWQg
bG9ncyBmb3IgdGhlbS4KKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKCl7fTsKKworICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGV4Y2VwdGlvbkNhdXNlcnNbZXhjZXB0
aW9uSW5kZXgrK10oKTsKKyAgICB9LCAwKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNh
YmxlZCA9IGZhbHNlOworCisgICAgZnVuY3Rpb24gdHJpZ2dlck5leHRFeGNlcHRpb24oKSB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInRyaWdnZXJOZXh0RXhjZXB0aW9u
KCkiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkdW1wQ29tbWFuZExpbmVBUElWYWx1ZShwcmVm
aXgpIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnJ1bnRpbWVNYW5hZ2VyLmV2YWx1YXRlSW5JbnNw
ZWN0ZWRXaW5kb3coIiRleGNlcHRpb24iLCAidGVzdCIsIHRydWUsIHRydWUsIGZhbHNlLCBmdW5j
dGlvbihyZXN1bHQsIHdhc1Rocm93bikgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
cHJlZml4ICsgIjogJGV4Y2VwdGlvbiA9PiAiICsgcmVzdWx0LmRlc2NyaXB0aW9uKTsKKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tJZkV4Y2VwdGlvblZhbHVlTWF0Y2hl
c0NhdGNoVmFyaWFibGUoKSB7CisgICAgICAgIFdlYkluc3BlY3Rvci5ydW50aW1lTWFuYWdlci5l
dmFsdWF0ZUluSW5zcGVjdGVkV2luZG93KCIkZXhjZXB0aW9uID09PSBlIiwgInRlc3QiLCB0cnVl
LCB0cnVlLCBmYWxzZSwgZnVuY3Rpb24ocmVzdWx0LCB3YXNUaHJvd24pIHsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJTVEVQUEVEIE9VVCBUTyBDQVRDSCBCTE9DSzogJGV4Y2VwdGlv
biA9PT0gZSA/ICIgKyByZXN1bHQuZGVzY3JpcHRpb24pOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICB2YXIgcGF1c2VzID0gMDsKKyAgICB2YXIgc3RlcHBpbmcgPSBmYWxzZTsKKyAgICB2YXIg
ZG9uZSA9IGZhbHNlOworICAgIGNvbnN0IHBvaW50V2hlcmVFeHBlY3Rpb25zQXJlQmVpbmdDYXVn
aHQgPSA5OworICAgIGNvbnN0IGV4cGVjdGVkUGF1c2VzID0gMTI7CisKKyAgICBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
TWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgeworICAg
ICAgICBpZiAoZG9uZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoIXN0ZXBw
aW5nKSB7CisgICAgICAgICAgICBkdW1wQ29tbWFuZExpbmVBUElWYWx1ZSgiUEFVU0UgIyIgKyAo
KytwYXVzZXMpKTsKKyAgICAgICAgICAgIGlmIChwYXVzZXMgPiBwb2ludFdoZXJlRXhwZWN0aW9u
c0FyZUJlaW5nQ2F1Z2h0KSB7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TWFuYWdlci5zdGVwT3V0KCk7CisgICAgICAgICAgICAgICAgc3RlcHBpbmcgPSB0cnVlOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGNoZWNrSWZFeGNlcHRpb25WYWx1ZU1hdGNoZXNDYXRjaFZhcmlhYmxlKCk7Cisg
ICAgICAgICAgICBzdGVwcGluZyA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKKworICAgICAgICBpZiAocGF1c2VzICE9
PSBleHBlY3RlZFBhdXNlcykgeworICAgICAgICAgICAgdHJpZ2dlck5leHRFeGNlcHRpb24oKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1hbmFnZXIuRXZlbnQuUmVzdW1lZCwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgZG9uZSA9
IHRydWU7CisgICAgICAgIGR1bXBDb21tYW5kTGluZUFQSVZhbHVlKCJBRlRFUiIpOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0pOworCisgICAgZHVtcENvbW1h
bmRMaW5lQVBJVmFsdWUoIkJFRk9SRSIpOworICAgIHRyaWdnZXJOZXh0RXhjZXB0aW9uKCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5D
aGVja3MgdGhhdCA8Y29kZT4kZXhjZXB0aW9uPC9jb2RlPiBpcyBhdmFpbGFibGUgYW5kIGFjY3Vy
YXRlIGluIGV2YWx1YXRpb25zIHdoZW4gcGF1c2VkIG9uIGFuIGV4Y2VwdGlvbi48L3A+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
cmVzb3VyY2VzL2V4Y2VwdGlvbnMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
cmVzb3VyY2VzL2V4Y2VwdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uOTA1MDZlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9yZXNvdXJjZXMvZXhjZXB0aW9ucy5qcwpAQCAtMCwwICsxLDcxIEBACitmdW5jdGlvbiB0
cmlnZ2VyVW5jYXVnaHRUeXBlRXhjZXB0aW9uKCkKK3sKKyAgICAvLyBFeGNlcHRpb246IFR5cGVF
cnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ1tdLngueCcpCisg
ICAgW10ueC54OworfQorCitmdW5jdGlvbiB0cmlnZ2VyVW5jYXVnaHRSZWZlcmVuY2VFeGNlcHRp
b24oKQoreworICAgIC8vIEV4Y2VwdGlvbjogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IHZhcmlhYmxlVGhhdERvZXNOb3RFeGlzdAorICAgIHZhcmlhYmxlVGhhdERvZXNOb3RF
eGlzdCArPSAxOworfQorCitmdW5jdGlvbiB0cmlnZ2VyVW5jYXVnaHRTeW50YXhFeGNlcHRpb24o
KQoreworICAgIC8vIEV4Y2VwdGlvbjogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJykn
CisgICAgZXZhbCgiaWYoKSIpOworfQorCitmdW5jdGlvbiB0cmlnZ2VyVW5jYXVnaHRET01FeGNl
cHRpb24oKQoreworICAgIC8vIEVycm9yOiBJbmRleFNpemVFcnJvcjogRE9NIEV4Y2VwdGlvbiAx
CisgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpLnNwbGl0VGV4dCgxMDApOworfQorCitm
dW5jdGlvbiB0aHJvd1N0cmluZygpCit7CisgICAgdGhyb3cgInRocm93biBzdHJpbmciOworfQor
CitmdW5jdGlvbiB0aHJvd051bWJlcigpCit7CisgICAgdGhyb3cgMTIzLjQ1NjsKK30KKworZnVu
Y3Rpb24gdGhyb3dOdWxsKCkKK3sKKyAgICB0aHJvdyBudWxsOworfQorCitmdW5jdGlvbiB0aHJv
d09iamVjdCgpCit7CisgICAgdGhyb3cge3g6MSx5OjJ9OworfQorCitmdW5jdGlvbiB0aHJvd05v
ZGUoKQoreworICAgIHRocm93IGRvY3VtZW50LmJvZHk7Cit9CisKK2Z1bmN0aW9uIGNhdGNoZXIo
ZnVuYykKK3sKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkgewor
ICAgICAgICBjb25zb2xlLmxvZygiQ0FUQ0hFUjogIiArIGUpOworICAgIH0KK30KKworZnVuY3Rp
b24gbmVzdGVkQ2F0Y2hCbG9ja3MoKQoreworICAgIHRyeSB7CisgICAgICAgIHRocm93ICJvdXRl
ciBleGNlcHRpb24iOworICAgIH0gY2F0Y2ggKGUxKSB7CisgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICB0aHJvdyAiaW5uZXIgZXhjZXB0aW9uIjsKKyAgICAgICAgfSBjYXRjaCAoZTIpIHsKKyAg
ICAgICAgICAgIGNvbnNvbGUubG9nKGUyKTsKKyAgICAgICAgfQorICAgICAgICBjb25zb2xlLmxv
ZyhlMSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNjc4ZmMwNi4uZTQy
OTg0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTQtMTEt
MTcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBQcm92aWRlICRleGNlcHRpb24gaW4gdGhlIGNvbnNvbGUgZm9yIHRoZSB0aHJv
d24gZXhjZXB0aW9uIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzg3MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyU2NvcGUuY3BwOgorICAgICAgICAoSlNDOjpE
ZWJ1Z2dlclNjb3BlOjpjYXVnaHRWYWx1ZSk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJT
Y29wZS5oOgorICAgICAgICBBY2Nlc3MgdGhlIGNhdWdodCB2YWx1ZSBpZiB0aGlzIHNjb3BlIGlz
IGEgY2F0Y2ggc2NvcGUuCisKKyAgICAgICAgKiBydW50aW1lL0pTTmFtZVNjb3BlLmg6CisgICAg
ICAgIChKU0M6OkpTTmFtZVNjb3BlOjppc0Z1bmN0aW9uTmFtZVNjb3BlKToKKyAgICAgICAgKEpT
Qzo6SlNOYW1lU2NvcGU6OmlzQ2F0Y2hTY29wZSk6CisgICAgICAgIChKU0M6OkpTTmFtZVNjb3Bl
Ojp2YWx1ZSk6CisgICAgICAgIFByb3ZpZGUgYW4gYWNjZXNzb3IgZm9yIHRoZSBzaW5nbGUgdmFs
dWUgaW4gdGhlIEpTTmFtZVNjb3BlICh3aXRoIC8gY2F0Y2ggYmxvY2spLgorCisgICAgICAgICog
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzOgorICAgICAgICBTYXZlIHRoZSBleGNl
cHRpb24gdmFsdWUgYW5kIGV4cG9zZSBpdCB2aWEgJGV4Y2VwdGlvbi4gU2luY2UgdGhlIGNvbW1h
bmQgbGluZSBhcGkKKyAgICAgICAgaXMgcmVjcmVhdGVkIG9uIGVhY2ggZXZhbHVhdGlvbiwgJGV4
Y2VwdGlvbiBpcyBlc3NlbnRpYWxseSByZWFkb25seS4KKworICAgICAgICAqIGluc3BlY3Rvci9T
Y3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZl
ci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRjaERp
ZFBhdXNlKToKKyAgICAgICAgKEluc3BlY3Rvcjo6U2NyaXB0RGVidWdTZXJ2ZXI6OmV4Y2VwdGlv
bk9yQ2F1Z2h0VmFsdWUpOgorICAgICAgICBXaGVuIHBhdXNpbmcsIGdldCB0aGUgZXhjZXB0aW9u
IG9yIGNhdWdodCB2YWx1ZS4gVGhlIGV4Y2VwdGlvbiB3aWxsIGJlIHByb3ZpZGVkCisgICAgICAg
IGlmIHdlIGFyZSBicmVha2luZyBvbiBhbiBleHBsaWNpdCBleGNlcHRpb24uIFdoZW4gaW5zaWRl
IG9mIGEgY2F0Y2ggYmxvY2ssIHdlCisgICAgICAgIGNhbiBnZXQgdGhlIGNhdWdodCB2YWx1ZSBi
eSB3YWxraW5nIHVwIHRoZSBzY29wZSBjaGFpbi4KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQ6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQpOgorICAgICAgICAoSW5zcGVj
dG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpyZXN1bWUpOgorICAgICAgICAoSW5zcGVjdG9y
OjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzdGVwT3Zlcik6CisgICAgICAgIChJbnNwZWN0b3I6
Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnN0ZXBJbnRvKToKKyAgICAgICAgKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c3RlcE91dCk6CisgICAgICAgIENsZWFyaW5nIHN0YXRl
IGNhbiBiZSBkb25lIGluIGRpZENvbnRpbnVlLgorCisgICAgICAgIChJbnNwZWN0b3I6Okluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ6OmRpZFBhdXNlKToKKyAgICAgICAgU2V0IHRoZSBleGNlcHRpb24g
dmFsdWUgZXhwbGljaXRseSBpbiB0aGUgaW5qZWN0ZWQgc2NyaXB0IHdoZW4gd2UgaGF2ZSBpdC4K
KworICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDb250aW51
ZSk6CisgICAgICAgIENsZWFyIHN0YXRlIHNhdmVkIHdoZW4gd2UgaGFkIHBhdXNlZCwgaW5jbHVk
aW5nIGNsZWFybHkgYW4gZXhjZXB0aW9uIHZhbHVlIGlmIG5lZWRlZC4KKworICAgICAgICAoSW5z
cGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpjbGVhckRlYnVnZ2VyQnJlYWtwb2ludFN0
YXRlKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y2xlYXJF
eGNlcHRpb25WYWx1ZSk6CisgICAgICAgIENhbGwgaW50byB0aGUgaW5qZWN0ZWQgc2NyaXB0IG9u
bHkgd2hlbiBuZWVkZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3Bw
OgorICAgICAgICAoSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdDo6c2V0RXhjZXB0aW9uVmFsdWUp
OgorICAgICAgICAoSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdDo6Y2xlYXJFeGNlcHRpb25WYWx1
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Oklu
amVjdGVkU2NyaXB0TWFuYWdlcjo6Y2xlYXJFeGNlcHRpb25WYWx1ZSk6CisgICAgICAgICogaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oOgorICAgICAgICBDbGVhciBvbiBhbGwgaW5q
ZWN0ZWQgc2NyaXB0cy4KKwogMjAxNC0xMS0xNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIHByaW50aW5nIGZ1bmN0aW9uYWxpdHkgaW4gSklUdGVkIGNvZGUg
Zm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlclNjb3BlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlclNjb3BlLmNwcAppbmRleCBlOWI1MDE2Li4yZjc0OTFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJTY29wZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyU2NvcGUuY3BwCkBAIC0xODMs
NCArMTgzLDEwIEBAIGJvb2wgRGVidWdnZXJTY29wZTo6aXNGdW5jdGlvbk9yRXZhbFNjb3BlKCkg
Y29uc3QKICAgICByZXR1cm4gbV9zY29wZS0+aXNBY3RpdmF0aW9uT2JqZWN0KCk7CiB9CiAKK0pT
VmFsdWUgRGVidWdnZXJTY29wZTo6Y2F1Z2h0VmFsdWUoKSBjb25zdAoreworICAgIEFTU0VSVChp
c0NhdGNoU2NvcGUoKSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8SlNOYW1lU2NvcGUq
PihtX3Njb3BlLmdldCgpKS0+dmFsdWUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJTY29wZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyU2NvcGUuaAppbmRleCAzMmE3
MmY3Li4yMjdjYjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXJTY29wZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlclNjb3BlLmgKQEAgLTkwLDYgKzkwLDggQEAgcHVibGljOgogICAgIGJvb2wgaXNHbG9iYWxT
Y29wZSgpIGNvbnN0OwogICAgIGJvb2wgaXNGdW5jdGlvbk9yRXZhbFNjb3BlKCkgY29uc3Q7CiAK
KyAgICBKU1ZhbHVlIGNhdWdodFZhbHVlKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgRGVidWdnZXJTY29wZShWTSYsIEpTU2NvcGUqKTsKICAgICBKU19FWFBPUlRf
UFJJVkFURSB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCmluZGV4IDYxZGRjMGMuLjk1ZmE3
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHQuY3BwCkBAIC0yMDIsNiArMjAyLDIzIEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpQcm90
b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiBJbmplY3RlZFNjcmlwdDo6d3JhcFRhYmxlCiAg
ICAgcmV0dXJuIEJpbmRpbmdUcmFpdHM8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVt
b3RlT2JqZWN0Pjo6cnVudGltZUNhc3QocmVzdWx0T2JqZWN0KTsKIH0KIAordm9pZCBJbmplY3Rl
ZFNjcmlwdDo6c2V0RXhjZXB0aW9uVmFsdWUoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUm
IHZhbHVlKQoreworICAgIEFTU0VSVCghaGFzTm9WYWx1ZSgpKTsKKyAgICBEZXByZWNhdGVkOjpT
Y3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3JpcHRPYmplY3QoKSwgQVNDSUlM
aXRlcmFsKCJzZXRFeGNlcHRpb25WYWx1ZSIpLCBpbnNwZWN0b3JFbnZpcm9ubWVudCgpLT5mdW5j
dGlvbkNhbGxIYW5kbGVyKCkpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHZhbHVlKTsK
KyAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHJlc3VsdDsKKyAgICBtYWtlQ2FsbChmdW5jdGlv
biwgJnJlc3VsdCk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRTY3JpcHQ6OmNsZWFyRXhjZXB0aW9uVmFs
dWUoKQoreworICAgIEFTU0VSVCghaGFzTm9WYWx1ZSgpKTsKKyAgICBEZXByZWNhdGVkOjpTY3Jp
cHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3JpcHRPYmplY3QoKSwgQVNDSUlMaXRl
cmFsKCJjbGVhckV4Y2VwdGlvblZhbHVlIiksIGluc3BlY3RvckVudmlyb25tZW50KCktPmZ1bmN0
aW9uQ2FsbEhhbmRsZXIoKSk7CisgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiByZXN1bHQ7Cisg
ICAgbWFrZUNhbGwoZnVuY3Rpb24sICZyZXN1bHQpOworfQorCiBEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSBJbmplY3RlZFNjcmlwdDo6ZmluZE9iamVjdEJ5SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJ
ZCkgY29uc3QKIHsKICAgICBBU1NFUlQoIWhhc05vVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKaW5kZXggNzFiZDY4Yi4uNDJj
NzkwZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHQuaApAQCAtNjYsNiArNjYsOSBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxQcm90b2Nv
bDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiB3cmFwT2JqZWN0KGNvbnN0IERlcHJlY2F0ZWQ6OlNj
cmlwdFZhbHVlJiwgY29uc3QgU3RyaW5nJiBncm91cE5hbWUsIGJvb2wgZ2VuZXJhdGVQcmV2aWV3
ID0gZmFsc2UpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90
ZU9iamVjdD4gd3JhcFRhYmxlKGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiB0YWJsZSwg
Y29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGNvbHVtbnMpIGNvbnN0OwogCisgICAgdm9p
ZCBzZXRFeGNlcHRpb25WYWx1ZShjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYpOworICAg
IHZvaWQgY2xlYXJFeGNlcHRpb25WYWx1ZSgpOworCiAgICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFs
dWUgZmluZE9iamVjdEJ5SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCkgY29uc3Q7CiAgICAgdm9p
ZCBpbnNwZWN0T2JqZWN0KERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKTsKICAgICB2b2lkIHJlbGVh
c2VPYmplY3QoY29uc3QgU3RyaW5nJiBvYmplY3RJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKaW5kZXgg
OWE5MDE4Yi4uZjMwYWFlOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcApAQCAtMTIyLDYgKzEyMiwxMiBA
QCB2b2lkIEluamVjdGVkU2NyaXB0TWFuYWdlcjo6cmVsZWFzZU9iamVjdEdyb3VwKGNvbnN0IFN0
cmluZyYgb2JqZWN0R3JvdXApCiAgICAgICAgIGl0LT52YWx1ZS5yZWxlYXNlT2JqZWN0R3JvdXAo
b2JqZWN0R3JvdXApOwogfQogCit2b2lkIEluamVjdGVkU2NyaXB0TWFuYWdlcjo6Y2xlYXJFeGNl
cHRpb25WYWx1ZSgpCit7CisgICAgZm9yIChhdXRvIGl0ID0gbV9pZFRvSW5qZWN0ZWRTY3JpcHQu
YmVnaW4oKTsgaXQgIT0gbV9pZFRvSW5qZWN0ZWRTY3JpcHQuZW5kKCk7ICsraXQpCisgICAgICAg
IGl0LT52YWx1ZS5jbGVhckV4Y2VwdGlvblZhbHVlKCk7Cit9CisKIFN0cmluZyBJbmplY3RlZFNj
cmlwdE1hbmFnZXI6OmluamVjdGVkU2NyaXB0U291cmNlKCkKIHsKICAgICByZXR1cm4gU3RyaW5n
SW1wbDo6Y3JlYXRlV2l0aG91dENvcHlpbmcoSW5qZWN0ZWRTY3JpcHRTb3VyY2VfanMsIHNpemVv
ZihJbmplY3RlZFNjcmlwdFNvdXJjZV9qcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgKaW5kZXggMzNhNjA4NC4u
ZjZkMDUzMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0TWFuYWdlci5oCkBAIC02Niw2ICs2Niw3IEBAIHB1YmxpYzoKICAgICBJ
bmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvck9iamVjdElkKGNvbnN0IFN0cmluZyYgb2Jq
ZWN0SWQpOwogICAgIHZvaWQgZGlzY2FyZEluamVjdGVkU2NyaXB0cygpOwogICAgIHZvaWQgcmVs
ZWFzZU9iamVjdEdyb3VwKGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXApOworICAgIHZvaWQgY2xl
YXJFeGNlcHRpb25WYWx1ZSgpOwogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGRpZENy
ZWF0ZUluamVjdGVkU2NyaXB0KEluamVjdGVkU2NyaXB0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCmluZGV4IGZj
OWVmN2EuLmJmMGRkYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwpAQCAtODYsNiArODYsMTYgQEAgSW5qZWN0
ZWRTY3JpcHQucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tXcmFw
cGVyKG9iamVjdCk7CiAgICAgfSwKIAorICAgIHNldEV4Y2VwdGlvblZhbHVlOiBmdW5jdGlvbih2
YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuX2V4Y2VwdGlvblZhbHVlID0gdmFsdWU7CisgICAg
fSwKKworICAgIGNsZWFyRXhjZXB0aW9uVmFsdWU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IGRlbGV0ZSB0aGlzLl9leGNlcHRpb25WYWx1ZTsKKyAgICB9LAorCiAgICAgLyoqCiAgICAgICog
QHBhcmFtIHsqfSBvYmplY3QKICAgICAgKiBAcmV0dXJuIHshUnVudGltZUFnZW50LlJlbW90ZU9i
amVjdH0KQEAgLTEwNDEsNiArMTA1MSw3IEBAIEluamVjdGVkU2NyaXB0LkNhbGxGcmFtZVByb3h5
Ll9jcmVhdGVTY29wZUpzb24gPSBmdW5jdGlvbihzY29wZVR5cGVDb2RlLCBzY29wZU9iCiBmdW5j
dGlvbiBCYXNpY0NvbW1hbmRMaW5lQVBJKCkKIHsKICAgICB0aGlzLiRfID0gaW5qZWN0ZWRTY3Jp
cHQuX2xhc3RSZXN1bHQ7CisgICAgdGhpcy4kZXhjZXB0aW9uID0gaW5qZWN0ZWRTY3JpcHQuX2V4
Y2VwdGlvblZhbHVlOwogfQogCiByZXR1cm4gaW5qZWN0ZWRTY3JpcHQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4
IDQzZDAyMjcuLmMzYTBhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC0xMzgsOCArMTM4LDggQEAgdm9pZCBT
Y3JpcHREZWJ1Z1NlcnZlcjo6ZGlzcGF0Y2hEaWRQYXVzZShTY3JpcHREZWJ1Z0xpc3RlbmVyKiBs
aXN0ZW5lcikKICAgICBKU0M6OkV4ZWNTdGF0ZSogc3RhdGUgPSBnbG9iYWxPYmplY3QtPmdsb2Jh
bEV4ZWMoKTsKICAgICBSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4gamF2YVNjcmlwdENhbGxG
cmFtZSA9IEphdmFTY3JpcHRDYWxsRnJhbWU6OmNyZWF0ZShkZWJ1Z2dlckNhbGxGcmFtZSk7CiAg
ICAgSlNWYWx1ZSBqc0NhbGxGcmFtZSA9IHRvSlMoc3RhdGUsIGdsb2JhbE9iamVjdCwgamF2YVNj
cmlwdENhbGxGcmFtZS5nZXQoKSk7Ci0gICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXhjZXB0
aW9uID0gcmVhc29uRm9yUGF1c2UoKSA9PSBQYXVzZWRGb3JFeGNlcHRpb24gPyBEZXByZWNhdGVk
OjpTY3JpcHRWYWx1ZShzdGF0ZS0+dm0oKSwgY3VycmVudEV4Y2VwdGlvbigpKSA6IERlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlKCk7Ci0gICAgbGlzdGVuZXItPmRpZFBhdXNlKHN0YXRlLCBEZXByZWNh
dGVkOjpTY3JpcHRWYWx1ZShzdGF0ZS0+dm0oKSwganNDYWxsRnJhbWUpLCBleGNlcHRpb24pOwor
CisgICAgbGlzdGVuZXItPmRpZFBhdXNlKHN0YXRlLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShz
dGF0ZS0+dm0oKSwganNDYWxsRnJhbWUpLCBleGNlcHRpb25PckNhdWdodFZhbHVlKHN0YXRlKSk7
CiB9CiAKIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmRpc3BhdGNoQnJlYWtwb2ludEFjdGlvbkxv
ZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTMyNyw2ICszMjcs
MjIgQEAgY29uc3QgQnJlYWtwb2ludEFjdGlvbnMmIFNjcmlwdERlYnVnU2VydmVyOjpnZXRBY3Rp
b25zRm9yQnJlYWtwb2ludChKU0M6OkJyZWFrcG8KICAgICByZXR1cm4gZW1wdHlBY3Rpb25WZWN0
b3I7CiB9CiAKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdERlYnVnU2VydmVyOjpleGNl
cHRpb25PckNhdWdodFZhbHVlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK3sKKyAgICBpZiAocmVh
c29uRm9yUGF1c2UoKSA9PSBQYXVzZWRGb3JFeGNlcHRpb24pCisgICAgICAgIHJldHVybiBEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZShzdGF0ZS0+dm0oKSwgY3VycmVudEV4Y2VwdGlvbigpKTsKKwor
ICAgIFJlZlB0cjxEZWJ1Z2dlckNhbGxGcmFtZT4gZGVidWdnZXJDYWxsRnJhbWUgPSBjdXJyZW50
RGVidWdnZXJDYWxsRnJhbWUoKTsKKyAgICB3aGlsZSAoZGVidWdnZXJDYWxsRnJhbWUpIHsKKyAg
ICAgICAgRGVidWdnZXJTY29wZSogc2NvcGUgPSBkZWJ1Z2dlckNhbGxGcmFtZS0+c2NvcGUoKTsK
KyAgICAgICAgaWYgKHNjb3BlLT5pc0NhdGNoU2NvcGUoKSkKKyAgICAgICAgICAgIHJldHVybiBE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShzdGF0ZS0+dm0oKSwgc2NvcGUtPmNhdWdodFZhbHVlKCkp
OworICAgICAgICBkZWJ1Z2dlckNhbGxGcmFtZSA9IGRlYnVnZ2VyQ2FsbEZyYW1lLT5jYWxsZXJG
cmFtZSgpOworICAgIH0KKworICAgIHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNU
T1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERl
YnVnU2VydmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVn
U2VydmVyLmgKaW5kZXggNDU3N2I4MS4uNGIyMWFkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAtMTA1LDYgKzEwNSw4
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVBhdXNlKEpTQzo6RGVidWdnZXI6
OlJlYXNvbkZvclBhdXNlLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJpZGUgZmluYWw7CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeURvbmVQcm9jZXNzaW5nRGVidWdnZXJFdmVudHMoKSBvdmVy
cmlkZSBmaW5hbDsKIAorICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV4Y2VwdGlvbk9yQ2F1
Z2h0VmFsdWUoSlNDOjpFeGVjU3RhdGUqKTsKKwogICAgIHVuc2lnbmVkIG1faGl0Q291bnQ7CiAg
ICAgYm9vbCBtX2NhbGxpbmdMaXN0ZW5lcnM7CiAgICAgQnJlYWtwb2ludElEVG9BY3Rpb25zTWFw
IG1fYnJlYWtwb2ludElEVG9BY3Rpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNw
cAppbmRleCBhMDZhNmQzLi4yOGRhMmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmNwcApAQCAtNjUsNiArNjUsNyBAQCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpJbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50KEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTYwogICAgICwgbV9j
b250aW51ZVRvTG9jYXRpb25CcmVha3BvaW50SUQoSlNDOjpub0JyZWFrcG9pbnRJRCkKICAgICAs
IG1fZW5hYmxlZChmYWxzZSkKICAgICAsIG1famF2YVNjcmlwdFBhdXNlU2NoZWR1bGVkKGZhbHNl
KQorICAgICwgbV9oYXNFeGNlcHRpb25WYWx1ZShmYWxzZSkKICAgICAsIG1fbmV4dFByb2JlU2Ft
cGxlSWQoMSkKIHsKICAgICAvLyBGSVhNRTogbWFrZSBicmVha1JlYXNvbiBvcHRpb25hbCBzbyB0
aGF0IHRoZXJlIHdhcyBubyBuZWVkIHRvIGluaXQgaXQgd2l0aCAib3RoZXIiLgpAQCAtNDY4LDcg
KzQ2OSw2IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6cmVzdW1lKEVycm9yU3RyaW5n
JiBlcnJvclN0cmluZykKICAgICBpZiAoIWFzc2VydFBhdXNlZChlcnJvclN0cmluZykpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5yZWxlYXNlT2JqZWN0
R3JvdXAoSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6YmFja3RyYWNlT2JqZWN0R3JvdXApOwogICAg
IHNjcmlwdERlYnVnU2VydmVyKCkuY29udGludWVQcm9ncmFtKCk7CiB9CiAKQEAgLTQ3Nyw3ICs0
NzcsNiBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnN0ZXBPdmVyKEVycm9yU3RyaW5n
JiBlcnJvclN0cmluZykKICAgICBpZiAoIWFzc2VydFBhdXNlZChlcnJvclN0cmluZykpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5yZWxlYXNlT2JqZWN0
R3JvdXAoSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6YmFja3RyYWNlT2JqZWN0R3JvdXApOwogICAg
IHNjcmlwdERlYnVnU2VydmVyKCkuc3RlcE92ZXJTdGF0ZW1lbnQoKTsKIH0KIApAQCAtNDg2LDcg
KzQ4NSw2IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c3RlcEludG8oRXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nKQogICAgIGlmICghYXNzZXJ0UGF1c2VkKGVycm9yU3RyaW5nKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPnJlbGVhc2VPYmpl
Y3RHcm91cChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpiYWNrdHJhY2VPYmplY3RHcm91cCk7CiAg
ICAgc2NyaXB0RGVidWdTZXJ2ZXIoKS5zdGVwSW50b1N0YXRlbWVudCgpOwogCiAgICAgaWYgKG1f
bGlzdGVuZXIpCkBAIC00OTgsNyArNDk2LDYgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OjpzdGVwT3V0KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKICAgICBpZiAoIWFzc2VydFBhdXNl
ZChlcnJvclN0cmluZykpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLT5yZWxlYXNlT2JqZWN0R3JvdXAoSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6YmFja3Ry
YWNlT2JqZWN0R3JvdXApOwogICAgIHNjcmlwdERlYnVnU2VydmVyKCkuc3RlcE91dE9mRnVuY3Rp
b24oKTsKIH0KIApAQCAtNjQzLDYgKzY0MCw4IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dDo6ZGlkUGF1c2UoSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRlLCBjb25zdCBEZXByZWNhCiAg
ICAgICAgICAgICBtX2JyZWFrUmVhc29uID0gSW5zcGVjdG9yRGVidWdnZXJGcm9udGVuZERpc3Bh
dGNoZXI6OlJlYXNvbjo6RXhjZXB0aW9uOwogICAgICAgICAgICAgbV9icmVha0F1eERhdGEgPSBp
bmplY3RlZFNjcmlwdC53cmFwT2JqZWN0KGV4Y2VwdGlvbiwgSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dDo6YmFja3RyYWNlT2JqZWN0R3JvdXApLT5vcGVuQWNjZXNzb3JzKCk7CiAgICAgICAgICAgICAv
LyBtX2JyZWFrQXV4RGF0YSBtaWdodCBiZSBudWxsIGFmdGVyIHRoaXMuCisgICAgICAgICAgICBp
bmplY3RlZFNjcmlwdC5zZXRFeGNlcHRpb25WYWx1ZShleGNlcHRpb24pOworICAgICAgICAgICAg
bV9oYXNFeGNlcHRpb25WYWx1ZSA9IHRydWU7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTY4Nyw4
ICs2ODYsMTAgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDb250aW51ZSgpCiB7
CiAgICAgbV9wYXVzZWRTY3JpcHRTdGF0ZSA9IG51bGxwdHI7CiAgICAgbV9jdXJyZW50Q2FsbFN0
YWNrID0gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoKTsKKyAgICBtX2luamVjdGVkU2NyaXB0TWFu
YWdlci0+cmVsZWFzZU9iamVjdEdyb3VwKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmJhY2t0cmFj
ZU9iamVjdEdyb3VwKTsKICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5zcGVjdG9yRW52
aXJvbm1lbnQoKS5leGVjdXRpb25TdG9wd2F0Y2goKS0+c3RhcnQoKTsKICAgICBjbGVhckJyZWFr
RGV0YWlscygpOworICAgIGNsZWFyRXhjZXB0aW9uVmFsdWUoKTsKIAogICAgIG1fZnJvbnRlbmRE
aXNwYXRjaGVyLT5yZXN1bWVkKCk7CiB9CkBAIC03MjQsNiArNzI1LDcgQEAgdm9pZCBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50OjpjbGVhckRlYnVnZ2VyQnJlYWtwb2ludFN0YXRlKCkKICAgICBtX2Nv
bnRpbnVlVG9Mb2NhdGlvbkJyZWFrcG9pbnRJRCA9IEpTQzo6bm9CcmVha3BvaW50SUQ7CiAgICAg
Y2xlYXJCcmVha0RldGFpbHMoKTsKICAgICBtX2phdmFTY3JpcHRQYXVzZVNjaGVkdWxlZCA9IGZh
bHNlOworICAgIG1faGFzRXhjZXB0aW9uVmFsdWUgPSBmYWxzZTsKIAogICAgIHNjcmlwdERlYnVn
U2VydmVyKCkuY29udGludWVQcm9ncmFtKCk7CiB9CkBAIC03NTQsNiArNzU2LDE0IEBAIHZvaWQg
SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y2xlYXJCcmVha0RldGFpbHMoKQogICAgIG1fYnJlYWtB
dXhEYXRhID0gbnVsbHB0cjsKIH0KIAordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpjbGVh
ckV4Y2VwdGlvblZhbHVlKCkKK3sKKyAgICBpZiAobV9oYXNFeGNlcHRpb25WYWx1ZSkgeworICAg
ICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+Y2xlYXJFeGNlcHRpb25WYWx1ZSgpOworICAg
ICAgICBtX2hhc0V4Y2VwdGlvblZhbHVlID0gZmFsc2U7CisgICAgfQorfQorCiB9IC8vIG5hbWVz
cGFjZSBJbnNwZWN0b3IKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggNzQzYzcyOS4uNjY4MzcyYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQuaApAQCAtMTQ2LDYgKzE0Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBj
bGVhckRlYnVnZ2VyQnJlYWtwb2ludFN0YXRlKCk7CiAgICAgdm9pZCBjbGVhckluc3BlY3RvckJy
ZWFrcG9pbnRTdGF0ZSgpOwogICAgIHZvaWQgY2xlYXJCcmVha0RldGFpbHMoKTsKKyAgICB2b2lk
IGNsZWFyRXhjZXB0aW9uVmFsdWUoKTsKIAogICAgIGJvb2wgYnJlYWtwb2ludEFjdGlvbnNGcm9t
UHJvdG9jb2woRXJyb3JTdHJpbmcmLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBhY3Rpb25zLCBC
cmVha3BvaW50QWN0aW9ucyogcmVzdWx0KTsKIApAQCAtMTY3LDYgKzE2OCw3IEBAIHByaXZhdGU6
CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbV9icmVha0F1eERhdGE7CiAgICAgYm9vbCBt
X2VuYWJsZWQ7CiAgICAgYm9vbCBtX2phdmFTY3JpcHRQYXVzZVNjaGVkdWxlZDsKKyAgICBib29s
IG1faGFzRXhjZXB0aW9uVmFsdWU7CiAgICAgUmVmUHRyPFdURjo6U3RvcHdhdGNoPiBtX3N0b3B3
YXRjaDsKICAgICBpbnQgbV9uZXh0UHJvYmVTYW1wbGVJZDsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05hbWVTY29wZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNOYW1lU2NvcGUuaAppbmRleCAyNzc1MzQ2Li4wOWQxZDliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05hbWVTY29wZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNjb3BlLmgKQEAgLTY1LDggKzY1
LDEwIEBAIHB1YmxpYzoKIAogICAgIERFQ0xBUkVfSU5GTzsKIAotICAgIGJvb2wgaXNGdW5jdGlv
bk5hbWVTY29wZSgpIHsgcmV0dXJuIG1fdHlwZSA9PSBGdW5jdGlvbk5hbWVTY29wZTsgfQotICAg
IGJvb2wgaXNDYXRjaFNjb3BlKCkgeyByZXR1cm4gbV90eXBlID09IENhdGNoU2NvcGU7IH0KKyAg
ICBib29sIGlzRnVuY3Rpb25OYW1lU2NvcGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRnVu
Y3Rpb25OYW1lU2NvcGU7IH0KKyAgICBib29sIGlzQ2F0Y2hTY29wZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZSA9PSBDYXRjaFNjb3BlOyB9CisKKyAgICBKU1ZhbHVlIHZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZWdpc3RlclN0b3JlLmdldCgpOyB9CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgSlNWYWx1
ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwZDQ2MTNkLi40Yjkx
Y2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMTEtMTcgIEpvc2VwaCBQZWNv
cmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm92
aWRlICRleGNlcHRpb24gaW4gdGhlIGNvbnNvbGUgZm9yIHRoZSB0aHJvd24gZXhjZXB0aW9uIHZh
bHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg3
MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
czogaW5zcGVjdG9yL2RlYnVnZ2VyL2NvbW1hbmQtbGluZS1hcGktZXhjZXB0aW9uLW5lc3RlZC1j
YXRjaC5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvZGVidWdnZXIvY29tbWFuZC1saW5l
LWFwaS1leGNlcHRpb24uaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJ
TW9kdWxlU291cmNlLmpzOgorICAgICAgICBFeHBvc2UgJGV4Y2VwdGlvbiBpbiB0aGUgbW9yZSBj
b21wbGV0ZSBjb21tYW5kIGxpbmUgQVBJLgorCiAyMDE0LTExLTE3ICBaYWxhbiBCdWp0YXMgIDx6
YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxlIGxpbmUgbGF5b3V0OiBSZW5hbWUgRmxv
d0NvbnRlbnRJdGVyYXRvciBhbmQgbW92ZSBpbXBsZW1lbnRhdGlvbiB0byBTaW1wbGVMaW5lTGF5
b3V0Rmxvd0NvbnRlbnRzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmpzCmluZGV4IDYxZTU4M2MuLmZlM2NmM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSU1vZHVsZVNv
dXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29tbWFuZExpbmVBUElNb2R1
bGVTb3VyY2UuanMKQEAgLTEyNCw2ICsxMjQsNyBAQCBmdW5jdGlvbiBDb21tYW5kTGluZUFQSShj
b21tYW5kTGluZUFQSUltcGwsIGNhbGxGcmFtZSkKICAgICB9CiAKICAgICB0aGlzLiRfID0gaW5q
ZWN0ZWRTY3JpcHQuX2xhc3RSZXN1bHQ7CisgICAgdGhpcy4kZXhjZXB0aW9uID0gaW5qZWN0ZWRT
Y3JpcHQuX2V4Y2VwdGlvblZhbHVlOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmlu
ZGV4IDgwOTIwMWYuLjlmZmRkYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDE0LTExLTE3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUHJvdmlkZSAkZXhjZXB0aW9uIGluIHRoZSBjb25z
b2xlIGZvciB0aGUgdGhyb3duIGV4Y2VwdGlvbiB2YWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NzI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvVGVzdC5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5sb2FkZWQpOgorICAgICAgICBJbiBvcmRlciB0byB1c2Ug
UnVudGltZU1hbmFnZXIgdG8gZXhlY3V0ZSBpbiB0aGUgZ2xvYmFsIGNvbnRleHQgb3Igb24gdGhl
CisgICAgICAgIGFjdGl2ZSBkZWJ1Z2dlciBjYWxsIGZyYW1lLCB3ZSBuZWVkIHRvIGV4cG9zZSB0
aGUgcXVpY2tDb25zb2xlIGNvbnRyb2xsZXIuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL0phdmFTY3JpcHRSdW50aW1lQ29tcGxldGlvblByb3ZpZGVyLmpzOgorICAgICAg
ICBFeHBvc2UgJGV4Y2VwdGlvbiB0byBjb21wbGV0aW9uIHdoZW4gd2UgcGF1c2VkIGJlY2F1c2Ug
b2YgYW4gZXhjZXB0aW9uLgorCiAyMDE0LTExLTEzICBBbmRyZXMgR29tZXogIDxhZ29tZXpAaWdh
bGlhLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZXBsYWNlIFBERiBpY29uIHdpdGgg
U1ZHIHZlcnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0Jhc2UvVGVzdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvVGVzdC5qcwppbmRleCBmNDQyZTBlLi5hZmIyMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1Rlc3QuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9UZXN0LmpzCkBAIC01Niw2ICs1Niw5IEBAIFdl
Ykluc3BlY3Rvci5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5wcm9iZU1hbmFnZXIgPSBu
ZXcgV2ViSW5zcGVjdG9yLlByb2JlTWFuYWdlcjsKICAgICB0aGlzLnJlcGxheU1hbmFnZXIgPSBu
ZXcgV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFnZXI7CiAKKyAgICAvLyBHbG9iYWwgY29udHJvbGxl
cnMuCisgICAgdGhpcy5xdWlja0NvbnNvbGUgPSB7ZXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI6
IHVuZGVmaW5lZH07CisKICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50
TG9hZGVkIiwgdGhpcy5jb250ZW50TG9hZGVkLmJpbmQodGhpcykpOwogCiAgICAgLy8gRW5hYmxl
IGFnZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL0phdmFTY3JpcHRSdW50aW1lQ29tcGxldGlvblByb3ZpZGVyLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvSmF2YVNjcmlwdFJ1
bnRpbWVDb21wbGV0aW9uUHJvdmlkZXIuanMKaW5kZXggMGMyZDk4Zi4uY2U1ZmZiYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvSmF2
YVNjcmlwdFJ1bnRpbWVDb21wbGV0aW9uUHJvdmlkZXIuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvSmF2YVNjcmlwdFJ1bnRpbWVDb21wbGV0
aW9uUHJvdmlkZXIuanMKQEAgLTE3NCw3ICsxNzQsOSBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlw
dFJ1bnRpbWVDb21wbGV0aW9uUHJvdmlkZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgUnVu
dGltZUFnZW50LnJlbGVhc2VPYmplY3RHcm91cCgiY29tcGxldGlvbiIpOwogCiAgICAgICAgICAg
ICBpZiAoIWJhc2UpIHsKLSAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kTGluZUFQSSA9IFsi
JCIsICIkJCIsICIkeCIsICJkaXIiLCAiZGlyeG1sIiwgImtleXMiLCAidmFsdWVzIiwgInByb2Zp
bGUiLCAicHJvZmlsZUVuZCIsICJtb25pdG9yRXZlbnRzIiwgInVubW9uaXRvckV2ZW50cyIsICJp
bnNwZWN0IiwgImNvcHkiLCAiY2xlYXIiLCAiZ2V0RXZlbnRMaXN0ZW5lcnMiLCAiJDAiLCAiJDEi
LCAiJDIiLCAiJDMiLCAiJDQiLCAiJF8iXTsKKyAgICAgICAgICAgICAgICB2YXIgY29tbWFuZExp
bmVBUEkgPSBbIiQiLCAiJCQiLCAiJHgiLCAiZGlyIiwgImRpcnhtbCIsICJrZXlzIiwgInZhbHVl
cyIsICJwcm9maWxlIiwgInByb2ZpbGVFbmQiLCAibW9uaXRvckV2ZW50cyIsICJ1bm1vbml0b3JF
dmVudHMiLCAiaW5zcGVjdCIsICJjb3B5IiwgImNsZWFyIiwgImdldEV2ZW50TGlzdGVuZXJzIiwg
IiQwIiwgIiQxIiwgIiQyIiwgIiQzIiwgIiQ0IiwgIiRfIl07CisgICAgICAgICAgICAgICAgaWYg
KFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucGF1c2VkICYmIFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1hbmFnZXIucGF1c2VSZWFzb24gPT09IFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIu
UGF1c2VSZWFzb24uRXhjZXB0aW9uKQorICAgICAgICAgICAgICAgICAgICBjb21tYW5kTGluZUFQ
SS5wdXNoKCIkZXhjZXB0aW9uIik7CiAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBjb21tYW5kTGluZUFQSS5sZW5ndGg7ICsraSkKICAgICAgICAgICAgICAgICAgICAgcHJvcGVy
dHlOYW1lc1tjb21tYW5kTGluZUFQSVtpXV0gPSB0cnVlOwogICAgICAgICAgICAgfQo=
</data>
<flag name="review"
          id="266626"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>