<?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>136542</bug_id>
          
          <creation_ts>2014-09-04 12:48:43 -0700</creation_ts>
          <short_desc>Web Inspector: breakpoint actions should work regardless of Content Security Policy</short_desc>
          <delta_ts>2014-09-05 14:08:29 -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>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="Matt Baker">mattbaker</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</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>1033276</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2014-09-04 12:48:43 -0700</bug_when>
    <thetext>Breakpoint actions that evaluate JavaScript don&apos;t work when inspecting pages with a CSP that doesn&apos;t permit &quot;unsafe-eval&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033277</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-09-04 12:49:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/18233842&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033374</commentid>
    <comment_count>2</comment_count>
      <attachid>237664</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2014-09-04 17:59:34 -0700</bug_when>
    <thetext>Created attachment 237664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033387</commentid>
    <comment_count>3</comment_count>
      <attachid>237664</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-09-04 18:45:06 -0700</bug_when>
    <thetext>Comment on attachment 237664
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        JSGlobalObject for the duration of scope, returning the eval enabled state to its

/duration of scope/duration of a scope/

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        to allow breakpoint actions to execute JS in pages with CSP that would normally

Would you mind spelling out Content Security Policy instead of the CSP abbreviation?  Thanks.

&gt; Source/JavaScriptCore/ChangeLog:14
&gt; +        Refactored Inspector::InjectedScriptBase to use RAII object instead of manually

/use RAII/use the RAII/

&gt; Source/JavaScriptCore/ChangeLog:15
&gt; +        setting/resetting eval enabled state.

/...ing eval enabled/...ing the eval enabled/

&gt; Source/JavaScriptCore/debugger/DebuggerEvalEnabler.h:46
&gt; +    explicit DebuggerEvalEnabler(const ExecState* exec)
&gt; +        : m_globalObject(nullptr)
&gt; +        , m_evalEnabled(false)
&gt; +    {
&gt; +        if (exec) {
&gt; +            m_globalObject = exec-&gt;lexicalGlobalObject();
&gt; +            m_evalEnabled = m_globalObject-&gt;evalEnabled();
&gt; +        }
&gt; +        if (m_globalObject &amp;&amp; !m_evalEnabled)
&gt; +            m_globalObject-&gt;setEvalEnabled(true, m_globalObject-&gt;evalDisabledErrorMessage());
&gt; +    }

I suggest renaming m_evalEnabled to m_evalWasEnabled to indicate that it is referring to the original state.  Actually, I think you should use m_evalwasDisabled instead because that would remove the need for a lot of negation in the code (making the logic simpler).

I think it&apos;s weird that the exec can be NULL, but that appears to be a due to InjectedScriptBase getting the exec from ScriptObject::scriptState() which can currently be NULL.  I suggest adding a comment in the ChangeLog to document this so that we&apos;ll have a record of why this NULL check exists, and can remove it in the future if we fix ScriptObject::scriptState() to never be NULL (at least for the duration when the DebuggerEvalEnabler is called).

Why not just cache the ExecState, and do a conditional on that?  I suggest the following:

    explicit DebuggerEvalEnabler(const ExecState* exec)
        : m_exec(exec)
        , m_evalWasDisabled(false)
    {
        if (exec) {
            JSGlobalObject* globalObject = exec-&gt;lexicalGlobalObject();
            m_evalWasDisabled = !m_globalObject-&gt;evalEnabled();
            if (m_evalWasDisabled)
                globalObject-&gt;setEvalEnabled(true, globalObject-&gt;evalDisabledErrorMessage());
        }
    }

    ~DebuggerEvalEnabler()
    {
        if (m_evalWasDisabled) {
            ASSERT(m_exec);
            JSGlobalObject* globalObject = exec-&gt;lexicalGlobalObject();
            globalObject()-&gt;setEvalEnabled(false, globalObject-&gt;evalDisabledErrorMessage());
        }
    }

I think the code is a little simpler this way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033390</commentid>
    <comment_count>4</comment_count>
      <attachid>237670</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2014-09-04 19:17:21 -0700</bug_when>
    <thetext>Created attachment 237670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033391</commentid>
    <comment_count>5</comment_count>
      <attachid>237670</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-09-04 19:33:28 -0700</bug_when>
    <thetext>Comment on attachment 237670
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033392</commentid>
    <comment_count>6</comment_count>
      <attachid>237670</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-09-04 19:36:23 -0700</bug_when>
    <thetext>Comment on attachment 237670
Patch

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

Looks good to me.

&gt; Source/JavaScriptCore/debugger/DebuggerEvalEnabler.h:2
&gt; + * Copyright (C) 2013 Apple Inc. All rights reserved.

Nit: 2014

&gt; LayoutTests/inspector/debugger/breakpoint-action-eval.html:22
&gt; +    WebInspector.Frame.addEventListener(WebInspector.Frame.Event.MainResourceDidChange, function() {

Is the MainResourceDidChange + reload really necessary? This test would be much simpler if it was just listening for the ScriptAdded event.

&gt; LayoutTests/inspector/debugger/breakpoint-action-eval.html:39
&gt; +          });

Nit: broken indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033393</commentid>
    <comment_count>7</comment_count>
      <attachid>237670</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-09-04 19:37:32 -0700</bug_when>
    <thetext>Comment on attachment 237670
Patch

Cancelling commit so that Matt can address Joe&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033492</commentid>
    <comment_count>8</comment_count>
      <attachid>237670</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-09-05 11:19:45 -0700</bug_when>
    <thetext>Comment on attachment 237670
Patch

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

&gt; Source/JavaScriptCore/inspector/InjectedScriptBase.cpp:86
&gt; +    JSC::DebuggerEvalEnabler evalEnabler(scriptState);
&gt;      Deprecated::ScriptValue resultValue = function.call(hadException);

Please add { } around these lines so that we preserve the original semantics of only enabling evals for this function call, and not the didCallInjectedScriptFunction() callback that follows below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033500</commentid>
    <comment_count>9</comment_count>
      <attachid>237702</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2014-09-05 11:42:55 -0700</bug_when>
    <thetext>Created attachment 237702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033514</commentid>
    <comment_count>10</comment_count>
      <attachid>237704</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2014-09-05 12:17:02 -0700</bug_when>
    <thetext>Created attachment 237704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033539</commentid>
    <comment_count>11</comment_count>
      <attachid>237704</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-09-05 13:31:36 -0700</bug_when>
    <thetext>Comment on attachment 237704
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033545</commentid>
    <comment_count>12</comment_count>
      <attachid>237704</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-05 14:08:26 -0700</bug_when>
    <thetext>Comment on attachment 237704
Patch

Clearing flags on attachment: 237704

Committed r173333: &lt;http://trac.webkit.org/changeset/173333&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033546</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-05 14:08:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237664</attachid>
            <date>2014-09-04 17:59:34 -0700</date>
            <delta_ts>2014-09-04 19:17:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136542-20140904175928.patch</filename>
            <type>text/plain</type>
            <size>15964</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczMjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NmRlZTY4OGVlZjIwODQxZjFjYzA5Zjg1NzgwM2Y3YjNmN2M3OTdhLi41NTZkMGExMmI3ODgxMDNl
YTFiZjBjNTIxNTdjOWY5NTJjMWFhNDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxNC0wOS0wNCAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYnJlYWtwb2ludCBhY3Rpb25zIHNob3VsZCB3b3Jr
IHJlZ2FyZGxlc3Mgb2YgQ29udGVudCBTZWN1cml0eSBQb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjU0MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEpTQzo6RGVidWdnZXJFdmFsRW5h
YmxlciwgYW4gUkFJSSBvYmplY3Qgd2hpY2ggZW5hYmxlcyBldmFsIG9uIGEgCisgICAgICAgIEpT
R2xvYmFsT2JqZWN0IGZvciB0aGUgZHVyYXRpb24gb2Ygc2NvcGUsIHJldHVybmluZyB0aGUgZXZh
bCBlbmFibGVkIHN0YXRlIHRvIGl0cworICAgICAgICBvcmlnaW5hbCB2YWx1ZSB3aGVuIHRoZSBz
Y29wZSBleGl0cy4gVXNlZCBieSBKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lOjpldmFsdWF0ZSAKKyAg
ICAgICAgdG8gYWxsb3cgYnJlYWtwb2ludCBhY3Rpb25zIHRvIGV4ZWN1dGUgSlMgaW4gcGFnZXMg
d2l0aCBDU1AgdGhhdCB3b3VsZCBub3JtYWxseQorICAgICAgICBwcm9oaWJpdCB0aGlzIChzdWNo
IGFzIEluc3BlY3RvcidzIE1haW4uaHRtbCkuCisKKyAgICAgICAgUmVmYWN0b3JlZCBJbnNwZWN0
b3I6OkluamVjdGVkU2NyaXB0QmFzZSB0byB1c2UgUkFJSSBvYmplY3QgaW5zdGVhZCBvZiBtYW51
YWxseQorICAgICAgICBzZXR0aW5nL3Jlc2V0dGluZyBldmFsIGVuYWJsZWQgc3RhdGUuCisKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6Cisg
ICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZp
bHRlcnM6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHA6CisgICAgICAgIChK
U0M6OkRlYnVnZ2VyQ2FsbEZyYW1lOjpldmFsdWF0ZSk6CisgICAgICAgICogZGVidWdnZXIvRGVi
dWdnZXJFdmFsRW5hYmxlci5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RGVidWdnZXJFdmFsRW5h
Ymxlcjo6RGVidWdnZXJFdmFsRW5hYmxlcik6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyRXZhbEVu
YWJsZXI6On5EZWJ1Z2dlckV2YWxFbmFibGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRCYXNlLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRCYXNl
OjpjYWxsRnVuY3Rpb25XaXRoRXZhbEVuYWJsZWQpOgorCiAyMDE0LTA5LTAzICBBa29zIEtpc3Mg
IDxha2lzc0BpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgRG9uJ3QgZ2VuZXJhdGUgc3VwZXJm
bHVvdXMgbW92IGluc3RydWN0aW9ucyBmb3IgbW92ZSBpbW1lZGlhdGUgb24gQVJNNjQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCAyNTllZmI0YWFlZTNjMzUzNGU0
NTAwMDY2NmIwZTM5Nzc1MzAyYzJlLi41NTkyNmI4OTJkYzdkMzZkNWE4ZGE3MzAzZjE4ZmZiMjgx
NDQ0NTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKQEAgLTk3Myw2
ICs5NzMsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGVidWdnZXJcQnJlYWtwb2lu
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGVidWdnZXJcRGVidWdnZXIuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRlYnVnZ2VyXERlYnVnZ2VyQ2FsbEZyYW1l
LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZWJ1Z2dlclxEZWJ1Z2dlckV2YWxF
bmFibGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZWJ1Z2dlclxEZWJ1Z2dl
clByaW1pdGl2ZXMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRlYnVnZ2VyXERl
YnVnZ2VyU2NvcGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdBYnN0
cmFjdEhlYXAuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ouZmlsdGVycwppbmRleCBmMjU4OTY4NjEzZDYwNWMzMjMzMjU3ZWEyMWNlYzU3YTBhMDk1MDZj
Li43YzFhMmIxYzgzNjgwYWJhYzg3NzhiMmM4ZTdlNjY3MDUyODA5OWI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0xOTU4LDYgKzE5
NTgsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGVidWdnZXJcRGVidWdnZXJDYWxs
RnJhbWUuaCI+CiAgICAgICA8RmlsdGVyPmRlYnVnZ2VyPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZWJ1Z2dlclxEZWJ1Z2dlckV2YWxFbmFi
bGVyLmgiPgorICAgICAgPEZpbHRlcj5kZWJ1Z2dlcjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRl
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGVidWdnZXJcRGVidWdnZXJQcmltaXRpdmVz
LmgiPgogICAgICAgPEZpbHRlcj5kZWJ1Z2dlcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1ZGE4MTVkOTUyYzEyZTE1MjRiOTNkYTRl
ZWU1MWYyODFjZGIwNjk4Li44NTZkMGU1YzAwNTI4MjQ2MjU5MDk2NjUzZWNhOWQ4ZDAyZmVkODlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE3MSw2ICsxMTcxLDcgQEAKIAkJ
NjVDMDI4NUMxNzE3OTY2ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUMwMjg1QTE3MTc5NjY4MDAzNTFF
MzUgLyogQVJNdjdET3Bjb2RlLmNwcCAqLzsgfTsKIAkJNjVDMDI4NUQxNzE3OTY2ODAwMzUxRTM1
IC8qIEFSTXY3RE9wY29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNjVDMDI4NUIxNzE3OTY2ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5oICovOyB9
OwogCQk2NUZCNTExNzE4NEVFRTcwMDBDMTJCNzAgLyogUHJvdG9DYWxsRnJhbWUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVGQjUxMTYxODRFRTlC
QzAwQzEyQjcwIC8qIFByb3RvQ2FsbEZyYW1lLmNwcCAqLzsgfTsKKwkJNkFEMkNCNEQxOUI5MTQw
MTAwMDY1NzE5IC8qIERlYnVnZ2VyRXZhbEVuYWJsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZBRDJDQjRDMTlCOTE0MDEwMDA2NTcxOSAvKiBEZWJ1
Z2dlckV2YWxFbmFibGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJN0MwMDhDRDIxODZGOEE5MzAwOTU1QzI0IC8qIEpTUHJvbWlzZUZ1bmN0aW9u
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzAw
OENEMDE4NkY4QTkzMDA5NTVDMjQgLyogSlNQcm9taXNlRnVuY3Rpb25zLmNwcCAqLzsgfTsKIAkJ
N0MwMDhDRDMxODZGOEE5MzAwOTU1QzI0IC8qIEpTUHJvbWlzZUZ1bmN0aW9ucy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMDhDRDExODZGOEE5MzAw
OTU1QzI0IC8qIEpTUHJvbWlzZUZ1bmN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMDA4Q0RBMTg3MTI0QkIwMDk1NUMyNCAvKiBKU1By
b21pc2VEZWZlcnJlZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QzAwOENEODE4NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuY3Bw
ICovOyB9OwpAQCAtMjgwOCw2ICsyODA5LDcgQEAKIAkJNjVFQTczNjMwQkFFMzVEMTAwMUJCNTYw
IC8qIENvbW1vbklkZW50aWZpZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDb21tb25JZGVudGlmaWVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUZC
NTExNTE4NEVFOEY4MDBDMTJCNzAgLyogUHJvdG9DYWxsRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUHJvdG9DYWxsRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNjVGQjUxMTYxODRFRTlCQzAwQzEyQjcwIC8qIFByb3RvQ2FsbEZyYW1lLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3RvQ2FsbEZyYW1lLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkFEMkNCNEMxOUI5MTQwMTAwMDY1NzE5IC8q
IERlYnVnZ2VyRXZhbEVuYWJsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGVidWdnZXJFdmFsRW5hYmxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MDRG
RDM1MzA1Njk3RTZEMDAzREJFRDkgLyogQm9vbGVhbk9iamVjdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCb29sZWFuT2JqZWN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJN0MwMDhDRDAxODZGOEE5MzAw
OTU1QzI0IC8qIEpTUHJvbWlzZUZ1bmN0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gSlNQcm9taXNlRnVuY3Rpb25zLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0g
eGNvZGUubGFuZy5jcHA7IH07CiAJCTdDMDA4Q0QxMTg2RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21p
c2VGdW5jdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQcm9taXNl
RnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MjEzLDYgKzQyMTUs
NyBAQAogCQkJCUY2OTJBODU5MDI1NTU5N0QwMUZGNjBGNyAvKiBEZWJ1Z2dlci5oICovLAogCQkJ
CTE0OTU1OUVEMEREQ0RERjcwMDY0ODA4NyAvKiBEZWJ1Z2dlckNhbGxGcmFtZS5jcHAgKi8sCiAJ
CQkJMTQ4MERCOUIwRERDMjI3RjAwM0NGREYyIC8qIERlYnVnZ2VyQ2FsbEZyYW1lLmggKi8sCisJ
CQkJNkFEMkNCNEMxOUI5MTQwMTAwMDY1NzE5IC8qIERlYnVnZ2VyRXZhbEVuYWJsZXIuaCAqLywK
IAkJCQlGRUEwODYxRjE4MkI3QTA0MDBGNkQ4NTEgLyogRGVidWdnZXJQcmltaXRpdmVzLmggKi8s
CiAJCQkJMEYyRDREREIxOTgzMkQzNDAwN0Q0QjE5IC8qIERlYnVnZ2VyU2NvcGUuY3BwICovLAog
CQkJCTBGMkQ0RERDMTk4MzJEMzQwMDdENEIxOSAvKiBEZWJ1Z2dlclNjb3BlLmggKi8sCkBAIC01
NzQ4LDYgKzU3NTEsNyBAQAogCQkJCUExQTAwOUMxMTgzMUEyNkUwMENGODcxMSAvKiBBUk02NEFz
c2VtYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZEM0IyQzQxMDE1NkJERTAwMjg2NUU3IC8q
IEFSTUFzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzQ5RkU0QUIxOUFBQzg2MTAwRjQw
Q0U5IC8qIGdlbmVyYXRlX3Byb3RvY29sX3R5cGVzX2hlYWRlci5weSBpbiBIZWFkZXJzICovLAor
CQkJCTZBRDJDQjREMTlCOTE0MDEwMDA2NTcxOSAvKiBEZWJ1Z2dlckV2YWxFbmFibGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNDlGRTRBQzE5QUFDODYxMDBGNDBDRTkgLyogZ2VuZXJhdGVfcHJv
dG9jb2xfdHlwZXNfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKIAkJCQk2NThEM0E1
NjE5NjM4MjY4MDAzQzQ1RDYgLyogVk1FbnRyeVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkFEMkVERkIxOTc5OUUzODAwNEQ2NDc4IC8qIEVudW1lcmF0aW9uTW9kZS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJD
YWxsRnJhbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2Fs
bEZyYW1lLmNwcAppbmRleCA3NDEyYTczNDI1NzFhNjA4OTY5ZmViZDlmNjljYTFiOTY0NzZkYTc3
Li5lNjJlYTA3Nzk2ZGEzZWE5ZmJiMzk3ZTE1ODdmYzUyY2I4OTE3NzYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEZWJ1Z2dlckNhbGxGcmFtZS5oIgogCiAjaW5jbHVk
ZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiRGVidWdnZXJFdmFsRW5hYmxlci5oIgogI2luY2x1
ZGUgIkRlYnVnZ2VyU2NvcGUuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUg
IkpTQWN0aXZhdGlvbi5oIgpAQCAtMTg2LDYgKzE4Nyw3IEBAIEpTVmFsdWUgRGVidWdnZXJDYWxs
RnJhbWU6OmV2YWx1YXRlKGNvbnN0IFN0cmluZyYgc2NyaXB0LCBKU1ZhbHVlJiBleGNlcHRpb24p
CiAgICAgaWYgKCFjYWxsRnJhbWUtPmNvZGVCbG9jaygpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZSgpOwogICAgIAorICAgIERlYnVnZ2VyRXZhbEVuYWJsZXIgZXZhbEVuYWJsZXIoY2FsbEZyYW1l
KTsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7CiAgICAgRXZhbEV4ZWN1dGFibGUqIGV2
YWwgPSBFdmFsRXhlY3V0YWJsZTo6Y3JlYXRlKGNhbGxGcmFtZSwgbWFrZVNvdXJjZShzY3JpcHQp
LCBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKSk7CiAgICAgaWYgKHZtLmV4
Y2VwdGlvbigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXJFdmFsRW5hYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyRXZhbEVuYWJsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDdlNmE1NGE3ZTJiZWRhYWZlMmZjNDY0
NjIxMzc0YzhjYjE0NjJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyRXZhbEVuYWJsZXIuaApAQCAtMCwwICsxLDYxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEZWJ1Z2dlckV2
YWxFbmFibGVyX2gKKyNkZWZpbmUgRGVidWdnZXJFdmFsRW5hYmxlcl9oCisKKyNpbmNsdWRlICJD
YWxsRnJhbWUuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorCituYW1lc3BhY2UgSlND
IHsKKworY2xhc3MgRGVidWdnZXJFdmFsRW5hYmxlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQg
RGVidWdnZXJFdmFsRW5hYmxlcihjb25zdCBFeGVjU3RhdGUqIGV4ZWMpCisgICAgICAgIDogbV9n
bG9iYWxPYmplY3QobnVsbHB0cikKKyAgICAgICAgLCBtX2V2YWxFbmFibGVkKGZhbHNlKQorICAg
IHsKKyAgICAgICAgaWYgKGV4ZWMpIHsKKyAgICAgICAgICAgIG1fZ2xvYmFsT2JqZWN0ID0gZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOworICAgICAgICAgICAgbV9ldmFsRW5hYmxlZCA9IG1f
Z2xvYmFsT2JqZWN0LT5ldmFsRW5hYmxlZCgpOworICAgICAgICB9CisgICAgICAgIGlmIChtX2ds
b2JhbE9iamVjdCAmJiAhbV9ldmFsRW5hYmxlZCkKKyAgICAgICAgICAgIG1fZ2xvYmFsT2JqZWN0
LT5zZXRFdmFsRW5hYmxlZCh0cnVlLCBtX2dsb2JhbE9iamVjdC0+ZXZhbERpc2FibGVkRXJyb3JN
ZXNzYWdlKCkpOworICAgIH0KKworICAgIH5EZWJ1Z2dlckV2YWxFbmFibGVyKCkKKyAgICB7Cisg
ICAgICAgIGlmIChtX2dsb2JhbE9iamVjdCAmJiAhbV9ldmFsRW5hYmxlZCkKKyAgICAgICAgICAg
IG1fZ2xvYmFsT2JqZWN0LT5zZXRFdmFsRW5hYmxlZChmYWxzZSwgbV9nbG9iYWxPYmplY3QtPmV2
YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgSlNHbG9i
YWxPYmplY3QqIG1fZ2xvYmFsT2JqZWN0OworICAgIGJvb2wgbV9ldmFsRW5hYmxlZDsKK307CisK
K30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRGVidWdnZXJFdmFsRW5hYmxlcl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
QmFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
QmFzZS5jcHAKaW5kZXggODU2OWE0Yjc4MTI3NjY2MmZhMGQwY2VkOTFkZWUxZDI4NTdhMGZiOC4u
Y2JhZTRjMjJiZjdhZjFiM2NhNzBhNjMyYjliOGE5MDBmMDlhODBlNyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcApA
QCAtMzQsNiArMzQsNyBAQAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAorI2luY2x1ZGUgIkRl
YnVnZ2VyRXZhbEVuYWJsZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNs
dWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKQEAgLTgxLDE5
ICs4Miw5IEBAIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIEluamVjdGVkU2NyaXB0QmFzZTo6Y2Fs
bEZ1bmN0aW9uV2l0aEV2YWxFbmFibGVkKERlcHJlY2F0CiAgICAgICAgIG1fZW52aXJvbm1lbnQt
PndpbGxDYWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlvbihtX2luamVjdGVkU2NyaXB0T2JqZWN0LnNj
cmlwdFN0YXRlKCksIG5hbWUoKSwgMSk7CiAKICAgICBKU0M6OkV4ZWNTdGF0ZSogc2NyaXB0U3Rh
dGUgPSBtX2luamVjdGVkU2NyaXB0T2JqZWN0LnNjcmlwdFN0YXRlKCk7Ci0gICAgYm9vbCBldmFs
SXNEaXNhYmxlZCA9IGZhbHNlOwotICAgIGlmIChzY3JpcHRTdGF0ZSkgewotICAgICAgICBldmFs
SXNEaXNhYmxlZCA9ICFzY3JpcHRTdGF0ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5ldmFsRW5h
YmxlZCgpOwotICAgICAgICAvLyBUZW1wb3JhcmlseSBlbmFibGUgYWxsb3cgZXZhbHMgZm9yIGlu
c3BlY3Rvci4KLSAgICAgICAgaWYgKGV2YWxJc0Rpc2FibGVkKQotICAgICAgICAgICAgc2NyaXB0
U3RhdGUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+c2V0RXZhbEVuYWJsZWQodHJ1ZSk7Ci0gICAg
fQotCisgICAgSlNDOjpEZWJ1Z2dlckV2YWxFbmFibGVyIGV2YWxFbmFibGVyKHNjcmlwdFN0YXRl
KTsKICAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSByZXN1bHRWYWx1ZSA9IGZ1bmN0aW9uLmNh
bGwoaGFkRXhjZXB0aW9uKTsKIAotICAgIGlmIChldmFsSXNEaXNhYmxlZCkKLSAgICAgICAgc2Ny
aXB0U3RhdGUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+c2V0RXZhbEVuYWJsZWQoZmFsc2UpOwot
CiAgICAgaWYgKG1fZW52aXJvbm1lbnQpCiAgICAgICAgIG1fZW52aXJvbm1lbnQtPmRpZENhbGxJ
bmplY3RlZFNjcmlwdEZ1bmN0aW9uKG1faW5qZWN0ZWRTY3JpcHRPYmplY3Quc2NyaXB0U3RhdGUo
KSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBlNGY5ZWVjNjZiNjFhYjgzNzc0ZjQxMTY1MDVkOTA1NGU3OGY3M2ExLi41
MTM4Zjk1ZWQyYzE2OGFjOTYyNzJlMzY1Mzk1YzM1YjNmMGFjNmI4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTQtMDktMDQgIE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGJyZWFrcG9pbnQgYWN0aW9ucyBzaG91bGQgd29yayByZWdh
cmRsZXNzIG9mIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0IGZvciAiRXZhbHVhdGUgSmF2YVNj
cmlwdCIgYnJlYWtwb2ludCBhY3Rpb25zIGZvciBicmVha3BvaW50cyBzZXQgb24KKyAgICAgICAg
cGFnZXMgd2l0aCBhIENTUCB0aGF0IGRvZXMgbm90IGFsbG93ICd1bnNhZmUtZXZhbCcuCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZXZhbC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFj
dGlvbi1ldmFsLmh0bWw6IEFkZGVkLgorCiAyMDE0LTA5LTAzICBCcmVudCBGdWxnaGFtICA8YmZ1
bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5dIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5p
bmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2lu
dC1hY3Rpb24tZXZhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWtwb2ludC1hY3Rpb24tZXZhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk4Mjlk
YWFmN2Q0NGIyYzk3MjFmZGJkZTJiMmE5ZjBjZDdkMjY2OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1ldmFsLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3RpbmcgdGhhdCAiRXZhbHVhdGUgSmF2YVNjcmlw
dCIgYnJlYWtwb2ludCBhY3Rpb25zIHdvcmsgY29ycmVjdGx5IGluIHRoZSBwcmVzZW5zZSBvZiBh
IENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IHRoYXQgZG9lc24ndCBpbmNsdWRlICd1bnNhZmUtZXZh
bCcuCisKK2luc2lkZSBicmVha3BvaW50QWN0aW9ucyBhOig0MikgYjooW29iamVjdCBPYmplY3Rd
KQorQnJlYWtwb2ludCBhY3Rpb24gZXZhbHVhdGVkLiBhOig0MikgYjooW29iamVjdCBPYmplY3Rd
KQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2lu
dC1hY3Rpb24tZXZhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
cG9pbnQtYWN0aW9uLWV2YWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDgzMjZiYjUwNjg0MTllOThhZGUw
YzRiMWNjZWI1ZTJlMDNjMDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWV2YWwuaHRtbApAQCAtMCwwICsxLDQ5IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVNlY3VyaXR5LVBvbGljeSIgY29udGVudD0ic2NyaXB0LXNyYyAnc2VsZicgJ3Vuc2FmZS1p
bmxpbmUnIj4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gcnVuQnJlYWtwb2ludEFjdGlvbnMoKQoreworICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7IGJyZWFrcG9pbnRBY3Rpb25zKDQyLCB7eDoyMjAsIHk6Mjg0fSk7IH0sIDApOwor
fQorCitmdW5jdGlvbiBhY3Rpb24oYSwgYikKK3sKKyAgICBJbnNwZWN0b3JUZXN0UHJveHkuYWRk
UmVzdWx0KCJCcmVha3BvaW50IGFjdGlvbiBldmFsdWF0ZWQuIGE6KCIgKyBhICsgIikgYjooIiAr
IGIgKyAiKSIpOworICAgIEluc3BlY3RvclRlc3RQcm94eS5jb21wbGV0ZVRlc3QoKTsKK30KKwor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgV2ViSW5zcGVjdG9yLkZyYW1lLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkZyYW1lLkV2ZW50Lk1haW5SZXNvdXJjZURpZENoYW5nZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCBmdW5j
dGlvbihldmVudCkgeworCisgICAgICAgICAgICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0
YS5zY3JpcHQ7CisKKyAgICAgICAgICAgIGlmICghL2JyZWFrcG9pbnRcLmpzJC8udGVzdChzY3Jp
cHRPYmplY3QudXJsKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHZh
ciBsb2NhdGlvbiA9IHNjcmlwdE9iamVjdC5jcmVhdGVTb3VyY2VDb2RlTG9jYXRpb24oNCwgMCk7
CisgICAgICAgICAgICAvLyBDcmVhdGUgdGhlIGJyZWFrcG9pbnQgYW5kIGl0cyBhY3Rpb25zIGJl
Zm9yZSBzZW5kaW5nIGFueXRoaW5nIHRvIHRoZSBiYWNrZW5kLgorICAgICAgICAgICAgdmFyIGJy
ZWFrcG9pbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQobG9jYXRpb24pOworICAgICAg
ICAgICAgYnJlYWtwb2ludC5hdXRvQ29udGludWUgPSB0cnVlOworICAgICAgICAgICAgYnJlYWtw
b2ludC5jcmVhdGVBY3Rpb24oV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRBY3Rpb24uVHlwZS5FdmFs
dWF0ZSwgbnVsbCwgImFjdGlvbihhLCBiKSIpOworCisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNYW5hZ2VyLmFkZEJyZWFrcG9pbnQoYnJlYWtwb2ludCk7CisKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInJ1bkJyZWFrcG9pbnRBY3Rpb25zKCkiKTsK
KyAgICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgp
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAg
PHA+VGVzdGluZyB0aGF0ICJFdmFsdWF0ZSBKYXZhU2NyaXB0IiBicmVha3BvaW50IGFjdGlvbnMg
d29yayBjb3JyZWN0bHkgaW4gdGhlIHByZXNlbnNlIG9mIGEgQ29udGVudCBTZWN1cml0eSBQb2xp
Y3kgdGhhdCBkb2Vzbid0IGluY2x1ZGUgJ3Vuc2FmZS1ldmFsJy48L3A+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237670</attachid>
            <date>2014-09-04 19:17:21 -0700</date>
            <delta_ts>2014-09-05 11:42:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136542-20140904191716.patch</filename>
            <type>text/plain</type>
            <size>16405</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczMjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NmRlZTY4OGVlZjIwODQxZjFjYzA5Zjg1NzgwM2Y3YjNmN2M3OTdhLi5jMDc4NDdlMDRhOWVhYTlh
NjkzNGNhNGE3ZWU0NjVjZTk5M2M4NzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNC0wOS0wNCAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYnJlYWtwb2ludCBhY3Rpb25zIHNob3VsZCB3b3Jr
IHJlZ2FyZGxlc3Mgb2YgQ29udGVudCBTZWN1cml0eSBQb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjU0MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEpTQzo6RGVidWdnZXJFdmFsRW5h
YmxlciwgYW4gUkFJSSBvYmplY3Qgd2hpY2ggZW5hYmxlcyBldmFsIG9uIGEgCisgICAgICAgIEpT
R2xvYmFsT2JqZWN0IGZvciB0aGUgZHVyYXRpb24gb2YgYSBzY29wZSwgcmV0dXJuaW5nIHRoZSBl
dmFsIGVuYWJsZWQgc3RhdGUgdG8gaXRzCisgICAgICAgIG9yaWdpbmFsIHZhbHVlIHdoZW4gdGhl
IHNjb3BlIGV4aXRzLiBVc2VkIGJ5IEpTQzo6RGVidWdnZXJDYWxsRnJhbWU6OmV2YWx1YXRlIAor
ICAgICAgICB0byBhbGxvdyBicmVha3BvaW50IGFjdGlvbnMgdG8gZXhlY3V0ZSBKUyBpbiBwYWdl
cyB3aXRoIGEgQ29udGVudCBTZWN1cml0eSBQb2xpY3kKKyAgICAgICAgdGhhdCB3b3VsZCBub3Jt
YWxseSBwcm9oaWJpdCB0aGlzIChzdWNoIGFzIEluc3BlY3RvcidzIE1haW4uaHRtbCkuCisKKyAg
ICAgICAgUmVmYWN0b3JlZCBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0QmFzZSB0byB1c2UgdGhl
IFJBSUkgb2JqZWN0IGluc3RlYWQgb2YgbWFudWFsbHkKKyAgICAgICAgc2V0dGluZyBldmFsIGVu
YWJsZWQgYW5kIHRoZW4gcmVzZXR0aW5nIHRoZSBvcmlnaW5hbCBldmFsIGVuYWJsZWQgc3RhdGUu
CisKKyAgICAgICAgTk9URTogVGhlIEpTOjpEZWJ1Z2dlckV2YWxFbmFibGVyIGNvbnN0cnVjdG9y
IGNoZWNrcyB0aGUgcGFzc2VkIGluIEV4ZWNTdGF0ZSBwb2ludGVyCisgICAgICAgIGZvciBudWxs
IHRvIGJlIGVxdWl2YWxlbnQgd2l0aCB0aGUgb3JpZ2luYWwgY29kZSBpbiBJbnNwZWN0b3I6Oklu
amVjdGVkU2NyaXB0QmFzZS4KKyAgICAgICAgSW5qZWN0ZWRTY3JpcHRCYXNlIGlzIGdldHRpbmcg
dGhlIEV4ZWNTdGF0ZSBmcm9tIFNjcmlwdE9iamVjdDo6c2NyaXB0U3RhdGUoKSwgd2hpY2gKKyAg
ICAgICAgY2FuIGN1cnJlbnRseSBiZSBudWxsLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
dmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZGVidWdnZXIv
RGVidWdnZXJDYWxsRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZTo6
ZXZhbHVhdGUpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyRXZhbEVuYWJsZXIuaDogQWRk
ZWQuCisgICAgICAgIChKU0M6OkRlYnVnZ2VyRXZhbEVuYWJsZXI6OkRlYnVnZ2VyRXZhbEVuYWJs
ZXIpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckV2YWxFbmFibGVyOjp+RGVidWdnZXJFdmFsRW5h
Ymxlcik6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHA6CisgICAg
ICAgIChJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0QmFzZTo6Y2FsbEZ1bmN0aW9uV2l0aEV2YWxF
bmFibGVkKToKKwogMjAxNC0wOS0wMyAgQWtvcyBLaXNzICA8YWtpc3NAaW5mLnUtc3plZ2VkLmh1
PgogCiAgICAgICAgIERvbid0IGdlbmVyYXRlIHN1cGVyZmx1b3VzIG1vdiBpbnN0cnVjdGlvbnMg
Zm9yIG1vdmUgaW1tZWRpYXRlIG9uIEFSTTY0LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvaiBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2oKaW5kZXggMjU5ZWZiNGFhZWUzYzM1MzRlNDUwMDA2NjZiMGUzOTc3NTMwMmMyZS4u
NTU5MjZiODkyZGM3ZDM2ZDVhOGRhNzMwM2YxOGZmYjI4MTQ0NDUwMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCkBAIC05NzMsNiArOTczLDcgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGRlYnVnZ2VyXEJyZWFrcG9pbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRlYnVnZ2VyXERlYnVnZ2VyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxkZWJ1Z2dlclxEZWJ1Z2dlckNhbGxGcmFtZS5oIiAvPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZGVidWdnZXJcRGVidWdnZXJFdmFsRW5hYmxlci5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZGVidWdnZXJcRGVidWdnZXJQcmltaXRpdmVzLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZWJ1Z2dlclxEZWJ1Z2dlclNjb3BlLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHQWJzdHJhY3RIZWFwLmgiIC8+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggZjI1ODk2
ODYxM2Q2MDVjMzIzMzI1N2VhMjFjZWM1N2EwYTA5NTA2Yy4uN2MxYTJiMWM4MzY4MGFiYWM4Nzc4
YjJjOGU3ZTY2NzA1MjgwOTliNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMTk1OCw2ICsxOTU4LDkgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRlYnVnZ2VyXERlYnVnZ2VyQ2FsbEZyYW1lLmgiPgogICAgICAgPEZpbHRl
cj5kZWJ1Z2dlcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZGVidWdnZXJcRGVidWdnZXJFdmFsRW5hYmxlci5oIj4KKyAgICAgIDxGaWx0ZXI+
ZGVidWdnZXI8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGRlYnVnZ2VyXERlYnVnZ2VyUHJpbWl0aXZlcy5oIj4KICAgICAgIDxGaWx0ZXI+ZGVi
dWdnZXI8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNWRhODE1ZDk1MmMxMmUxNTI0YjkzZGE0ZWVlNTFmMjgxY2RiMDY5OC4uODU2ZDBl
NWMwMDUyODI0NjI1OTA5NjY1M2VjYTlkOGQwMmZlZDg5YyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTExNzEsNiArMTE3MSw3IEBACiAJCTY1QzAyODVDMTcxNzk2NjgwMDM1MUUz
NSAvKiBBUk12N0RPcGNvZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNjVDMDI4NUExNzE3OTY2ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5jcHAg
Ki87IH07CiAJCTY1QzAyODVEMTcxNzk2NjgwMDM1MUUzNSAvKiBBUk12N0RPcGNvZGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1QzAyODVCMTcxNzk2
NjgwMDM1MUUzNSAvKiBBUk12N0RPcGNvZGUuaCAqLzsgfTsKIAkJNjVGQjUxMTcxODRFRUU3MDAw
QzEyQjcwIC8qIFByb3RvQ2FsbEZyYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDY1RkI1MTE2MTg0RUU5QkMwMEMxMkI3MCAvKiBQcm90b0NhbGxG
cmFtZS5jcHAgKi87IH07CisJCTZBRDJDQjREMTlCOTE0MDEwMDA2NTcxOSAvKiBEZWJ1Z2dlckV2
YWxFbmFibGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2QUQyQ0I0QzE5QjkxNDAxMDAwNjU3MTkgLyogRGVidWdnZXJFdmFsRW5hYmxlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMDA4Q0QyMTg2
RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21pc2VGdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMDhDRDAxODZGOEE5MzAwOTU1QzI0IC8q
IEpTUHJvbWlzZUZ1bmN0aW9ucy5jcHAgKi87IH07CiAJCTdDMDA4Q0QzMTg2RjhBOTMwMDk1NUMy
NCAvKiBKU1Byb21pc2VGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDMDA4Q0QxMTg2RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21pc2VGdW5j
dGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QzAwOENEQTE4NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMDhDRDgxODcxMjRC
QjAwOTU1QzI0IC8qIEpTUHJvbWlzZURlZmVycmVkLmNwcCAqLzsgfTsKQEAgLTI4MDgsNiArMjgw
OSw3IEBACiAJCTY1RUE3MzYzMEJBRTM1RDEwMDFCQjU2MCAvKiBDb21tb25JZGVudGlmaWVycy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tbW9uSWRlbnRpZmllcnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjVGQjUxMTUxODRFRThGODAwQzEyQjcwIC8q
IFByb3RvQ2FsbEZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb3Rv
Q2FsbEZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1RkI1MTE2MTg0RUU5
QkMwMEMxMkI3MCAvKiBQcm90b0NhbGxGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQcm90b0NhbGxGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTZBRDJDQjRDMTlCOTE0MDEwMDA2NTcxOSAvKiBEZWJ1Z2dlckV2YWxFbmFibGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlYnVnZ2VyRXZhbEVuYWJsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzA0RkQzNTMwNTY5N0U2RDAwM0RCRUQ5IC8q
IEJvb2xlYW5PYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQm9vbGVhbk9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IH07CiAJCTdDMDA4Q0QwMTg2RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21pc2VGdW5j
dGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBsaW5lRW5kaW5nID0gMDsg
cGF0aCA9IEpTUHJvbWlzZUZ1bmN0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhj
TGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcuY3BwOyB9OwogCQk3
QzAwOENEMTE4NkY4QTkzMDA5NTVDMjQgLyogSlNQcm9taXNlRnVuY3Rpb25zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUHJvbWlzZUZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNDIxMyw2ICs0MjE1LDcgQEAKIAkJCQlGNjkyQTg1OTAyNTU1
OTdEMDFGRjYwRjcgLyogRGVidWdnZXIuaCAqLywKIAkJCQkxNDk1NTlFRDBERENEREY3MDA2NDgw
ODcgLyogRGVidWdnZXJDYWxsRnJhbWUuY3BwICovLAogCQkJCTE0ODBEQjlCMEREQzIyN0YwMDND
RkRGMiAvKiBEZWJ1Z2dlckNhbGxGcmFtZS5oICovLAorCQkJCTZBRDJDQjRDMTlCOTE0MDEwMDA2
NTcxOSAvKiBEZWJ1Z2dlckV2YWxFbmFibGVyLmggKi8sCiAJCQkJRkVBMDg2MUYxODJCN0EwNDAw
RjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oICovLAogCQkJCTBGMkQ0RERCMTk4MzJEMzQw
MDdENEIxOSAvKiBEZWJ1Z2dlclNjb3BlLmNwcCAqLywKIAkJCQkwRjJENEREQzE5ODMyRDM0MDA3
RDRCMTkgLyogRGVidWdnZXJTY29wZS5oICovLApAQCAtNTc0OCw2ICs1NzUxLDcgQEAKIAkJCQlB
MUEwMDlDMTE4MzFBMjZFMDBDRjg3MTEgLyogQVJNNjRBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg2RDNCMkM0MTAxNTZCREUwMDI4NjVFNyAvKiBBUk1Bc3NlbWJsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUM0OUZFNEFCMTlBQUM4NjEwMEY0MENFOSAvKiBnZW5lcmF0ZV9wcm90b2Nv
bF90eXBlc19oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKKwkJCQk2QUQyQ0I0RDE5QjkxNDAxMDAw
NjU3MTkgLyogRGVidWdnZXJFdmFsRW5hYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzQ5RkU0
QUMxOUFBQzg2MTAwRjQwQ0U5IC8qIGdlbmVyYXRlX3Byb3RvY29sX3R5cGVzX2ltcGxlbWVudGF0
aW9uLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJNjU4RDNBNTYxOTYzODI2ODAwM0M0NUQ2IC8qIFZN
RW50cnlSZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBRDJFREZCMTk3OTlFMzgwMDRENjQ3
OCAvKiBFbnVtZXJhdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAKaW5kZXggNzQxMmE3
MzQyNTcxYTYwODk2OWZlYmQ5ZjY5Y2ExYjk2NDc2ZGE3Ny4uZTYyZWEwNzc5NmRhM2VhOWZiYjM5
N2UxNTg3ZmM1MmNiODkxNzc2MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiRGVidWdnZXJDYWxsRnJhbWUuaCIKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1
ZGUgIkRlYnVnZ2VyRXZhbEVuYWJsZXIuaCIKICNpbmNsdWRlICJEZWJ1Z2dlclNjb3BlLmgiCiAj
aW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKQEAgLTE4
Niw2ICsxODcsNyBAQCBKU1ZhbHVlIERlYnVnZ2VyQ2FsbEZyYW1lOjpldmFsdWF0ZShjb25zdCBT
dHJpbmcmIHNjcmlwdCwgSlNWYWx1ZSYgZXhjZXB0aW9uKQogICAgIGlmICghY2FsbEZyYW1lLT5j
b2RlQmxvY2soKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICAKKyAgICBEZWJ1Z2dl
ckV2YWxFbmFibGVyIGV2YWxFbmFibGVyKGNhbGxGcmFtZSk7CiAgICAgVk0mIHZtID0gY2FsbEZy
YW1lLT52bSgpOwogICAgIEV2YWxFeGVjdXRhYmxlKiBldmFsID0gRXZhbEV4ZWN1dGFibGU6OmNy
ZWF0ZShjYWxsRnJhbWUsIG1ha2VTb3VyY2Uoc2NyaXB0KSwgY2FsbEZyYW1lLT5jb2RlQmxvY2so
KS0+aXNTdHJpY3RNb2RlKCkpOwogICAgIGlmICh2bS5leGNlcHRpb24oKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyRXZhbEVuYWJsZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckV2YWxFbmFibGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWYxMDkwMzJjZjFlNmY2OTMzZDlhODgwZDA4Nzg4ZWE4MzVjOGE3NAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckV2YWxF
bmFibGVyLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgRGVidWdnZXJFdmFsRW5hYmxlcl9oCisjZGVmaW5lIERl
YnVnZ2VyRXZhbEVuYWJsZXJfaAorCisjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCisjaW5jbHVkZSAi
SlNHbG9iYWxPYmplY3QuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIERlYnVnZ2VyRXZh
bEVuYWJsZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IERlYnVnZ2VyRXZhbEVuYWJsZXIoY29u
c3QgRXhlY1N0YXRlKiBleGVjKQorICAgICAgICA6IG1fZXhlYyhleGVjKQorICAgICAgICAsIG1f
ZXZhbFdhc0Rpc2FibGVkKGZhbHNlKQorICAgIHsKKyAgICAgICAgaWYgKGV4ZWMpIHsKKyAgICAg
ICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCk7CisgICAgICAgICAgICBtX2V2YWxXYXNEaXNhYmxlZCA9ICFnbG9iYWxPYmplY3Qt
PmV2YWxFbmFibGVkKCk7CisgICAgICAgICAgICBpZiAobV9ldmFsV2FzRGlzYWJsZWQpCisgICAg
ICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRFdmFsRW5hYmxlZCh0cnVlLCBnbG9iYWxPYmpl
Y3QtPmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IH5EZWJ1Z2dlckV2YWxFbmFibGVyKCkKKyAgICB7CisgICAgICAgIGlmIChtX2V2YWxXYXNEaXNh
YmxlZCkgeworICAgICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOworICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRF
dmFsRW5hYmxlZChmYWxzZSwgZ2xvYmFsT2JqZWN0LT5ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2Uo
KSk7CisgICAgICAgIH0KKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgRXhlY1N0YXRlKiBt
X2V4ZWM7CisgICAgYm9vbCBtX2V2YWxXYXNEaXNhYmxlZDsKK307CisKK30gLy8gbmFtZXNwYWNl
IEpTQworCisjZW5kaWYgLy8gRGVidWdnZXJFdmFsRW5hYmxlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAKaW5kZXgg
ODU2OWE0Yjc4MTI3NjY2MmZhMGQwY2VkOTFkZWUxZDI4NTdhMGZiOC4uY2JhZTRjMjJiZjdhZjFi
M2NhNzBhNjMyYjliOGE5MDBmMDlhODBlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcApAQCAtMzQsNiArMzQsNyBA
QAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAorI2luY2x1ZGUgIkRlYnVnZ2VyRXZhbEVuYWJs
ZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKQEAgLTgxLDE5ICs4Miw5IEBAIERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlIEluamVjdGVkU2NyaXB0QmFzZTo6Y2FsbEZ1bmN0aW9uV2l0aEV2
YWxFbmFibGVkKERlcHJlY2F0CiAgICAgICAgIG1fZW52aXJvbm1lbnQtPndpbGxDYWxsSW5qZWN0
ZWRTY3JpcHRGdW5jdGlvbihtX2luamVjdGVkU2NyaXB0T2JqZWN0LnNjcmlwdFN0YXRlKCksIG5h
bWUoKSwgMSk7CiAKICAgICBKU0M6OkV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUgPSBtX2luamVjdGVk
U2NyaXB0T2JqZWN0LnNjcmlwdFN0YXRlKCk7Ci0gICAgYm9vbCBldmFsSXNEaXNhYmxlZCA9IGZh
bHNlOwotICAgIGlmIChzY3JpcHRTdGF0ZSkgewotICAgICAgICBldmFsSXNEaXNhYmxlZCA9ICFz
Y3JpcHRTdGF0ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5ldmFsRW5hYmxlZCgpOwotICAgICAg
ICAvLyBUZW1wb3JhcmlseSBlbmFibGUgYWxsb3cgZXZhbHMgZm9yIGluc3BlY3Rvci4KLSAgICAg
ICAgaWYgKGV2YWxJc0Rpc2FibGVkKQotICAgICAgICAgICAgc2NyaXB0U3RhdGUtPmxleGljYWxH
bG9iYWxPYmplY3QoKS0+c2V0RXZhbEVuYWJsZWQodHJ1ZSk7Ci0gICAgfQotCisgICAgSlNDOjpE
ZWJ1Z2dlckV2YWxFbmFibGVyIGV2YWxFbmFibGVyKHNjcmlwdFN0YXRlKTsKICAgICBEZXByZWNh
dGVkOjpTY3JpcHRWYWx1ZSByZXN1bHRWYWx1ZSA9IGZ1bmN0aW9uLmNhbGwoaGFkRXhjZXB0aW9u
KTsKIAotICAgIGlmIChldmFsSXNEaXNhYmxlZCkKLSAgICAgICAgc2NyaXB0U3RhdGUtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+c2V0RXZhbEVuYWJsZWQoZmFsc2UpOwotCiAgICAgaWYgKG1fZW52
aXJvbm1lbnQpCiAgICAgICAgIG1fZW52aXJvbm1lbnQtPmRpZENhbGxJbmplY3RlZFNjcmlwdEZ1
bmN0aW9uKG1faW5qZWN0ZWRTY3JpcHRPYmplY3Quc2NyaXB0U3RhdGUoKSk7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBl
NGY5ZWVjNjZiNjFhYjgzNzc0ZjQxMTY1MDVkOTA1NGU3OGY3M2ExLi41MTM4Zjk1ZWQyYzE2OGFj
OTYyNzJlMzY1Mzk1YzM1YjNmMGFjNmI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDkt
MDQgIE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGJyZWFrcG9pbnQgYWN0aW9ucyBzaG91bGQgd29yayByZWdhcmRsZXNzIG9mIENvbnRl
bnQgU2VjdXJpdHkgUG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzY1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCB0ZXN0IGZvciAiRXZhbHVhdGUgSmF2YVNjcmlwdCIgYnJlYWtwb2lu
dCBhY3Rpb25zIGZvciBicmVha3BvaW50cyBzZXQgb24KKyAgICAgICAgcGFnZXMgd2l0aCBhIENT
UCB0aGF0IGRvZXMgbm90IGFsbG93ICd1bnNhZmUtZXZhbCcuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZXZhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1ldmFsLmh0bWw6
IEFkZGVkLgorCiAyMDE0LTA5LTAzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIFtXaW5dIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZXZhbC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1h
Y3Rpb24tZXZhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk4MjlkYWFmN2Q0NGIyYzk3MjFm
ZGJkZTJiMmE5ZjBjZDdkMjY2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1ldmFsLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUgQEAKK1Rlc3RpbmcgdGhhdCAiRXZhbHVhdGUgSmF2YVNjcmlwdCIgYnJlYWtwb2ludCBh
Y3Rpb25zIHdvcmsgY29ycmVjdGx5IGluIHRoZSBwcmVzZW5zZSBvZiBhIENvbnRlbnQgU2VjdXJp
dHkgUG9saWN5IHRoYXQgZG9lc24ndCBpbmNsdWRlICd1bnNhZmUtZXZhbCcuCisKK2luc2lkZSBi
cmVha3BvaW50QWN0aW9ucyBhOig0MikgYjooW29iamVjdCBPYmplY3RdKQorQnJlYWtwb2ludCBh
Y3Rpb24gZXZhbHVhdGVkLiBhOig0MikgYjooW29iamVjdCBPYmplY3RdKQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZXZhbC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWV2
YWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41NDgzMjZiYjUwNjg0MTllOThhZGUwYzRiMWNjZWI1ZTJlMDNj
MDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrcG9pbnQtYWN0aW9uLWV2YWwuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVNlY3VyaXR5LVBv
bGljeSIgY29udGVudD0ic2NyaXB0LXNyYyAnc2VsZicgJ3Vuc2FmZS1pbmxpbmUnIj4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9y
ZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVu
QnJlYWtwb2ludEFjdGlvbnMoKQoreworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGJyZWFr
cG9pbnRBY3Rpb25zKDQyLCB7eDoyMjAsIHk6Mjg0fSk7IH0sIDApOworfQorCitmdW5jdGlvbiBh
Y3Rpb24oYSwgYikKK3sKKyAgICBJbnNwZWN0b3JUZXN0UHJveHkuYWRkUmVzdWx0KCJCcmVha3Bv
aW50IGFjdGlvbiBldmFsdWF0ZWQuIGE6KCIgKyBhICsgIikgYjooIiArIGIgKyAiKSIpOworICAg
IEluc3BlY3RvclRlc3RQcm94eS5jb21wbGV0ZVRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgV2ViSW5zcGVjdG9yLkZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkZyYW1lLkV2ZW50Lk1haW5SZXNvdXJjZURpZENoYW5nZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCBmdW5jdGlvbihldmVudCkgewor
CisgICAgICAgICAgICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7CisKKyAg
ICAgICAgICAgIGlmICghL2JyZWFrcG9pbnRcLmpzJC8udGVzdChzY3JpcHRPYmplY3QudXJsKSkK
KyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IHNj
cmlwdE9iamVjdC5jcmVhdGVTb3VyY2VDb2RlTG9jYXRpb24oNCwgMCk7CisgICAgICAgICAgICAv
LyBDcmVhdGUgdGhlIGJyZWFrcG9pbnQgYW5kIGl0cyBhY3Rpb25zIGJlZm9yZSBzZW5kaW5nIGFu
eXRoaW5nIHRvIHRoZSBiYWNrZW5kLgorICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBuZXcg
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQobG9jYXRpb24pOworICAgICAgICAgICAgYnJlYWtwb2lu
dC5hdXRvQ29udGludWUgPSB0cnVlOworICAgICAgICAgICAgYnJlYWtwb2ludC5jcmVhdGVBY3Rp
b24oV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRBY3Rpb24uVHlwZS5FdmFsdWF0ZSwgbnVsbCwgImFj
dGlvbihhLCBiKSIpOworCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2Vy
LmFkZEJyZWFrcG9pbnQoYnJlYWtwb2ludCk7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoInJ1bkJyZWFrcG9pbnRBY3Rpb25zKCkiKTsKKyAgICAgICAgICB9KTsK
KyAgICB9KTsKKworICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdGluZyB0aGF0
ICJFdmFsdWF0ZSBKYXZhU2NyaXB0IiBicmVha3BvaW50IGFjdGlvbnMgd29yayBjb3JyZWN0bHkg
aW4gdGhlIHByZXNlbnNlIG9mIGEgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgdGhhdCBkb2Vzbid0
IGluY2x1ZGUgJ3Vuc2FmZS1ldmFsJy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237702</attachid>
            <date>2014-09-05 11:42:55 -0700</date>
            <delta_ts>2014-09-05 12:16:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136542-20140905114249.patch</filename>
            <type>text/plain</type>
            <size>16242</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczMjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NmRlZTY4OGVlZjIwODQxZjFjYzA5Zjg1NzgwM2Y3YjNmN2M3OTdhLi5jMDc4NDdlMDRhOWVhYTlh
NjkzNGNhNGE3ZWU0NjVjZTk5M2M4NzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNC0wOS0wNCAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYnJlYWtwb2ludCBhY3Rpb25zIHNob3VsZCB3b3Jr
IHJlZ2FyZGxlc3Mgb2YgQ29udGVudCBTZWN1cml0eSBQb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjU0MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEpTQzo6RGVidWdnZXJFdmFsRW5h
YmxlciwgYW4gUkFJSSBvYmplY3Qgd2hpY2ggZW5hYmxlcyBldmFsIG9uIGEgCisgICAgICAgIEpT
R2xvYmFsT2JqZWN0IGZvciB0aGUgZHVyYXRpb24gb2YgYSBzY29wZSwgcmV0dXJuaW5nIHRoZSBl
dmFsIGVuYWJsZWQgc3RhdGUgdG8gaXRzCisgICAgICAgIG9yaWdpbmFsIHZhbHVlIHdoZW4gdGhl
IHNjb3BlIGV4aXRzLiBVc2VkIGJ5IEpTQzo6RGVidWdnZXJDYWxsRnJhbWU6OmV2YWx1YXRlIAor
ICAgICAgICB0byBhbGxvdyBicmVha3BvaW50IGFjdGlvbnMgdG8gZXhlY3V0ZSBKUyBpbiBwYWdl
cyB3aXRoIGEgQ29udGVudCBTZWN1cml0eSBQb2xpY3kKKyAgICAgICAgdGhhdCB3b3VsZCBub3Jt
YWxseSBwcm9oaWJpdCB0aGlzIChzdWNoIGFzIEluc3BlY3RvcidzIE1haW4uaHRtbCkuCisKKyAg
ICAgICAgUmVmYWN0b3JlZCBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0QmFzZSB0byB1c2UgdGhl
IFJBSUkgb2JqZWN0IGluc3RlYWQgb2YgbWFudWFsbHkKKyAgICAgICAgc2V0dGluZyBldmFsIGVu
YWJsZWQgYW5kIHRoZW4gcmVzZXR0aW5nIHRoZSBvcmlnaW5hbCBldmFsIGVuYWJsZWQgc3RhdGUu
CisKKyAgICAgICAgTk9URTogVGhlIEpTOjpEZWJ1Z2dlckV2YWxFbmFibGVyIGNvbnN0cnVjdG9y
IGNoZWNrcyB0aGUgcGFzc2VkIGluIEV4ZWNTdGF0ZSBwb2ludGVyCisgICAgICAgIGZvciBudWxs
IHRvIGJlIGVxdWl2YWxlbnQgd2l0aCB0aGUgb3JpZ2luYWwgY29kZSBpbiBJbnNwZWN0b3I6Oklu
amVjdGVkU2NyaXB0QmFzZS4KKyAgICAgICAgSW5qZWN0ZWRTY3JpcHRCYXNlIGlzIGdldHRpbmcg
dGhlIEV4ZWNTdGF0ZSBmcm9tIFNjcmlwdE9iamVjdDo6c2NyaXB0U3RhdGUoKSwgd2hpY2gKKyAg
ICAgICAgY2FuIGN1cnJlbnRseSBiZSBudWxsLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
dmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZGVidWdnZXIv
RGVidWdnZXJDYWxsRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZTo6
ZXZhbHVhdGUpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyRXZhbEVuYWJsZXIuaDogQWRk
ZWQuCisgICAgICAgIChKU0M6OkRlYnVnZ2VyRXZhbEVuYWJsZXI6OkRlYnVnZ2VyRXZhbEVuYWJs
ZXIpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckV2YWxFbmFibGVyOjp+RGVidWdnZXJFdmFsRW5h
Ymxlcik6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHA6CisgICAg
ICAgIChJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0QmFzZTo6Y2FsbEZ1bmN0aW9uV2l0aEV2YWxF
bmFibGVkKToKKwogMjAxNC0wOS0wMyAgQWtvcyBLaXNzICA8YWtpc3NAaW5mLnUtc3plZ2VkLmh1
PgogCiAgICAgICAgIERvbid0IGdlbmVyYXRlIHN1cGVyZmx1b3VzIG1vdiBpbnN0cnVjdGlvbnMg
Zm9yIG1vdmUgaW1tZWRpYXRlIG9uIEFSTTY0LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvaiBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2oKaW5kZXggMjU5ZWZiNGFhZWUzYzM1MzRlNDUwMDA2NjZiMGUzOTc3NTMwMmMyZS4u
NTU5MjZiODkyZGM3ZDM2ZDVhOGRhNzMwM2YxOGZmYjI4MTQ0NDUwMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCkBAIC05NzMsNiArOTczLDcgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGRlYnVnZ2VyXEJyZWFrcG9pbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRlYnVnZ2VyXERlYnVnZ2VyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxkZWJ1Z2dlclxEZWJ1Z2dlckNhbGxGcmFtZS5oIiAvPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZGVidWdnZXJcRGVidWdnZXJFdmFsRW5hYmxlci5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZGVidWdnZXJcRGVidWdnZXJQcmltaXRpdmVzLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZWJ1Z2dlclxEZWJ1Z2dlclNjb3BlLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHQWJzdHJhY3RIZWFwLmgiIC8+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggZjI1ODk2
ODYxM2Q2MDVjMzIzMzI1N2VhMjFjZWM1N2EwYTA5NTA2Yy4uN2MxYTJiMWM4MzY4MGFiYWM4Nzc4
YjJjOGU3ZTY2NzA1MjgwOTliNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMTk1OCw2ICsxOTU4LDkgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRlYnVnZ2VyXERlYnVnZ2VyQ2FsbEZyYW1lLmgiPgogICAgICAgPEZpbHRl
cj5kZWJ1Z2dlcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZGVidWdnZXJcRGVidWdnZXJFdmFsRW5hYmxlci5oIj4KKyAgICAgIDxGaWx0ZXI+
ZGVidWdnZXI8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGRlYnVnZ2VyXERlYnVnZ2VyUHJpbWl0aXZlcy5oIj4KICAgICAgIDxGaWx0ZXI+ZGVi
dWdnZXI8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNWRhODE1ZDk1MmMxMmUxNTI0YjkzZGE0ZWVlNTFmMjgxY2RiMDY5OC4uODU2ZDBl
NWMwMDUyODI0NjI1OTA5NjY1M2VjYTlkOGQwMmZlZDg5YyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTExNzEsNiArMTE3MSw3IEBACiAJCTY1QzAyODVDMTcxNzk2NjgwMDM1MUUz
NSAvKiBBUk12N0RPcGNvZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNjVDMDI4NUExNzE3OTY2ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5jcHAg
Ki87IH07CiAJCTY1QzAyODVEMTcxNzk2NjgwMDM1MUUzNSAvKiBBUk12N0RPcGNvZGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1QzAyODVCMTcxNzk2
NjgwMDM1MUUzNSAvKiBBUk12N0RPcGNvZGUuaCAqLzsgfTsKIAkJNjVGQjUxMTcxODRFRUU3MDAw
QzEyQjcwIC8qIFByb3RvQ2FsbEZyYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDY1RkI1MTE2MTg0RUU5QkMwMEMxMkI3MCAvKiBQcm90b0NhbGxG
cmFtZS5jcHAgKi87IH07CisJCTZBRDJDQjREMTlCOTE0MDEwMDA2NTcxOSAvKiBEZWJ1Z2dlckV2
YWxFbmFibGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2QUQyQ0I0QzE5QjkxNDAxMDAwNjU3MTkgLyogRGVidWdnZXJFdmFsRW5hYmxlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMDA4Q0QyMTg2
RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21pc2VGdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMDhDRDAxODZGOEE5MzAwOTU1QzI0IC8q
IEpTUHJvbWlzZUZ1bmN0aW9ucy5jcHAgKi87IH07CiAJCTdDMDA4Q0QzMTg2RjhBOTMwMDk1NUMy
NCAvKiBKU1Byb21pc2VGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDMDA4Q0QxMTg2RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21pc2VGdW5j
dGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QzAwOENEQTE4NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMDhDRDgxODcxMjRC
QjAwOTU1QzI0IC8qIEpTUHJvbWlzZURlZmVycmVkLmNwcCAqLzsgfTsKQEAgLTI4MDgsNiArMjgw
OSw3IEBACiAJCTY1RUE3MzYzMEJBRTM1RDEwMDFCQjU2MCAvKiBDb21tb25JZGVudGlmaWVycy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tbW9uSWRlbnRpZmllcnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjVGQjUxMTUxODRFRThGODAwQzEyQjcwIC8q
IFByb3RvQ2FsbEZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb3Rv
Q2FsbEZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1RkI1MTE2MTg0RUU5
QkMwMEMxMkI3MCAvKiBQcm90b0NhbGxGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQcm90b0NhbGxGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTZBRDJDQjRDMTlCOTE0MDEwMDA2NTcxOSAvKiBEZWJ1Z2dlckV2YWxFbmFibGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlYnVnZ2VyRXZhbEVuYWJsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzA0RkQzNTMwNTY5N0U2RDAwM0RCRUQ5IC8q
IEJvb2xlYW5PYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQm9vbGVhbk9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IH07CiAJCTdDMDA4Q0QwMTg2RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21pc2VGdW5j
dGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBsaW5lRW5kaW5nID0gMDsg
cGF0aCA9IEpTUHJvbWlzZUZ1bmN0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhj
TGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcuY3BwOyB9OwogCQk3
QzAwOENEMTE4NkY4QTkzMDA5NTVDMjQgLyogSlNQcm9taXNlRnVuY3Rpb25zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUHJvbWlzZUZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNDIxMyw2ICs0MjE1LDcgQEAKIAkJCQlGNjkyQTg1OTAyNTU1
OTdEMDFGRjYwRjcgLyogRGVidWdnZXIuaCAqLywKIAkJCQkxNDk1NTlFRDBERENEREY3MDA2NDgw
ODcgLyogRGVidWdnZXJDYWxsRnJhbWUuY3BwICovLAogCQkJCTE0ODBEQjlCMEREQzIyN0YwMDND
RkRGMiAvKiBEZWJ1Z2dlckNhbGxGcmFtZS5oICovLAorCQkJCTZBRDJDQjRDMTlCOTE0MDEwMDA2
NTcxOSAvKiBEZWJ1Z2dlckV2YWxFbmFibGVyLmggKi8sCiAJCQkJRkVBMDg2MUYxODJCN0EwNDAw
RjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oICovLAogCQkJCTBGMkQ0RERCMTk4MzJEMzQw
MDdENEIxOSAvKiBEZWJ1Z2dlclNjb3BlLmNwcCAqLywKIAkJCQkwRjJENEREQzE5ODMyRDM0MDA3
RDRCMTkgLyogRGVidWdnZXJTY29wZS5oICovLApAQCAtNTc0OCw2ICs1NzUxLDcgQEAKIAkJCQlB
MUEwMDlDMTE4MzFBMjZFMDBDRjg3MTEgLyogQVJNNjRBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg2RDNCMkM0MTAxNTZCREUwMDI4NjVFNyAvKiBBUk1Bc3NlbWJsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUM0OUZFNEFCMTlBQUM4NjEwMEY0MENFOSAvKiBnZW5lcmF0ZV9wcm90b2Nv
bF90eXBlc19oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKKwkJCQk2QUQyQ0I0RDE5QjkxNDAxMDAw
NjU3MTkgLyogRGVidWdnZXJFdmFsRW5hYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzQ5RkU0
QUMxOUFBQzg2MTAwRjQwQ0U5IC8qIGdlbmVyYXRlX3Byb3RvY29sX3R5cGVzX2ltcGxlbWVudGF0
aW9uLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJNjU4RDNBNTYxOTYzODI2ODAwM0M0NUQ2IC8qIFZN
RW50cnlSZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBRDJFREZCMTk3OTlFMzgwMDRENjQ3
OCAvKiBFbnVtZXJhdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAKaW5kZXggNzQxMmE3
MzQyNTcxYTYwODk2OWZlYmQ5ZjY5Y2ExYjk2NDc2ZGE3Ny4uZTYyZWEwNzc5NmRhM2VhOWZiYjM5
N2UxNTg3ZmM1MmNiODkxNzc2MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiRGVidWdnZXJDYWxsRnJhbWUuaCIKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1
ZGUgIkRlYnVnZ2VyRXZhbEVuYWJsZXIuaCIKICNpbmNsdWRlICJEZWJ1Z2dlclNjb3BlLmgiCiAj
aW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKQEAgLTE4
Niw2ICsxODcsNyBAQCBKU1ZhbHVlIERlYnVnZ2VyQ2FsbEZyYW1lOjpldmFsdWF0ZShjb25zdCBT
dHJpbmcmIHNjcmlwdCwgSlNWYWx1ZSYgZXhjZXB0aW9uKQogICAgIGlmICghY2FsbEZyYW1lLT5j
b2RlQmxvY2soKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICAKKyAgICBEZWJ1Z2dl
ckV2YWxFbmFibGVyIGV2YWxFbmFibGVyKGNhbGxGcmFtZSk7CiAgICAgVk0mIHZtID0gY2FsbEZy
YW1lLT52bSgpOwogICAgIEV2YWxFeGVjdXRhYmxlKiBldmFsID0gRXZhbEV4ZWN1dGFibGU6OmNy
ZWF0ZShjYWxsRnJhbWUsIG1ha2VTb3VyY2Uoc2NyaXB0KSwgY2FsbEZyYW1lLT5jb2RlQmxvY2so
KS0+aXNTdHJpY3RNb2RlKCkpOwogICAgIGlmICh2bS5leGNlcHRpb24oKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyRXZhbEVuYWJsZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckV2YWxFbmFibGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmI3NWIxZjE1OTMyYTZiNmI2NWEyZGU1ZWQ5OTFiNDhiY2ZmYWFkOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckV2YWxF
bmFibGVyLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgRGVidWdnZXJFdmFsRW5hYmxlcl9oCisjZGVmaW5lIERl
YnVnZ2VyRXZhbEVuYWJsZXJfaAorCisjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCisjaW5jbHVkZSAi
SlNHbG9iYWxPYmplY3QuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIERlYnVnZ2VyRXZh
bEVuYWJsZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IERlYnVnZ2VyRXZhbEVuYWJsZXIoY29u
c3QgRXhlY1N0YXRlKiBleGVjKQorICAgICAgICA6IG1fZXhlYyhleGVjKQorICAgICAgICAsIG1f
ZXZhbFdhc0Rpc2FibGVkKGZhbHNlKQorICAgIHsKKyAgICAgICAgaWYgKGV4ZWMpIHsKKyAgICAg
ICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCk7CisgICAgICAgICAgICBtX2V2YWxXYXNEaXNhYmxlZCA9ICFnbG9iYWxPYmplY3Qt
PmV2YWxFbmFibGVkKCk7CisgICAgICAgICAgICBpZiAobV9ldmFsV2FzRGlzYWJsZWQpCisgICAg
ICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRFdmFsRW5hYmxlZCh0cnVlLCBnbG9iYWxPYmpl
Y3QtPmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IH5EZWJ1Z2dlckV2YWxFbmFibGVyKCkKKyAgICB7CisgICAgICAgIGlmIChtX2V2YWxXYXNEaXNh
YmxlZCkgeworICAgICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOworICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRF
dmFsRW5hYmxlZChmYWxzZSwgZ2xvYmFsT2JqZWN0LT5ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2Uo
KSk7CisgICAgICAgIH0KKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgRXhlY1N0YXRlKiBt
X2V4ZWM7CisgICAgYm9vbCBtX2V2YWxXYXNEaXNhYmxlZDsKK307CisKK30gLy8gbmFtZXNwYWNl
IEpTQworCisjZW5kaWYgLy8gRGVidWdnZXJFdmFsRW5hYmxlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAKaW5kZXgg
ODU2OWE0Yjc4MTI3NjY2MmZhMGQwY2VkOTFkZWUxZDI4NTdhMGZiOC4uY2JhZTRjMjJiZjdhZjFi
M2NhNzBhNjMyYjliOGE5MDBmMDlhODBlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcApAQCAtMzQsNiArMzQsNyBA
QAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAorI2luY2x1ZGUgIkRlYnVnZ2VyRXZhbEVuYWJs
ZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKQEAgLTgxLDE5ICs4Miw5IEBAIERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlIEluamVjdGVkU2NyaXB0QmFzZTo6Y2FsbEZ1bmN0aW9uV2l0aEV2
YWxFbmFibGVkKERlcHJlY2F0CiAgICAgICAgIG1fZW52aXJvbm1lbnQtPndpbGxDYWxsSW5qZWN0
ZWRTY3JpcHRGdW5jdGlvbihtX2luamVjdGVkU2NyaXB0T2JqZWN0LnNjcmlwdFN0YXRlKCksIG5h
bWUoKSwgMSk7CiAKICAgICBKU0M6OkV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUgPSBtX2luamVjdGVk
U2NyaXB0T2JqZWN0LnNjcmlwdFN0YXRlKCk7Ci0gICAgYm9vbCBldmFsSXNEaXNhYmxlZCA9IGZh
bHNlOwotICAgIGlmIChzY3JpcHRTdGF0ZSkgewotICAgICAgICBldmFsSXNEaXNhYmxlZCA9ICFz
Y3JpcHRTdGF0ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5ldmFsRW5hYmxlZCgpOwotICAgICAg
ICAvLyBUZW1wb3JhcmlseSBlbmFibGUgYWxsb3cgZXZhbHMgZm9yIGluc3BlY3Rvci4KLSAgICAg
ICAgaWYgKGV2YWxJc0Rpc2FibGVkKQotICAgICAgICAgICAgc2NyaXB0U3RhdGUtPmxleGljYWxH
bG9iYWxPYmplY3QoKS0+c2V0RXZhbEVuYWJsZWQodHJ1ZSk7Ci0gICAgfQotCisgICAgSlNDOjpE
ZWJ1Z2dlckV2YWxFbmFibGVyIGV2YWxFbmFibGVyKHNjcmlwdFN0YXRlKTsKICAgICBEZXByZWNh
dGVkOjpTY3JpcHRWYWx1ZSByZXN1bHRWYWx1ZSA9IGZ1bmN0aW9uLmNhbGwoaGFkRXhjZXB0aW9u
KTsKIAotICAgIGlmIChldmFsSXNEaXNhYmxlZCkKLSAgICAgICAgc2NyaXB0U3RhdGUtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+c2V0RXZhbEVuYWJsZWQoZmFsc2UpOwotCiAgICAgaWYgKG1fZW52
aXJvbm1lbnQpCiAgICAgICAgIG1fZW52aXJvbm1lbnQtPmRpZENhbGxJbmplY3RlZFNjcmlwdEZ1
bmN0aW9uKG1faW5qZWN0ZWRTY3JpcHRPYmplY3Quc2NyaXB0U3RhdGUoKSk7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBl
NGY5ZWVjNjZiNjFhYjgzNzc0ZjQxMTY1MDVkOTA1NGU3OGY3M2ExLi41MTM4Zjk1ZWQyYzE2OGFj
OTYyNzJlMzY1Mzk1YzM1YjNmMGFjNmI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDkt
MDQgIE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGJyZWFrcG9pbnQgYWN0aW9ucyBzaG91bGQgd29yayByZWdhcmRsZXNzIG9mIENvbnRl
bnQgU2VjdXJpdHkgUG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzY1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCB0ZXN0IGZvciAiRXZhbHVhdGUgSmF2YVNjcmlwdCIgYnJlYWtwb2lu
dCBhY3Rpb25zIGZvciBicmVha3BvaW50cyBzZXQgb24KKyAgICAgICAgcGFnZXMgd2l0aCBhIENT
UCB0aGF0IGRvZXMgbm90IGFsbG93ICd1bnNhZmUtZXZhbCcuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZXZhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1ldmFsLmh0bWw6
IEFkZGVkLgorCiAyMDE0LTA5LTAzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIFtXaW5dIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZXZhbC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1h
Y3Rpb24tZXZhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk4MjlkYWFmN2Q0NGIyYzk3MjFm
ZGJkZTJiMmE5ZjBjZDdkMjY2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1ldmFsLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUgQEAKK1Rlc3RpbmcgdGhhdCAiRXZhbHVhdGUgSmF2YVNjcmlwdCIgYnJlYWtwb2ludCBh
Y3Rpb25zIHdvcmsgY29ycmVjdGx5IGluIHRoZSBwcmVzZW5zZSBvZiBhIENvbnRlbnQgU2VjdXJp
dHkgUG9saWN5IHRoYXQgZG9lc24ndCBpbmNsdWRlICd1bnNhZmUtZXZhbCcuCisKK2luc2lkZSBi
cmVha3BvaW50QWN0aW9ucyBhOig0MikgYjooW29iamVjdCBPYmplY3RdKQorQnJlYWtwb2ludCBh
Y3Rpb24gZXZhbHVhdGVkLiBhOig0MikgYjooW29iamVjdCBPYmplY3RdKQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZXZhbC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWV2
YWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMzRhYWRjYmMzYTUyYzkyYWVkMDUxZDNjMDJiZmFhZDUyYmYy
MzY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrcG9pbnQtYWN0aW9uLWV2YWwuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVNlY3VyaXR5LVBv
bGljeSIgY29udGVudD0ic2NyaXB0LXNyYyAnc2VsZicgJ3Vuc2FmZS1pbmxpbmUnIj4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9y
ZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVu
QnJlYWtwb2ludEFjdGlvbnMoKQoreworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGJyZWFr
cG9pbnRBY3Rpb25zKDQyLCB7eDoyMjAsIHk6Mjg0fSk7IH0sIDApOworfQorCitmdW5jdGlvbiBh
Y3Rpb24oYSwgYikKK3sKKyAgICBJbnNwZWN0b3JUZXN0UHJveHkuYWRkUmVzdWx0KCJCcmVha3Bv
aW50IGFjdGlvbiBldmFsdWF0ZWQuIGE6KCIgKyBhICsgIikgYjooIiArIGIgKyAiKSIpOworICAg
IEluc3BlY3RvclRlc3RQcm94eS5jb21wbGV0ZVRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKKwor
ICAgICAgICBpZiAoIS9icmVha3BvaW50XC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0LnVybCkpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIGxvY2F0aW9uID0gc2NyaXB0T2JqZWN0
LmNyZWF0ZVNvdXJjZUNvZGVMb2NhdGlvbig0LCAwKTsKKyAgICAgICAgLy8gQ3JlYXRlIHRoZSBi
cmVha3BvaW50IGFuZCBpdHMgYWN0aW9ucyBiZWZvcmUgc2VuZGluZyBhbnl0aGluZyB0byB0aGUg
YmFja2VuZC4KKyAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnQobG9jYXRpb24pOworICAgICAgICBicmVha3BvaW50LmF1dG9Db250aW51ZSA9IHRydWU7
CisgICAgICAgIGJyZWFrcG9pbnQuY3JlYXRlQWN0aW9uKFdlYkluc3BlY3Rvci5CcmVha3BvaW50
QWN0aW9uLlR5cGUuRXZhbHVhdGUsIG51bGwsICJhY3Rpb24oYSwgYikiKTsKKworICAgICAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEJyZWFrcG9pbnQoYnJlYWtwb2ludCk7CisK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicnVuQnJlYWtwb2ludEFjdGlv
bnMoKSIpOworICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0
aW5nIHRoYXQgIkV2YWx1YXRlIEphdmFTY3JpcHQiIGJyZWFrcG9pbnQgYWN0aW9ucyB3b3JrIGNv
cnJlY3RseSBpbiB0aGUgcHJlc2Vuc2Ugb2YgYSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSB0aGF0
IGRvZXNuJ3QgaW5jbHVkZSAndW5zYWZlLWV2YWwnLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237704</attachid>
            <date>2014-09-05 12:17:02 -0700</date>
            <delta_ts>2014-09-05 14:08:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136542-20140905121657.patch</filename>
            <type>text/plain</type>
            <size>16353</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczMjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NmRlZTY4OGVlZjIwODQxZjFjYzA5Zjg1NzgwM2Y3YjNmN2M3OTdhLi5jMDc4NDdlMDRhOWVhYTlh
NjkzNGNhNGE3ZWU0NjVjZTk5M2M4NzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNC0wOS0wNCAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYnJlYWtwb2ludCBhY3Rpb25zIHNob3VsZCB3b3Jr
IHJlZ2FyZGxlc3Mgb2YgQ29udGVudCBTZWN1cml0eSBQb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjU0MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEpTQzo6RGVidWdnZXJFdmFsRW5h
YmxlciwgYW4gUkFJSSBvYmplY3Qgd2hpY2ggZW5hYmxlcyBldmFsIG9uIGEgCisgICAgICAgIEpT
R2xvYmFsT2JqZWN0IGZvciB0aGUgZHVyYXRpb24gb2YgYSBzY29wZSwgcmV0dXJuaW5nIHRoZSBl
dmFsIGVuYWJsZWQgc3RhdGUgdG8gaXRzCisgICAgICAgIG9yaWdpbmFsIHZhbHVlIHdoZW4gdGhl
IHNjb3BlIGV4aXRzLiBVc2VkIGJ5IEpTQzo6RGVidWdnZXJDYWxsRnJhbWU6OmV2YWx1YXRlIAor
ICAgICAgICB0byBhbGxvdyBicmVha3BvaW50IGFjdGlvbnMgdG8gZXhlY3V0ZSBKUyBpbiBwYWdl
cyB3aXRoIGEgQ29udGVudCBTZWN1cml0eSBQb2xpY3kKKyAgICAgICAgdGhhdCB3b3VsZCBub3Jt
YWxseSBwcm9oaWJpdCB0aGlzIChzdWNoIGFzIEluc3BlY3RvcidzIE1haW4uaHRtbCkuCisKKyAg
ICAgICAgUmVmYWN0b3JlZCBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0QmFzZSB0byB1c2UgdGhl
IFJBSUkgb2JqZWN0IGluc3RlYWQgb2YgbWFudWFsbHkKKyAgICAgICAgc2V0dGluZyBldmFsIGVu
YWJsZWQgYW5kIHRoZW4gcmVzZXR0aW5nIHRoZSBvcmlnaW5hbCBldmFsIGVuYWJsZWQgc3RhdGUu
CisKKyAgICAgICAgTk9URTogVGhlIEpTOjpEZWJ1Z2dlckV2YWxFbmFibGVyIGNvbnN0cnVjdG9y
IGNoZWNrcyB0aGUgcGFzc2VkIGluIEV4ZWNTdGF0ZSBwb2ludGVyCisgICAgICAgIGZvciBudWxs
IHRvIGJlIGVxdWl2YWxlbnQgd2l0aCB0aGUgb3JpZ2luYWwgY29kZSBpbiBJbnNwZWN0b3I6Oklu
amVjdGVkU2NyaXB0QmFzZS4KKyAgICAgICAgSW5qZWN0ZWRTY3JpcHRCYXNlIGlzIGdldHRpbmcg
dGhlIEV4ZWNTdGF0ZSBmcm9tIFNjcmlwdE9iamVjdDo6c2NyaXB0U3RhdGUoKSwgd2hpY2gKKyAg
ICAgICAgY2FuIGN1cnJlbnRseSBiZSBudWxsLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
dmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZGVidWdnZXIv
RGVidWdnZXJDYWxsRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZTo6
ZXZhbHVhdGUpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyRXZhbEVuYWJsZXIuaDogQWRk
ZWQuCisgICAgICAgIChKU0M6OkRlYnVnZ2VyRXZhbEVuYWJsZXI6OkRlYnVnZ2VyRXZhbEVuYWJs
ZXIpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckV2YWxFbmFibGVyOjp+RGVidWdnZXJFdmFsRW5h
Ymxlcik6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHA6CisgICAg
ICAgIChJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0QmFzZTo6Y2FsbEZ1bmN0aW9uV2l0aEV2YWxF
bmFibGVkKToKKwogMjAxNC0wOS0wMyAgQWtvcyBLaXNzICA8YWtpc3NAaW5mLnUtc3plZ2VkLmh1
PgogCiAgICAgICAgIERvbid0IGdlbmVyYXRlIHN1cGVyZmx1b3VzIG1vdiBpbnN0cnVjdGlvbnMg
Zm9yIG1vdmUgaW1tZWRpYXRlIG9uIEFSTTY0LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvaiBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2oKaW5kZXggMjU5ZWZiNGFhZWUzYzM1MzRlNDUwMDA2NjZiMGUzOTc3NTMwMmMyZS4u
NTU5MjZiODkyZGM3ZDM2ZDVhOGRhNzMwM2YxOGZmYjI4MTQ0NDUwMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCkBAIC05NzMsNiArOTczLDcgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGRlYnVnZ2VyXEJyZWFrcG9pbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRlYnVnZ2VyXERlYnVnZ2VyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxkZWJ1Z2dlclxEZWJ1Z2dlckNhbGxGcmFtZS5oIiAvPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZGVidWdnZXJcRGVidWdnZXJFdmFsRW5hYmxlci5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZGVidWdnZXJcRGVidWdnZXJQcmltaXRpdmVzLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZWJ1Z2dlclxEZWJ1Z2dlclNjb3BlLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHQWJzdHJhY3RIZWFwLmgiIC8+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggZjI1ODk2
ODYxM2Q2MDVjMzIzMzI1N2VhMjFjZWM1N2EwYTA5NTA2Yy4uN2MxYTJiMWM4MzY4MGFiYWM4Nzc4
YjJjOGU3ZTY2NzA1MjgwOTliNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMTk1OCw2ICsxOTU4LDkgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRlYnVnZ2VyXERlYnVnZ2VyQ2FsbEZyYW1lLmgiPgogICAgICAgPEZpbHRl
cj5kZWJ1Z2dlcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZGVidWdnZXJcRGVidWdnZXJFdmFsRW5hYmxlci5oIj4KKyAgICAgIDxGaWx0ZXI+
ZGVidWdnZXI8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGRlYnVnZ2VyXERlYnVnZ2VyUHJpbWl0aXZlcy5oIj4KICAgICAgIDxGaWx0ZXI+ZGVi
dWdnZXI8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNWRhODE1ZDk1MmMxMmUxNTI0YjkzZGE0ZWVlNTFmMjgxY2RiMDY5OC4uODU2ZDBl
NWMwMDUyODI0NjI1OTA5NjY1M2VjYTlkOGQwMmZlZDg5YyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTExNzEsNiArMTE3MSw3IEBACiAJCTY1QzAyODVDMTcxNzk2NjgwMDM1MUUz
NSAvKiBBUk12N0RPcGNvZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNjVDMDI4NUExNzE3OTY2ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5jcHAg
Ki87IH07CiAJCTY1QzAyODVEMTcxNzk2NjgwMDM1MUUzNSAvKiBBUk12N0RPcGNvZGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1QzAyODVCMTcxNzk2
NjgwMDM1MUUzNSAvKiBBUk12N0RPcGNvZGUuaCAqLzsgfTsKIAkJNjVGQjUxMTcxODRFRUU3MDAw
QzEyQjcwIC8qIFByb3RvQ2FsbEZyYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDY1RkI1MTE2MTg0RUU5QkMwMEMxMkI3MCAvKiBQcm90b0NhbGxG
cmFtZS5jcHAgKi87IH07CisJCTZBRDJDQjREMTlCOTE0MDEwMDA2NTcxOSAvKiBEZWJ1Z2dlckV2
YWxFbmFibGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2QUQyQ0I0QzE5QjkxNDAxMDAwNjU3MTkgLyogRGVidWdnZXJFdmFsRW5hYmxlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMDA4Q0QyMTg2
RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21pc2VGdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMDhDRDAxODZGOEE5MzAwOTU1QzI0IC8q
IEpTUHJvbWlzZUZ1bmN0aW9ucy5jcHAgKi87IH07CiAJCTdDMDA4Q0QzMTg2RjhBOTMwMDk1NUMy
NCAvKiBKU1Byb21pc2VGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDMDA4Q0QxMTg2RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21pc2VGdW5j
dGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QzAwOENEQTE4NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMDhDRDgxODcxMjRC
QjAwOTU1QzI0IC8qIEpTUHJvbWlzZURlZmVycmVkLmNwcCAqLzsgfTsKQEAgLTI4MDgsNiArMjgw
OSw3IEBACiAJCTY1RUE3MzYzMEJBRTM1RDEwMDFCQjU2MCAvKiBDb21tb25JZGVudGlmaWVycy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tbW9uSWRlbnRpZmllcnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjVGQjUxMTUxODRFRThGODAwQzEyQjcwIC8q
IFByb3RvQ2FsbEZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb3Rv
Q2FsbEZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1RkI1MTE2MTg0RUU5
QkMwMEMxMkI3MCAvKiBQcm90b0NhbGxGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQcm90b0NhbGxGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTZBRDJDQjRDMTlCOTE0MDEwMDA2NTcxOSAvKiBEZWJ1Z2dlckV2YWxFbmFibGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlYnVnZ2VyRXZhbEVuYWJsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzA0RkQzNTMwNTY5N0U2RDAwM0RCRUQ5IC8q
IEJvb2xlYW5PYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQm9vbGVhbk9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IH07CiAJCTdDMDA4Q0QwMTg2RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21pc2VGdW5j
dGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBsaW5lRW5kaW5nID0gMDsg
cGF0aCA9IEpTUHJvbWlzZUZ1bmN0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhj
TGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcuY3BwOyB9OwogCQk3
QzAwOENEMTE4NkY4QTkzMDA5NTVDMjQgLyogSlNQcm9taXNlRnVuY3Rpb25zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUHJvbWlzZUZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNDIxMyw2ICs0MjE1LDcgQEAKIAkJCQlGNjkyQTg1OTAyNTU1
OTdEMDFGRjYwRjcgLyogRGVidWdnZXIuaCAqLywKIAkJCQkxNDk1NTlFRDBERENEREY3MDA2NDgw
ODcgLyogRGVidWdnZXJDYWxsRnJhbWUuY3BwICovLAogCQkJCTE0ODBEQjlCMEREQzIyN0YwMDND
RkRGMiAvKiBEZWJ1Z2dlckNhbGxGcmFtZS5oICovLAorCQkJCTZBRDJDQjRDMTlCOTE0MDEwMDA2
NTcxOSAvKiBEZWJ1Z2dlckV2YWxFbmFibGVyLmggKi8sCiAJCQkJRkVBMDg2MUYxODJCN0EwNDAw
RjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oICovLAogCQkJCTBGMkQ0RERCMTk4MzJEMzQw
MDdENEIxOSAvKiBEZWJ1Z2dlclNjb3BlLmNwcCAqLywKIAkJCQkwRjJENEREQzE5ODMyRDM0MDA3
RDRCMTkgLyogRGVidWdnZXJTY29wZS5oICovLApAQCAtNTc0OCw2ICs1NzUxLDcgQEAKIAkJCQlB
MUEwMDlDMTE4MzFBMjZFMDBDRjg3MTEgLyogQVJNNjRBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg2RDNCMkM0MTAxNTZCREUwMDI4NjVFNyAvKiBBUk1Bc3NlbWJsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUM0OUZFNEFCMTlBQUM4NjEwMEY0MENFOSAvKiBnZW5lcmF0ZV9wcm90b2Nv
bF90eXBlc19oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKKwkJCQk2QUQyQ0I0RDE5QjkxNDAxMDAw
NjU3MTkgLyogRGVidWdnZXJFdmFsRW5hYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzQ5RkU0
QUMxOUFBQzg2MTAwRjQwQ0U5IC8qIGdlbmVyYXRlX3Byb3RvY29sX3R5cGVzX2ltcGxlbWVudGF0
aW9uLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJNjU4RDNBNTYxOTYzODI2ODAwM0M0NUQ2IC8qIFZN
RW50cnlSZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBRDJFREZCMTk3OTlFMzgwMDRENjQ3
OCAvKiBFbnVtZXJhdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAKaW5kZXggNzQxMmE3
MzQyNTcxYTYwODk2OWZlYmQ5ZjY5Y2ExYjk2NDc2ZGE3Ny4uZTYyZWEwNzc5NmRhM2VhOWZiYjM5
N2UxNTg3ZmM1MmNiODkxNzc2MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiRGVidWdnZXJDYWxsRnJhbWUuaCIKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1
ZGUgIkRlYnVnZ2VyRXZhbEVuYWJsZXIuaCIKICNpbmNsdWRlICJEZWJ1Z2dlclNjb3BlLmgiCiAj
aW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKQEAgLTE4
Niw2ICsxODcsNyBAQCBKU1ZhbHVlIERlYnVnZ2VyQ2FsbEZyYW1lOjpldmFsdWF0ZShjb25zdCBT
dHJpbmcmIHNjcmlwdCwgSlNWYWx1ZSYgZXhjZXB0aW9uKQogICAgIGlmICghY2FsbEZyYW1lLT5j
b2RlQmxvY2soKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICAKKyAgICBEZWJ1Z2dl
ckV2YWxFbmFibGVyIGV2YWxFbmFibGVyKGNhbGxGcmFtZSk7CiAgICAgVk0mIHZtID0gY2FsbEZy
YW1lLT52bSgpOwogICAgIEV2YWxFeGVjdXRhYmxlKiBldmFsID0gRXZhbEV4ZWN1dGFibGU6OmNy
ZWF0ZShjYWxsRnJhbWUsIG1ha2VTb3VyY2Uoc2NyaXB0KSwgY2FsbEZyYW1lLT5jb2RlQmxvY2so
KS0+aXNTdHJpY3RNb2RlKCkpOwogICAgIGlmICh2bS5leGNlcHRpb24oKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyRXZhbEVuYWJsZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckV2YWxFbmFibGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmI3NWIxZjE1OTMyYTZiNmI2NWEyZGU1ZWQ5OTFiNDhiY2ZmYWFkOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckV2YWxF
bmFibGVyLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgRGVidWdnZXJFdmFsRW5hYmxlcl9oCisjZGVmaW5lIERl
YnVnZ2VyRXZhbEVuYWJsZXJfaAorCisjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCisjaW5jbHVkZSAi
SlNHbG9iYWxPYmplY3QuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIERlYnVnZ2VyRXZh
bEVuYWJsZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IERlYnVnZ2VyRXZhbEVuYWJsZXIoY29u
c3QgRXhlY1N0YXRlKiBleGVjKQorICAgICAgICA6IG1fZXhlYyhleGVjKQorICAgICAgICAsIG1f
ZXZhbFdhc0Rpc2FibGVkKGZhbHNlKQorICAgIHsKKyAgICAgICAgaWYgKGV4ZWMpIHsKKyAgICAg
ICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCk7CisgICAgICAgICAgICBtX2V2YWxXYXNEaXNhYmxlZCA9ICFnbG9iYWxPYmplY3Qt
PmV2YWxFbmFibGVkKCk7CisgICAgICAgICAgICBpZiAobV9ldmFsV2FzRGlzYWJsZWQpCisgICAg
ICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRFdmFsRW5hYmxlZCh0cnVlLCBnbG9iYWxPYmpl
Y3QtPmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IH5EZWJ1Z2dlckV2YWxFbmFibGVyKCkKKyAgICB7CisgICAgICAgIGlmIChtX2V2YWxXYXNEaXNh
YmxlZCkgeworICAgICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOworICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRF
dmFsRW5hYmxlZChmYWxzZSwgZ2xvYmFsT2JqZWN0LT5ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2Uo
KSk7CisgICAgICAgIH0KKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgRXhlY1N0YXRlKiBt
X2V4ZWM7CisgICAgYm9vbCBtX2V2YWxXYXNEaXNhYmxlZDsKK307CisKK30gLy8gbmFtZXNwYWNl
IEpTQworCisjZW5kaWYgLy8gRGVidWdnZXJFdmFsRW5hYmxlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAKaW5kZXgg
ODU2OWE0Yjc4MTI3NjY2MmZhMGQwY2VkOTFkZWUxZDI4NTdhMGZiOC4uNzdiOGU5YjU1NDkzZjhm
ZTVjNTIzNDIwOTc4YmI1OTU5NDU3NDc5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcApAQCAtMzQsNiArMzQsNyBA
QAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAorI2luY2x1ZGUgIkRlYnVnZ2VyRXZhbEVuYWJs
ZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKQEAgLTgxLDE4ICs4MiwxMiBAQCBEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZSBJbmplY3RlZFNjcmlwdEJhc2U6OmNhbGxGdW5jdGlvbldpdGhF
dmFsRW5hYmxlZChEZXByZWNhdAogICAgICAgICBtX2Vudmlyb25tZW50LT53aWxsQ2FsbEluamVj
dGVkU2NyaXB0RnVuY3Rpb24obV9pbmplY3RlZFNjcmlwdE9iamVjdC5zY3JpcHRTdGF0ZSgpLCBu
YW1lKCksIDEpOwogCiAgICAgSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRlID0gbV9pbmplY3Rl
ZFNjcmlwdE9iamVjdC5zY3JpcHRTdGF0ZSgpOwotICAgIGJvb2wgZXZhbElzRGlzYWJsZWQgPSBm
YWxzZTsKLSAgICBpZiAoc2NyaXB0U3RhdGUpIHsKLSAgICAgICAgZXZhbElzRGlzYWJsZWQgPSAh
c2NyaXB0U3RhdGUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZXZhbEVuYWJsZWQoKTsKLSAgICAg
ICAgLy8gVGVtcG9yYXJpbHkgZW5hYmxlIGFsbG93IGV2YWxzIGZvciBpbnNwZWN0b3IuCi0gICAg
ICAgIGlmIChldmFsSXNEaXNhYmxlZCkKLSAgICAgICAgICAgIHNjcmlwdFN0YXRlLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCktPnNldEV2YWxFbmFibGVkKHRydWUpOwotICAgIH0KLQotICAgIERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlIHJlc3VsdFZhbHVlID0gZnVuY3Rpb24uY2FsbChoYWRFeGNlcHRp
b24pOworICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIHJlc3VsdFZhbHVlOwogCi0gICAgaWYg
KGV2YWxJc0Rpc2FibGVkKQotICAgICAgICBzY3JpcHRTdGF0ZS0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLT5zZXRFdmFsRW5hYmxlZChmYWxzZSk7CisgICAgeworICAgICAgICBKU0M6OkRlYnVnZ2Vy
RXZhbEVuYWJsZXIgZXZhbEVuYWJsZXIoc2NyaXB0U3RhdGUpOworICAgICAgICByZXN1bHRWYWx1
ZSA9IGZ1bmN0aW9uLmNhbGwoaGFkRXhjZXB0aW9uKTsKKyAgICB9CiAKICAgICBpZiAobV9lbnZp
cm9ubWVudCkKICAgICAgICAgbV9lbnZpcm9ubWVudC0+ZGlkQ2FsbEluamVjdGVkU2NyaXB0RnVu
Y3Rpb24obV9pbmplY3RlZFNjcmlwdE9iamVjdC5zY3JpcHRTdGF0ZSgpKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlNGY5
ZWVjNjZiNjFhYjgzNzc0ZjQxMTY1MDVkOTA1NGU3OGY3M2ExLi41MTM4Zjk1ZWQyYzE2OGFjOTYy
NzJlMzY1Mzk1YzM1YjNmMGFjNmI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDktMDQg
IE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGJyZWFrcG9pbnQgYWN0aW9ucyBzaG91bGQgd29yayByZWdhcmRsZXNzIG9mIENvbnRlbnQg
U2VjdXJpdHkgUG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzY1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRlZCB0ZXN0IGZvciAiRXZhbHVhdGUgSmF2YVNjcmlwdCIgYnJlYWtwb2ludCBh
Y3Rpb25zIGZvciBicmVha3BvaW50cyBzZXQgb24KKyAgICAgICAgcGFnZXMgd2l0aCBhIENTUCB0
aGF0IGRvZXMgbm90IGFsbG93ICd1bnNhZmUtZXZhbCcuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZXZhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1ldmFsLmh0bWw6IEFk
ZGVkLgorCiAyMDE0LTA5LTAzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIFtXaW5dIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZXZhbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rp
b24tZXZhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk4MjlkYWFmN2Q0NGIyYzk3MjFmZGJk
ZTJiMmE5ZjBjZDdkMjY2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1ldmFsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDUgQEAKK1Rlc3RpbmcgdGhhdCAiRXZhbHVhdGUgSmF2YVNjcmlwdCIgYnJlYWtwb2ludCBhY3Rp
b25zIHdvcmsgY29ycmVjdGx5IGluIHRoZSBwcmVzZW5zZSBvZiBhIENvbnRlbnQgU2VjdXJpdHkg
UG9saWN5IHRoYXQgZG9lc24ndCBpbmNsdWRlICd1bnNhZmUtZXZhbCcuCisKK2luc2lkZSBicmVh
a3BvaW50QWN0aW9ucyBhOig0MikgYjooW29iamVjdCBPYmplY3RdKQorQnJlYWtwb2ludCBhY3Rp
b24gZXZhbHVhdGVkLiBhOig0MikgYjooW29iamVjdCBPYmplY3RdKQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZXZhbC5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWV2YWwu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lMzRhYWRjYmMzYTUyYzkyYWVkMDUxZDNjMDJiZmFhZDUyYmYyMzY5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
cG9pbnQtYWN0aW9uLWV2YWwuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IWRvY3R5cGUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVNlY3VyaXR5LVBvbGlj
eSIgY29udGVudD0ic2NyaXB0LXNyYyAnc2VsZicgJ3Vuc2FmZS1pbmxpbmUnIj4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNv
dXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVuQnJl
YWtwb2ludEFjdGlvbnMoKQoreworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGJyZWFrcG9p
bnRBY3Rpb25zKDQyLCB7eDoyMjAsIHk6Mjg0fSk7IH0sIDApOworfQorCitmdW5jdGlvbiBhY3Rp
b24oYSwgYikKK3sKKyAgICBJbnNwZWN0b3JUZXN0UHJveHkuYWRkUmVzdWx0KCJCcmVha3BvaW50
IGFjdGlvbiBldmFsdWF0ZWQuIGE6KCIgKyBhICsgIikgYjooIiArIGIgKyAiKSIpOworICAgIElu
c3BlY3RvclRlc3RQcm94eS5jb21wbGV0ZVRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7
CisgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50
KSB7CisgICAgICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKKworICAg
ICAgICBpZiAoIS9icmVha3BvaW50XC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0LnVybCkpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIGxvY2F0aW9uID0gc2NyaXB0T2JqZWN0LmNy
ZWF0ZVNvdXJjZUNvZGVMb2NhdGlvbig0LCAwKTsKKyAgICAgICAgLy8gQ3JlYXRlIHRoZSBicmVh
a3BvaW50IGFuZCBpdHMgYWN0aW9ucyBiZWZvcmUgc2VuZGluZyBhbnl0aGluZyB0byB0aGUgYmFj
a2VuZC4KKyAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkJyZWFrcG9p
bnQobG9jYXRpb24pOworICAgICAgICBicmVha3BvaW50LmF1dG9Db250aW51ZSA9IHRydWU7Cisg
ICAgICAgIGJyZWFrcG9pbnQuY3JlYXRlQWN0aW9uKFdlYkluc3BlY3Rvci5CcmVha3BvaW50QWN0
aW9uLlR5cGUuRXZhbHVhdGUsIG51bGwsICJhY3Rpb24oYSwgYikiKTsKKworICAgICAgICBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEJyZWFrcG9pbnQoYnJlYWtwb2ludCk7CisKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicnVuQnJlYWtwb2ludEFjdGlvbnMo
KSIpOworICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0aW5n
IHRoYXQgIkV2YWx1YXRlIEphdmFTY3JpcHQiIGJyZWFrcG9pbnQgYWN0aW9ucyB3b3JrIGNvcnJl
Y3RseSBpbiB0aGUgcHJlc2Vuc2Ugb2YgYSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSB0aGF0IGRv
ZXNuJ3QgaW5jbHVkZSAndW5zYWZlLWV2YWwnLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>