<?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>117386</bug_id>
          
          <creation_ts>2013-06-09 14:58:45 -0700</creation_ts>
          <short_desc>JSString should remember AtomicString</short_desc>
          <delta_ts>2013-07-13 23:08:47 -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>Bindings</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          <dependson>118651</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>barraclough</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>psolanki</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>898504</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-09 14:58:45 -0700</bug_when>
    <thetext>We&apos;ve found out that we&apos;re constantly converting the same String to AtomicString in the binding code.
Make JSString smarter and remember the conversion so that the subsequent calls to the same DOM API will not result in another String-to-AtomicString conversion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898505</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-06-09 15:16:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/14102739&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898506</commentid>
    <comment_count>2</comment_count>
      <attachid>204123</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-09 15:34:57 -0700</bug_when>
    <thetext>Created attachment 204123
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898513</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-06-09 17:22:01 -0700</bug_when>
    <thetext>I like the way this is going! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898516</commentid>
    <comment_count>4</comment_count>
      <attachid>204126</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-09 17:36:03 -0700</bug_when>
    <thetext>Created attachment 204126
Fixe the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898517</commentid>
    <comment_count>5</comment_count>
      <attachid>204127</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-09 17:37:33 -0700</bug_when>
    <thetext>Created attachment 204127
Updated for ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898519</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-06-09 17:46:32 -0700</bug_when>
    <thetext>Is this a speedup on any benchmarks (normal or micro)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898522</commentid>
    <comment_count>7</comment_count>
      <attachid>204129</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-09 18:00:53 -0700</bug_when>
    <thetext>Created attachment 204129
Add Element.idl changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898524</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-06-09 18:17:48 -0700</bug_when>
    <thetext>Side note: This is good evidence that we should merge the Identifier and AtomicString tables. Most of these strings are probably Identifiers to start with.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898525</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-09 18:20:03 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Side note: This is good evidence that we should merge the Identifier and AtomicString tables. Most of these strings are probably Identifiers to start with.

Right.  Oliver suggested that when we were discussing it on Friday but I think this is a good starting at least for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898534</commentid>
    <comment_count>10</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2013-06-09 19:55:35 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Side note: This is good evidence that we should merge the Identifier and AtomicString tables. Most of these strings are probably Identifiers to start with.
&gt; 
&gt; Right.  Oliver suggested that when we were discussing it on Friday but I think this is a good starting at least for now.

Last time I tried this it was a regression, but that was a few years back &amp; won&apos;t necessarily still be the case (especially if there are opportunities, as here, to take advantage of it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898536</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-09 20:04:18 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; Side note: This is good evidence that we should merge the Identifier and AtomicString tables. Most of these strings are probably Identifiers to start with.
&gt; &gt; 
&gt; &gt; Right.  Oliver suggested that when we were discussing it on Friday but I think this is a good starting at least for now.
&gt; 
&gt; Last time I tried this it was a regression, but that was a few years back &amp; won&apos;t necessarily still be the case (especially if there are opportunities, as here, to take advantage of it).

That&apos;s good to know.  FWIW, I didn&apos;t tried that so it&apos;ll be good to get data again.

Somewhat related to this, it might make sense to add a special member function like toAtomicString() on String to generalize this change so that other parts of WebKit can benefit from the same optimization.

A much more aggressive approach will be to online-swap String::m_impl inside AtomicString(const String&amp;) but that may be tricky since doing so might create a stable pointer to StringImpl* elsewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898550</commentid>
    <comment_count>12</comment_count>
      <attachid>204129</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-06-09 22:51:02 -0700</bug_when>
    <thetext>Comment on attachment 204129
Add Element.idl changes

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

I kind of like this approach as an intermediate step.  I think the real problem with Atomic vs. Identifier (aside from thread semantics, etc) is the intended lifetime - a constant string in source code is always going to last as long as the page is live, but selectors, or ids, etc may not.

That said, i find manual annotation of DOMStrings to be somewhat saddening but i&apos;m not sure how to avoid that in the interim

&gt; Source/JavaScriptCore/runtime/JSString.h:378
&gt; +    if (isRope())
&gt; +        static_cast&lt;const JSRopeString*&gt;(this)-&gt;resolveRope(exec);

This can fail, so you&apos;ll need to handle that with an exception check</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898562</commentid>
    <comment_count>13</comment_count>
      <attachid>204129</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-10 00:11:05 -0700</bug_when>
    <thetext>Comment on attachment 204129
Add Element.idl changes

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

&gt;&gt; Source/JavaScriptCore/runtime/JSString.h:378
&gt;&gt; +        static_cast&lt;const JSRopeString*&gt;(this)-&gt;resolveRope(exec);
&gt; 
&gt; This can fail, so you&apos;ll need to handle that with an exception check

Can you think of a concrete case where this would fail?  Ideally, I’d like to add a test case for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898653</commentid>
    <comment_count>14</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-06-10 08:02:05 -0700</bug_when>
    <thetext>&gt; &gt; This can fail, so you&apos;ll need to handle that with an exception check
&gt; 
&gt; Can you think of a concrete case where this would fail?  Ideally, I’d like to add a test case for it.

The two failures cases are 

(1) Out of memory: A rope that fails to malloc when resolved.

(2) Too long: A rope whose length is &gt; 2^32-1 when resolved.

On a 64bit system, it&apos;s not practical to trigger (1), but you may be able to trigger (2).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898676</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-10 09:49:10 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; The two failures cases are 
&gt; 
&gt; (1) Out of memory: A rope that fails to malloc when resolved.
&gt; 
&gt; (2) Too long: A rope whose length is &gt; 2^32-1 when resolved.
&gt; 
&gt; On a 64bit system, it&apos;s not practical to trigger (1), but you may be able to trigger (2).

Sounds like I shouldn&apos;t necessary make a test case either way... :(  Will just fix the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898679</commentid>
    <comment_count>16</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-06-10 10:11:20 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; The two failures cases are 
&gt; &gt; 
&gt; &gt; (1) Out of memory: A rope that fails to malloc when resolved.
&gt; &gt; 
&gt; &gt; (2) Too long: A rope whose length is &gt; 2^32-1 when resolved.
&gt; &gt; 
&gt; &gt; On a 64bit system, it&apos;s not practical to trigger (1), but you may be able to trigger (2).
&gt; 
&gt; Sounds like I shouldn&apos;t necessary make a test case either way... :(  Will just fix the code.

It may be possible to create a large enough rope to fail without actually relying on memory usage:

var str = &quot;a&quot;
for (var i = 0; i &lt; 31; i++)
    str = str + str

str = str + &quot;a&quot;

atomicify(str)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898699</commentid>
    <comment_count>17</comment_count>
      <attachid>204178</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-10 12:59:41 -0700</bug_when>
    <thetext>Created attachment 204178
Fixed the roping issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900893</commentid>
    <comment_count>18</comment_count>
      <attachid>204178</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-06-16 12:43:33 -0700</bug_when>
    <thetext>Comment on attachment 204178
Fixed the roping issue

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

r=me

&gt; Source/JavaScriptCore/runtime/JSString.h:380
&gt; +    if (exec-&gt;hadException())
&gt; +        return nullAtom;

You can move this exception check inside the isRope() block, to tell the compiler that an exception can only happen if we have to resolve a rope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902044</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-20 01:09:11 -0700</bug_when>
    <thetext>Unfortunately, this patch doesn&apos;t seem to have any impact on html5-full-render.html load time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903214</commentid>
    <comment_count>20</comment_count>
      <attachid>205363</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-24 21:39:56 -0700</bug_when>
    <thetext>Created attachment 205363
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903217</commentid>
    <comment_count>21</comment_count>
      <attachid>205365</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-24 22:08:37 -0700</bug_when>
    <thetext>Created attachment 205365
Addressed Geoff&apos;s comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903386</commentid>
    <comment_count>22</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-25 11:16:46 -0700</bug_when>
    <thetext>Dromaeo results:
r151951 with patch: http://dromaeo.com/?id=197766
r151951 without patch: http://dromaeo.com/?id=197769</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903508</commentid>
    <comment_count>23</comment_count>
      <attachid>205365</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-25 20:48:41 -0700</bug_when>
    <thetext>Comment on attachment 205365
Addressed Geoff&apos;s comment

Clearing flags on attachment: 205365

Committed r151978: &lt;http://trac.webkit.org/changeset/151978&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903509</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-25 20:48:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908212</commentid>
    <comment_count>25</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-07-13 18:08:13 -0700</bug_when>
    <thetext>This change broke 3 sites that we know of already:
http://sigalert.com
http://www.ipernity.com/doc/ndlinegeek
http://io9.com/this-movie-would-have-been-perfect-if-not-for-that-awf-736457142

With how quickly those 3 have been discovered, it&apos;s somewhat frightening.

Should we role this out while the regressions are revisited?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908215</commentid>
    <comment_count>26</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-07-13 18:29:43 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; This change broke 3 sites that we know of already:
&gt; http://sigalert.com
&gt; http://www.ipernity.com/doc/ndlinegeek
&gt; http://io9.com/this-movie-would-have-been-perfect-if-not-for-that-awf-736457142
&gt; 
&gt; With how quickly those 3 have been discovered, it&apos;s somewhat frightening.
&gt; 
&gt; Should we role this out while the regressions are revisited?

Oops, are there bugs filed about these failures?  Is the kind of failures known?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908219</commentid>
    <comment_count>27</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2013-07-13 22:53:24 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; Oops, are there bugs filed about these failures?  Is the kind of failures known?

This is in radar: &lt;rdar://problem/14408012&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908222</commentid>
    <comment_count>28</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-07-13 23:04:35 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #26)
&gt; &gt; Oops, are there bugs filed about these failures?  Is the kind of failures known?
&gt; 
&gt; This is in radar: &lt;rdar://problem/14408012&gt;

Okay, sorry about that. We should roll this patch out because
1. It wasn&apos;t a huge win on PLT3 and our Dromaeo score doesn&apos;t improve that much either.
2. We should merge Identifier and AtomicString instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908225</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-13 23:08:47 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 118651</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204123</attachid>
            <date>2013-06-09 15:34:57 -0700</date>
            <delta_ts>2013-06-09 17:36:00 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>wip117386</filename>
            <type>text/plain</type>
            <size>10438</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgJKHJldmlz
aW9uIDE1MTMzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUu
aAkod29ya2luZyBjb3B5KQpAQCAtMjIwLDYgKzIyMCw3IEBACiAgICAgLy8gYmVlbiBzZXQgaW4g
dGhlIEV4ZWNTdGF0ZSBhbHJlYWR5LgogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBj
b25zdDsKICAgICBKU1N0cmluZyogdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CisgICAgQXRv
bWljU3RyaW5nIHRvQXRvbWljU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIFdURjo6U3Ry
aW5nIHRvV1RGU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIFdURjo6U3RyaW5nIHRvV1RG
U3RyaW5nSW5saW5lKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIEpTT2JqZWN0KiB0b09iamVjdChF
eGVjU3RhdGUqKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
dHJpbmcuaAkocmV2aXNpb24gMTUxMzMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdHJpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDYgKzEzOSw3IEBACiAgICAgY29u
c3QgU3RyaW5nJiB2YWx1ZShFeGVjU3RhdGUqKSBjb25zdDsKICAgICBjb25zdCBTdHJpbmcmIHRy
eUdldFZhbHVlKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgeyByZXR1cm4gbV9sZW5n
dGg7IH0KKyAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0Owog
CiAgICAgSlNWYWx1ZSB0b1ByaW1pdGl2ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVU
eXBlKSBjb25zdDsKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIHRvQm9vbGVhbigpIGNvbnN0
OwpAQCAtMzcxLDYgKzM3MiwxNiBAQAogICAgIHJldHVybiBtX3ZhbHVlOwogfQogCitpbmxpbmUg
QXRvbWljU3RyaW5nIEpTU3RyaW5nOjphdG9taWNTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25z
dAoreworICAgIGlmIChpc1JvcGUoKSkKKyAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgSlNSb3Bl
U3RyaW5nKj4odGhpcyktPnJlc29sdmVSb3BlKGV4ZWMpOworICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyBhdG9taWNWYWx1ZShtX3ZhbHVlKTsKKyAgICBpZiAoYXRvbWljVmFsdWUuaW1wbCgpICE9IG1f
dmFsdWUuaW1wbCgpKQorICAgICAgICBtX3ZhbHVlID0gYXRvbWljVmFsdWU7CisgICAgcmV0dXJu
IGF0b21pY1ZhbHVlOworfQorCiBpbmxpbmUgY29uc3QgU3RyaW5nJiBKU1N0cmluZzo6dHJ5R2V0
VmFsdWUoKSBjb25zdAogewogICAgIGlmIChpc1JvcGUoKSkKQEAgLTUxNiw2ICs1MjcsMTMgQEAK
ICAgICByZXR1cm4gdG9TdHJpbmdTbG93Q2FzZShleGVjKTsKIH0KIAoraW5saW5lIEF0b21pY1N0
cmluZyBKU1ZhbHVlOjp0b0F0b21pY1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7Cisg
ICAgaWYgKGlzU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNTdHJpbmcqPihhc0Nl
bGwoKSktPmF0b21pY1N0cmluZyhleGVjKTsKKyAgICByZXR1cm4gdG9TdHJpbmdTbG93Q2FzZShl
eGVjKS0+dmFsdWUoZXhlYyk7Cit9CisKIGlubGluZSBTdHJpbmcgSlNWYWx1ZTo6dG9XVEZTdHJp
bmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewogICAgIGlmIChpc1N0cmluZygpKQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAx
NTEzMzApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDgsNiArMTA4LDEzIEBACiAgICAgcmV0dXJuIHZhbHVlLnRvU3Ry
aW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKIH0KIAorQXRvbWljU3RyaW5nIHZhbHVlVG9BdG9taWNT
dHJpbmdXaXRoTnVsbENoZWNrKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAg
ICBpZiAodmFsdWUuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBudWxsQXRvbTsKKyAgICByZXR1
cm4gdmFsdWUudG9BdG9taWNTdHJpbmcoZXhlYyk7Cit9CisKIFN0cmluZyB2YWx1ZVRvU3RyaW5n
V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBpZiAodmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKQEAgLTExNSw2ICsxMjIsMTMg
QEAKICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogfQogCitB
dG9taWNTdHJpbmcgdmFsdWVUb0F0b21pY1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayhF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmlzVW5kZWZp
bmVkT3JOdWxsKCkpCisgICAgICAgIHJldHVybiBudWxsQXRvbTsKKyAgICByZXR1cm4gdmFsdWUu
dG9BdG9taWNTdHJpbmcoZXhlYyk7Cit9CisKIEpTVmFsdWUganNEYXRlT3JOdWxsKEV4ZWNTdGF0
ZSogZXhlYywgZG91YmxlIHZhbHVlKQogewogICAgIGlmICghc3RkOjppc2Zpbml0ZSh2YWx1ZSkp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAkocmV2aXNp
b24gMTUxMzMwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI0OSw3ICsyNDksMTAgQEAKICAgICBBdG9taWNTdHJpbmdJbXBs
KiBmaW5kQXRvbWljU3RyaW5nKEpTQzo6UHJvcGVydHlOYW1lKTsKIAogICAgIFN0cmluZyB2YWx1
ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7IC8v
IG51bGwgaWYgdGhlIHZhbHVlIGlzIG51bGwKKyAgICBBdG9taWNTdHJpbmcgdmFsdWVUb0F0b21p
Y1N0cmluZ1dpdGhOdWxsQ2hlY2soSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOworCiAg
ICAgU3RyaW5nIHZhbHVlVG9TdHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTVmFsdWUpOyAvLyBudWxsIGlmIHRoZSB2YWx1ZSBpcyBudWxsIG9yIHVu
ZGVmaW5lZAorICAgIEF0b21pY1N0cmluZyB2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aFVuZGVmaW5l
ZE9yTnVsbENoZWNrKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTsKIAogICAgIGlubGlu
ZSBpbnQzMl90IGZpbml0ZUludDMyVmFsdWUoSlNDOjpKU1ZhbHVlIHZhbHVlLCBKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgYm9vbCYgb2theSkKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMTUxMzMw
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0J
KHdvcmtpbmcgY29weSkKQEAgLTMzMTUsNiArMzMxNSwxMSBAQAogICAgICAgICByZXR1cm4gImlu
dCI7CiAgICAgfQogCisgICAgIyBGSVhNRTogR2V0TmF0aXZlVHlwZSBzaG91bGQgc3VwcG9ydCBB
dG9taWMgZXh0ZW5zaW9uLgorICAgIGlmICgkdHlwZSBlcSAiRE9NU3RyaW5nIiBhbmQgKCRzaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBdG9taWMifSBvciAkc2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9KSkgeworICAgICAgICByZXR1cm4gImNvbnN0IEF0
b21pY1N0cmluZyYiOworICAgIH0KKwogICAgIHJldHVybiBHZXROYXRpdmVUeXBlKCR0eXBlKTsK
IH0KIApAQCAtMzQyNiw2ICszNDMxLDEzIEBACiAgICAgcmV0dXJuIGV4aXN0cyAkbmF0aXZlVHlw
ZXskdHlwZX07CiB9CiAKK3N1YiB0cmVhdHNOdWxsQW5kVW5kZWZpbmVkQXNOdWxsCit7CisgICAg
bXkgJHNpZ25hdHVyZSA9IHNoaWZ0OworICAgIG15ICRhdHRyaWJ1dGVzID0gJHNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzOworICAgIHJldHVybiAkYXR0cmlidXRlcy0+eyJUcmVhdE51bGxB
cyJ9IGFuZCAkYXR0cmlidXRlcy0+eyJUcmVhdE51bGxBcyJ9IGVxICJOdWxsU3RyaW5nIiBhbmQg
JGF0dHJpYnV0ZXMtPnsiVHJlYXRVbmRlZmluZWRBcyJ9IGFuZCAkYXR0cmlidXRlcy0+eyJUcmVh
dFVuZGVmaW5lZEFzIn0gZXEgIk51bGxTdHJpbmciOworfQorCiBzdWIgSlNWYWx1ZVRvTmF0aXZl
CiB7CiAgICAgbXkgJHNpZ25hdHVyZSA9IHNoaWZ0OwpAQCAtMzQ1MCwxMiArMzQ2MiwyMiBAQAog
ICAgIGlmICgkdHlwZSBlcSAiRE9NU3RyaW5nIikgewogICAgICAgICAjIEZJWE1FOiBUaGlzIGlt
cGxlbWVudHMgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGFuZCBbVHJlYXRVbmRlZmluZWRBcz1O
dWxsU3RyaW5nXSwKICAgICAgICAgIyBidXQgdGhlIFdlYiBJREwgc3BlYyByZXF1aXJlcyBbVHJl
YXROdWxsQXM9RW1wdHlTdHJpbmddIGFuZCBbVHJlYXRVbmRlZmluZWRBcz1FbXB0eVN0cmluZ10u
Ci0gICAgICAgIGlmICgoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRyZWF0TnVs
bEFzIn0gYW5kICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdE51bGxBcyJ9
IGVxICJOdWxsU3RyaW5nIikgYW5kICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
VHJlYXRVbmRlZmluZWRBcyJ9IGFuZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
VHJlYXRVbmRlZmluZWRBcyJ9IGVxICJOdWxsU3RyaW5nIikpIHsKLSAgICAgICAgICAgIHJldHVy
biAidmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayhleGVjLCAkdmFsdWUpIgor
ICAgICAgICBpZiAodHJlYXRzTnVsbEFuZFVuZGVmaW5lZEFzTnVsbCgkc2lnbmF0dXJlKSkgewor
ICAgICAgICAgICAgaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBdG9taWMi
fSkgeworICAgICAgICAgICAgICAgIHJldHVybiAidmFsdWVUb0F0b21pY1N0cmluZ1dpdGhVbmRl
ZmluZWRPck51bGxDaGVjayhleGVjLCAkdmFsdWUpIgorICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gInZhbHVlVG9TdHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hl
Y2soZXhlYywgJHZhbHVlKSIKKyAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBpZiAo
KCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdE51bGxBcyJ9IGFuZCAkc2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXROdWxsQXMifSBlcSAiTnVsbFN0cmlu
ZyIpIG9yICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In0pIHsKKyAg
ICAgICAgaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In0pIHsK
KyAgICAgICAgICAgIHJldHVybiAidmFsdWVUb0F0b21pY1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhl
YywgJHZhbHVlKSIKKyAgICAgICAgfQorICAgICAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlRyZWF0TnVsbEFzIn0gYW5kICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJUcmVhdE51bGxBcyJ9IGVxICJOdWxsU3RyaW5nIikgewogICAgICAgICAgICAgcmV0
dXJuICJ2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCAkdmFsdWUpIgogICAgICAgICB9
CisgICAgICAgIGlmICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQXRvbWljIn0p
IHsKKyAgICAgICAgICAgIHJldHVybiAiJHZhbHVlLmlzRW1wdHkoKSA/IG51bGxBdG9tIDogJHZh
bHVlLnRvQXRvbWljU3RyaW5nKGV4ZWMpIjsKKyAgICAgICAgfQogICAgICAgICAjIEZJWE1FOiBB
ZGQgdGhlIGNhc2UgZm9yICdpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRy
ZWF0VW5kZWZpbmVkQXMifSBhbmQgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRy
ZWF0VW5kZWZpbmVkQXMifSBlcSAiTnVsbFN0cmluZyIpKScuCiAgICAgICAgIHJldHVybiAiJHZh
bHVlLmlzRW1wdHkoKSA/IFN0cmluZygpIDogJHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKSI7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExB
dHRyaWJ1dGVzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0lETEF0dHJpYnV0ZXMudHh0CShyZXZpc2lvbiAxNTEzMzApCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
OSw2ICsxOSw3IEBACiAjCiAKIEFjdGl2ZURPTU9iamVjdAorQXRvbWljCiBDUFBQdXJlSW50ZXJm
YWNlCiBDYWNoZWRBdHRyaWJ1dGUKIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHR8U2Ny
aXB0U3RhdGV8U2NyaXB0QXJndW1lbnRzfENhbGxTdGFjawpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHJldmlz
aW9uIDE1MTMzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjA3LDcgKzEyMDcsNyBAQAogICAgIFVO
VVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNU
ZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRl
c3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGNvbnN0IFN0cmluZyYgbmF0aXZlVmFs
dWUodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsKKyAgICBjb25zdCBB
dG9taWNTdHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVlVG9BdG9taWNTdHJpbmdXaXRoTnVsbENoZWNr
KGV4ZWMsIHZhbHVlKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICBy
ZXR1cm47CiAgICAgaW1wbC0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVj
dGVkc3RyaW5nYXR0ckF0dHIsIG5hdGl2ZVZhbHVlKTsKQEAgLTEyNTUsNyArMTI1NSw3IEBACiAg
ICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2Fz
dDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nh
c3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgY29uc3QgU3RyaW5nJiBuYXRp
dmVWYWx1ZSh2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOworICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgbmF0aXZlVmFsdWUodmFsdWVUb0F0b21pY1N0cmluZ1dpdGhOdWxs
Q2hlY2soZXhlYywgdmFsdWUpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAg
ICAgIHJldHVybjsKICAgICBpbXBsLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpy
ZWZsZWN0ZWR1cmxhdHRyQXR0ciwgbmF0aXZlVmFsdWUpOwpAQCAtMTI2Nyw3ICsxMjY3LDcgQEAK
ICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganND
YXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNf
Y2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBjb25zdCBTdHJpbmcmIG5h
dGl2ZVZhbHVlKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7CisgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBuYXRpdmVWYWx1ZSh2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aE51
bGxDaGVjayhleGVjLCB2YWx1ZSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIGltcGwtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OmN1c3RvbUNvbnRlbnRTdHJpbmdBdHRyQXR0ciwgbmF0aXZlVmFsdWUpOwpAQCAtMTMwMyw3ICsx
MzAzLDcgQEAKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwg
PSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBjb25zdCBT
dHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVl
KSk7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYXRpdmVWYWx1ZSh2YWx1ZVRvQXRvbWljU3Ry
aW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRp
b24oKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpI
VE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRVUkxBdHRyQXR0ciwgbmF0aXZlVmFsdWUpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmlkbAkocmV2aXNpb24gMTUxMzMwKQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMSArMjcsMTEgQEAKIAogICAg
IFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgdGFnTmFtZTsKIAotICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERP
TVN0cmluZyBnZXRBdHRyaWJ1dGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJp
bmcgbmFtZSk7Ci0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gdm9pZCBzZXRBdHRy
aWJ1dGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlv
bmFsIERPTVN0cmluZyB2YWx1ZSkKKyAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxs
XSBET01TdHJpbmcgZ2V0QXR0cmlidXRlKFtEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRp
b25hbCBET01TdHJpbmcgbmFtZSk7CisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10g
dm9pZCBzZXRBdHRyaWJ1dGUoW0RlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERP
TVN0cmluZyBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZh
dWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgdmFsdWUpCiAgICAgICAg
IHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlKFtEZWZhdWx0
PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOworICAgIHZvaWQgcmVtb3ZlQXR0
cmlidXRlKFtEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgbmFt
ZSk7CiAgICAgQXR0ciBnZXRBdHRyaWJ1dGVOb2RlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9u
YWwgRE9NU3RyaW5nIG5hbWUpOwogICAgIEF0dHIgc2V0QXR0cmlidXRlTm9kZShbRGVmYXVsdD1V
bmRlZmluZWRdIG9wdGlvbmFsIEF0dHIgbmV3QXR0cikKICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204126</attachid>
            <date>2013-06-09 17:36:03 -0700</date>
            <delta_ts>2013-06-09 17:37:30 -0700</delta_ts>
            <desc>Fixe the bug</desc>
            <filename>bug-117386-20130609173427.patch</filename>
            <type>text/plain</type>
            <size>17754</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUxMzYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDEzLTA2LTA5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IEpTU3RyaW5nIHNob3VsZCByZW1lbWJlciBBdG9taWNTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzM4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEpTVmFsdWU6OnRvQXRvbWljU3Ry
aW5nIGFuZCBKU1N0cmluZzo6YXRvbWljU3RyaW5nLiBUaGVzZSB0d28gZnVuY3Rpb25zIGFsbG93
IFdlYkNvcmUgdG8gdXBkYXRlCisgICAgICAgIEpTU3RyaW5nJ3MgbV92YWx1ZSB0byBzZXQgaXNB
dG9taWMgZmxhZyBhbmQgYXZvaWQgdGhlIEF0b21pY1N0cmluZ1RhYmxlIGxvb2t1cHMgaW4gc3Vi
c2VxdWVudCBhdHRlbXB0cworICAgICAgICB0byBvYnRhaW4gdGhlIEF0b21pY1N0cmluZyBvZiB0
aGUgc2FtZSB2YWx1ZS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OmF0b21pY1N0
cmluZyk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvQXRvbWljU3RyaW5nKToKKwogMjAxMy0w
Ni0wNiAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3Ag
Y29weWluZyBBQVMgYmluYXJpZXMgaW50byBidWlsZCBmb2xkZXIuCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCShyZXZpc2lvbiAxNTEzMzApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTIyMCw2ICsyMjAsNyBAQCBwdWJsaWM6CiAgICAgLy8gYmVlbiBzZXQgaW4gdGhlIEV4ZWNT
dGF0ZSBhbHJlYWR5LgogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKICAg
ICBKU1N0cmluZyogdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CisgICAgQXRvbWljU3RyaW5n
IHRvQXRvbWljU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIFdURjo6U3RyaW5nIHRvV1RG
U3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIFdURjo6U3RyaW5nIHRvV1RGU3RyaW5nSW5s
aW5lKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUq
KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAko
cmV2aXNpb24gMTUxMzMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJp
bmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDYgKzEzOSw3IEBAIHB1YmxpYzoKICAgICBjb25z
dCBTdHJpbmcmIHZhbHVlKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIGNvbnN0IFN0cmluZyYgdHJ5
R2V0VmFsdWUoKSBjb25zdDsKICAgICB1bnNpZ25lZCBsZW5ndGgoKSB7IHJldHVybiBtX2xlbmd0
aDsgfQorICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CiAK
ICAgICBKU1ZhbHVlIHRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5
cGUpIGNvbnN0OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgdG9Cb29sZWFuKCkgY29uc3Q7
CkBAIC0zNzEsNiArMzcyLDE2IEBAIGlubGluZSBjb25zdCBTdHJpbmcmIEpTU3RyaW5nOjp2YWx1
ZShFeGUKICAgICByZXR1cm4gbV92YWx1ZTsKIH0KIAoraW5saW5lIEF0b21pY1N0cmluZyBKU1N0
cmluZzo6YXRvbWljU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBpZiAoaXNS
b3BlKCkpCisgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IEpTUm9wZVN0cmluZyo+KHRoaXMpLT5y
ZXNvbHZlUm9wZShleGVjKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcgYXRvbWljVmFsdWUobV92
YWx1ZSk7CisgICAgaWYgKGF0b21pY1ZhbHVlLmltcGwoKSAhPSBtX3ZhbHVlLmltcGwoKSkKKyAg
ICAgICAgbV92YWx1ZSA9IGF0b21pY1ZhbHVlOworICAgIHJldHVybiBhdG9taWNWYWx1ZTsKK30K
KwogaW5saW5lIGNvbnN0IFN0cmluZyYgSlNTdHJpbmc6OnRyeUdldFZhbHVlKCkgY29uc3QKIHsK
ICAgICBpZiAoaXNSb3BlKCkpCkBAIC01MTYsNiArNTI3LDEzIEBAIGlubGluZSBKU1N0cmluZyog
SlNWYWx1ZTo6dG9TdHJpbmcoRXhlY1MKICAgICByZXR1cm4gdG9TdHJpbmdTbG93Q2FzZShleGVj
KTsKIH0KIAoraW5saW5lIEF0b21pY1N0cmluZyBKU1ZhbHVlOjp0b0F0b21pY1N0cmluZyhFeGVj
U3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYgKGlzU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biBqc0Nhc3Q8SlNTdHJpbmcqPihhc0NlbGwoKSktPmF0b21pY1N0cmluZyhleGVjKTsKKyAgICBy
ZXR1cm4gdG9TdHJpbmdTbG93Q2FzZShleGVjKS0+dmFsdWUoZXhlYyk7Cit9CisKIGlubGluZSBT
dHJpbmcgSlNWYWx1ZTo6dG9XVEZTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewogICAg
IGlmIChpc1N0cmluZygpKQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUxMzYwKQorKysgU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIw
MTMtMDYtMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSlNT
dHJpbmcgc2hvdWxkIHJlbWVtYmVyIEF0b21pY1N0cmluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3Mzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgIkF0b21pYyIgYXR0cmlidXRlIGFzIGEg
V2ViS2l0IGV4dGVuc2lvbiB0byBXZWJJREwsIGFuZCBkZXBsb3llZCBpdCBpbiBFbGVtZW50Lmlk
bCBzbyB0aGF0IHRoZSBiaW5kaW5nIGNvZGUKKyAgICAgICAgY2FuIHVzZSBuZXdseSBhZGRlZCBK
U1ZhbHVlOjp0b0F0b21pYyB0byB1cGRhdGUgSlNTdHJpbmcncyBtX3ZhbHVlLgorCisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVl
VG9BdG9taWNTdHJpbmdXaXRoTnVsbENoZWNrKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp2
YWx1ZVRvQXRvbWljU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKTogQWRkZWQuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKworICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2V0TmF0aXZlVHlwZUZyb21T
aWduYXR1cmUpOiBSZXR1cm4gY29uc3QgQXRvbWljU3RyaW5nJiB3aGVuIGVpdGhlciBBdG9taWMg
YXR0cmlidXRlIGlzIHNwZWNpZmllZCBvciB0aGUgdHlwZSBpcworICAgICAgICBSZWZsZWN0LiBO
b3RlIHRoYXQgc2V0QXR0cmlidXRlIGFuZCBnZXRBdHRyaWJ1dGUgYm90aCB1c2UgQXRvbWljU3Ry
aW5nIGZvciBhbGwgYXJndW1lbnRzLgorICAgICAgICAoSlNWYWx1ZVRvTmF0aXZlKTogVXNlIEF0
b21pY1N0cmluZyBlcXVpdmFsZW50cyB3aGVuIHBvc3NpYmxlIHdoZW4gY29udmVydGluZyBET01T
dHJpbmcgdG8gYSBXZWJDb3JlIG9iamVjdC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
SURMQXR0cmlidXRlcy50eHQ6IEFkZGVkICJBdG9taWMiIGF0dHJpYnV0ZS4KKworICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOiBCYXNlbGluZWQgdGVzdCBj
YXNlcy4KKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIp
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKToKKworICAg
ICAgICAqIGRvbS9FbGVtZW50LmlkbDoKKwogMjAxMy0wNi0wOSAgUm9nZXIgRm9uZyAgPHJvZ2Vy
X2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dCBpbmZvIHNob3VsZCBuZXZlciBiZSBj
bGVhcmVkIGJlZm9yZSBkZWxheWVkIHNjcm9sbCBpbmZvcm1hdGlvbiB1cGRhdGVzLgpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAx
NTEzMzApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDgsNiArMTA4LDEzIEBAIFN0cmluZyB2YWx1ZVRvU3RyaW5nV2l0
aE51bGxDaGVjayhFeGVjU3QKICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVl
KGV4ZWMpOwogfQogCitBdG9taWNTdHJpbmcgdmFsdWVUb0F0b21pY1N0cmluZ1dpdGhOdWxsQ2hl
Y2soRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc051
bGwoKSkKKyAgICAgICAgcmV0dXJuIG51bGxBdG9tOworICAgIHJldHVybiB2YWx1ZS50b0F0b21p
Y1N0cmluZyhleGVjKTsKK30KKwogU3RyaW5nIHZhbHVlVG9TdHJpbmdXaXRoVW5kZWZpbmVkT3JO
dWxsQ2hlY2soRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1
ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQpAQCAtMTE1LDYgKzEyMiwxMyBAQCBTdHJpbmcgdmFsdWVU
b1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDCiAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKGV4
ZWMpLT52YWx1ZShleGVjKTsKIH0KIAorQXRvbWljU3RyaW5nIHZhbHVlVG9BdG9taWNTdHJpbmdX
aXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQor
eworICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQorICAgICAgICByZXR1cm4gbnVs
bEF0b207CisgICAgcmV0dXJuIHZhbHVlLnRvQXRvbWljU3RyaW5nKGV4ZWMpOworfQorCiBKU1Zh
bHVlIGpzRGF0ZU9yTnVsbChFeGVjU3RhdGUqIGV4ZWMsIGRvdWJsZSB2YWx1ZSkKIHsKICAgICBp
ZiAoIXN0ZDo6aXNmaW5pdGUodmFsdWUpKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgJKHJldmlzaW9uIDE1MTMzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDksNyArMjQ5LDEw
IEBAIGNsYXNzIERPTVN0cmluZ0xpc3Q7CiAgICAgQXRvbWljU3RyaW5nSW1wbCogZmluZEF0b21p
Y1N0cmluZyhKU0M6OlByb3BlcnR5TmFtZSk7CiAKICAgICBTdHJpbmcgdmFsdWVUb1N0cmluZ1dp
dGhOdWxsQ2hlY2soSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOyAvLyBudWxsIGlmIHRo
ZSB2YWx1ZSBpcyBudWxsCisgICAgQXRvbWljU3RyaW5nIHZhbHVlVG9BdG9taWNTdHJpbmdXaXRo
TnVsbENoZWNrKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTsKKwogICAgIFN0cmluZyB2
YWx1ZVRvU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlKTsgLy8gbnVsbCBpZiB0aGUgdmFsdWUgaXMgbnVsbCBvciB1bmRlZmluZWQKKyAg
ICBBdG9taWNTdHJpbmcgdmFsdWVUb0F0b21pY1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVj
ayhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7CiAKICAgICBpbmxpbmUgaW50MzJfdCBm
aW5pdGVJbnQzMlZhbHVlKEpTQzo6SlNWYWx1ZSB2YWx1ZSwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IGJvb2wmIG9rYXkpCiAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDE1MTMzMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNv
cHkpCkBAIC0zMzE1LDYgKzMzMTUsMTEgQEAgc3ViIEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJl
CiAgICAgICAgIHJldHVybiAiaW50IjsKICAgICB9CiAKKyAgICAjIEZJWE1FOiBHZXROYXRpdmVU
eXBlIHNob3VsZCBzdXBwb3J0IEF0b21pYyBleHRlbnNpb24uCisgICAgaWYgKCR0eXBlIGVxICJE
T01TdHJpbmciIGFuZCAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkF0b21pYyJ9
IG9yICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In0pKSB7CisgICAg
ICAgIHJldHVybiAiY29uc3QgQXRvbWljU3RyaW5nJiI7CisgICAgfQorCiAgICAgcmV0dXJuIEdl
dE5hdGl2ZVR5cGUoJHR5cGUpOwogfQogCkBAIC0zNDUwLDExICszNDU1LDIyIEBAIHN1YiBKU1Zh
bHVlVG9OYXRpdmUKICAgICBpZiAoJHR5cGUgZXEgIkRPTVN0cmluZyIpIHsKICAgICAgICAgIyBG
SVhNRTogVGhpcyBpbXBsZW1lbnRzIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhbmQgW1RyZWF0
VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10sCiAgICAgICAgICMgYnV0IHRoZSBXZWIgSURMIHNwZWMg
cmVxdWlyZXMgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBhbmQgW1RyZWF0VW5kZWZpbmVkQXM9
RW1wdHlTdHJpbmddLgotICAgICAgICBpZiAoKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJUcmVhdE51bGxBcyJ9IGFuZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
VHJlYXROdWxsQXMifSBlcSAiTnVsbFN0cmluZyIpIGFuZCAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlRyZWF0VW5kZWZpbmVkQXMifSBhbmQgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlRyZWF0VW5kZWZpbmVkQXMifSBlcSAiTnVsbFN0cmluZyIpKSB7Ci0gICAg
ICAgICAgICByZXR1cm4gInZhbHVlVG9TdHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soZXhl
YywgJHZhbHVlKSIKKyAgICAgICAgaWYgKCgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiVHJlYXROdWxsQXMifSBhbmQgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRy
ZWF0TnVsbEFzIn0gZXEgIk51bGxTdHJpbmciKQorICAgICAgICAgICAgYW5kICgkc2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXRVbmRlZmluZWRBcyJ9IGFuZCAkc2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXRVbmRlZmluZWRBcyJ9IGVxICJOdWxsU3RyaW5n
IikpIHsKKyAgICAgICAgICAgIGlmICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
QXRvbWljIn0pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gInZhbHVlVG9TdHJpbmdXaXRoVW5k
ZWZpbmVkT3JOdWxsQ2hlY2soZXhlYywgJHZhbHVlKSI7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgIHJldHVybiAidmFsdWVUb0F0b21pY1N0cmluZ1dpdGhVbmRlZmluZWRP
ck51bGxDaGVjayhleGVjLCAkdmFsdWUpIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifSkgewor
ICAgICAgICAgICAgcmV0dXJuICJ2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aE51bGxDaGVjayhleGVj
LCAkdmFsdWUpIjsKKyAgICAgICAgfQorICAgICAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlRyZWF0TnVsbEFzIn0gYW5kICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJUcmVhdE51bGxBcyJ9IGVxICJOdWxsU3RyaW5nIikgeworICAgICAgICAgICAgcmV0
dXJuICJ2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCAkdmFsdWUpIjsKICAgICAgICAg
fQotICAgICAgICBpZiAoKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdE51
bGxBcyJ9IGFuZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXROdWxsQXMi
fSBlcSAiTnVsbFN0cmluZyIpIG9yICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJS
ZWZsZWN0In0pIHsKLSAgICAgICAgICAgIHJldHVybiAidmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hl
Y2soZXhlYywgJHZhbHVlKSIKKyAgICAgICAgaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJBdG9taWMifSkgeworICAgICAgICAgICAgcmV0dXJuICIkdmFsdWUuaXNFbXB0eSgp
ID8gbnVsbEF0b20gOiAkdmFsdWUudG9BdG9taWNTdHJpbmcoZXhlYykiOwogICAgICAgICB9CiAg
ICAgICAgICMgRklYTUU6IEFkZCB0aGUgY2FzZSBmb3IgJ2lmICgkc2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiVHJlYXRVbmRlZmluZWRBcyJ9IGFuZCAkc2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiVHJlYXRVbmRlZmluZWRBcyJ9IGVxICJOdWxsU3RyaW5nIikpJy4KICAg
ICAgICAgcmV0dXJuICIkdmFsdWUuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiAkdmFsdWUudG9TdHJp
bmcoZXhlYyktPnZhbHVlKGV4ZWMpIjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvSURMQXR0cmlidXRlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAkocmV2aXNpb24gMTUxMzMwKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMTksNiArMTksNyBAQAogIwogCiBBY3RpdmVET01PYmplY3QKK0F0b21pYwogQ1BQ
UHVyZUludGVyZmFjZQogQ2FjaGVkQXR0cmlidXRlCiBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25D
b250ZXh0fFNjcmlwdFN0YXRlfFNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2sKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCShyZXZpc2lvbiAxNTEzMzApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIwNyw3ICsxMjA3LDcg
QEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEV4ZQogICAgIFVOVVNFRF9Q
QVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2Jq
Kj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoq
PihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGNvbnN0IFN0cmluZyYgbmF0aXZlVmFsdWUodmFs
dWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsKKyAgICBjb25zdCBBdG9taWNT
dHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVlVG9BdG9taWNTdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMs
IHZhbHVlKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm47
CiAgICAgaW1wbC0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkc3Ry
aW5nYXR0ckF0dHIsIG5hdGl2ZVZhbHVlKTsKQEAgLTEyNTUsNyArMTI1NSw3IEBAIHZvaWQgc2V0
SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihFeGVjU3QKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmpl
Y3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKLSAgICBjb25zdCBTdHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVlVG9TdHJpbmdX
aXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYXRp
dmVWYWx1ZSh2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOwog
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwt
PnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHVybGF0dHJBdHRyLCBu
YXRpdmVWYWx1ZSk7CkBAIC0xMjY3LDcgKzEyNjcsNyBAQCB2b2lkIHNldEpTVGVzdE9ialJlZmxl
Y3RlZFN0cmluZ0F0dHIoRXhlCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0
T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0g
ICAgY29uc3QgU3RyaW5nJiBuYXRpdmVWYWx1ZSh2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhl
eGVjLCB2YWx1ZSkpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmF0aXZlVmFsdWUodmFsdWVU
b0F0b21pY1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsKICAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLT5zZXRBdHRyaWJ1dGUo
V2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50U3RyaW5nQXR0ckF0dHIsIG5hdGl2ZVZh
bHVlKTsKQEAgLTEzMDMsNyArMTMwMyw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3Vz
dG9tVVJMQXR0cigKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGlt
cGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBjb25z
dCBTdHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZh
bHVlKSk7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYXRpdmVWYWx1ZSh2YWx1ZVRvQXRvbWlj
U3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwtPnNldEF0dHJpYnV0ZShXZWJDb3Jl
OjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRVUkxBdHRyQXR0ciwgbmF0aXZlVmFsdWUpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmlkbAkocmV2aXNpb24gMTUxMzMwKQorKysgU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxNyArMjcsMTcgQEAKIAog
ICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgdGFnTmFtZTsKIAotICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxd
IERPTVN0cmluZyBnZXRBdHRyaWJ1dGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01T
dHJpbmcgbmFtZSk7Ci0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gdm9pZCBzZXRB
dHRyaWJ1dGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9w
dGlvbmFsIERPTVN0cmluZyB2YWx1ZSkKKyAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1O
dWxsXSBET01TdHJpbmcgZ2V0QXR0cmlidXRlKFtEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBv
cHRpb25hbCBET01TdHJpbmcgbmFtZSk7CisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVy
c10gdm9pZCBzZXRBdHRyaWJ1dGUoW0RlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFs
IERPTVN0cmluZyBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtE
ZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgdmFsdWUpCiAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlKFtEZWZh
dWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOwotICAgIEF0dHIgZ2V0QXR0
cmlidXRlTm9kZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsK
KyAgICB2b2lkIHJlbW92ZUF0dHJpYnV0ZShbRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0
aW9uYWwgRE9NU3RyaW5nIG5hbWUpOworICAgIEF0dHIgZ2V0QXR0cmlidXRlTm9kZShbRGVmYXVs
dD1VbmRlZmluZWQsIEF0b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOwogICAgIEF0dHIg
c2V0QXR0cmlidXRlTm9kZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIEF0dHIgbmV3QXR0
cikKICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgQXR0ciByZW1vdmVBdHRyaWJ1
dGVOb2RlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgQXR0ciBvbGRBdHRyKQogICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFt
ZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKyAgICBOb2Rl
TGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZShbRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0
aW9uYWwgRE9NU3RyaW5nIG5hbWUpOwogCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZF
X0MpCiAgICAgLy8gRm9yIE9iakMgdGhpcyBpcyBkZWZpbmVkIG9uIE5vZGUgZm9yIGxlZ2FjeSBz
dXBwb3J0LgpAQCAtNDcsMjMgKzQ3LDIzIEBACiAKICAgICAvLyBET00gTGV2ZWwgMiBDb3JlCiAK
LSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBET01TdHJpbmcgZ2V0QXR0cmlidXRl
TlMoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERP
TVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10g
RE9NU3RyaW5nIGdldEF0dHJpYnV0ZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBEZWZhdWx0
PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmlu
ZWRdIG9wdGlvbmFsIERPTVN0cmluZyBsb2NhbE5hbWUpOwotICAgIFtPYmpDTGVnYWN5VW5uYW1l
ZFBhcmFtZXRlcnNdIHZvaWQgc2V0QXR0cmlidXRlTlMoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcs
RGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9w
dGlvbmFsIERPTVN0cmluZyBxdWFsaWZpZWROYW1lLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIHZh
bHVlKQotICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFt
ZWRQYXJhbWV0ZXJzXSB2b2lkIHJlbW92ZUF0dHJpYnV0ZU5TKFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRE9NU3RyaW5nIGxvY2FsTmFtZSk7Ci0gICAgW09iakNMZWdhY3lVbm5h
bWVkUGFyYW1ldGVyc10gTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWVOUyhbVHJlYXROdWxs
QXM9TnVsbFN0cmluZyxEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVz
cGFjZVVSSSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7Ci0g
ICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gQXR0ciBnZXRBdHRyaWJ1dGVOb2RlTlMo
W1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0
cmluZyBuYW1lc3BhY2VVUkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbG9jYWxOYW1lKTsK
KyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHNldEF0dHJpYnV0ZU5TKFtU
cmVhdE51bGxBcz1OdWxsU3RyaW5nLCBEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25h
bCBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBx
dWFsaWZpZWROYW1lLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtE
ZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgdmFsdWUpCisgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRl
cnNdIHZvaWQgcmVtb3ZlQXR0cmlidXRlTlMoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIEF0b21p
Y10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtBdG9taWNdIERPTVN0cmluZyBsb2NhbE5hbWUpOworICAgIFtPYmpDTGVn
YWN5VW5uYW1lZFBhcmFtZXRlcnNdIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lTlMoW1Ry
ZWF0TnVsbEFzPU51bGxTdHJpbmcsIERlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFs
IERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0aW9uYWwg
RE9NU3RyaW5nIGxvY2FsTmFtZSk7CisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10g
QXR0ciBnZXRBdHRyaWJ1dGVOb2RlTlMoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIERlZmF1bHQ9
VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVk
LCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBsb2NhbE5hbWUpOwogICAgIEF0dHIgc2V0QXR0
cmlidXRlTm9kZU5TKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgQXR0ciBuZXdBdHRyKQog
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICBib29sZWFuIGhhc0F0dHJpYnV0ZShE
T01TdHJpbmcgbmFtZSk7Ci0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gYm9vbGVh
biBoYXNBdHRyaWJ1dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxEZWZhdWx0PVVuZGVmaW5l
ZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3Ry
aW5nIGxvY2FsTmFtZSk7CisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gYm9vbGVh
biBoYXNBdHRyaWJ1dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgRGVmYXVsdD1VbmRlZmlu
ZWQsIEF0b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWlj
XSBvcHRpb25hbCBET01TdHJpbmcgbG9jYWxOYW1lKTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCShyZXZp
c2lvbiAxNTEzMzApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTEzMCwxMCArMTMwLDEwIEBACiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9DUFApIHx8
ICFMQU5HVUFHRV9DUFAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwgIUxB
TkdVQUdFX09CSkVDVElWRV9DCi0gICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyB0
eXBlLCAKKyAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoW0F0b21pY10gRE9NU3RyaW5nIHR5cGUs
IAogICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiB1c2VDYXB0dXJlKTsKLSAg
ICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIAorICAgIHZvaWQgcmVt
b3ZlRXZlbnRMaXN0ZW5lcihbQXRvbWljXSBET01TdHJpbmcgdHlwZSwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvcHRpb25hbCBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgIGJvb2xlYW4g
ZGlzcGF0Y2hFdmVudChFdmVudCBldmVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204127</attachid>
            <date>2013-06-09 17:37:33 -0700</date>
            <delta_ts>2013-06-09 18:00:50 -0700</delta_ts>
            <desc>Updated for ToT</desc>
            <filename>bug-117386-20130609173556.patch</filename>
            <type>text/plain</type>
            <size>12893</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUxMzYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDEzLTA2LTA5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IEpTU3RyaW5nIHNob3VsZCByZW1lbWJlciBBdG9taWNTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzM4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEpTVmFsdWU6OnRvQXRvbWljU3Ry
aW5nIGFuZCBKU1N0cmluZzo6YXRvbWljU3RyaW5nLiBUaGVzZSB0d28gZnVuY3Rpb25zIGFsbG93
IFdlYkNvcmUgdG8gdXBkYXRlCisgICAgICAgIEpTU3RyaW5nJ3MgbV92YWx1ZSB0byBzZXQgaXNB
dG9taWMgZmxhZyBhbmQgYXZvaWQgdGhlIEF0b21pY1N0cmluZ1RhYmxlIGxvb2t1cHMgaW4gc3Vi
c2VxdWVudCBhdHRlbXB0cworICAgICAgICB0byBvYnRhaW4gdGhlIEF0b21pY1N0cmluZyBvZiB0
aGUgc2FtZSB2YWx1ZS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OmF0b21pY1N0
cmluZyk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvQXRvbWljU3RyaW5nKToKKwogMjAxMy0w
Ni0wNiAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3Ag
Y29weWluZyBBQVMgYmluYXJpZXMgaW50byBidWlsZCBmb2xkZXIuCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCShyZXZpc2lvbiAxNTEzNjApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTIyMCw2ICsyMjAsNyBAQCBwdWJsaWM6CiAgICAgLy8gYmVlbiBzZXQgaW4gdGhlIEV4ZWNT
dGF0ZSBhbHJlYWR5LgogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKICAg
ICBKU1N0cmluZyogdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CisgICAgQXRvbWljU3RyaW5n
IHRvQXRvbWljU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIFdURjo6U3RyaW5nIHRvV1RG
U3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIFdURjo6U3RyaW5nIHRvV1RGU3RyaW5nSW5s
aW5lKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUq
KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAko
cmV2aXNpb24gMTUxMzYwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJp
bmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDYgKzEzOSw3IEBAIHB1YmxpYzoKICAgICBjb25z
dCBTdHJpbmcmIHZhbHVlKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIGNvbnN0IFN0cmluZyYgdHJ5
R2V0VmFsdWUoKSBjb25zdDsKICAgICB1bnNpZ25lZCBsZW5ndGgoKSB7IHJldHVybiBtX2xlbmd0
aDsgfQorICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CiAK
ICAgICBKU1ZhbHVlIHRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5
cGUpIGNvbnN0OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgdG9Cb29sZWFuKCkgY29uc3Q7
CkBAIC0zNzEsNiArMzcyLDE2IEBAIGlubGluZSBjb25zdCBTdHJpbmcmIEpTU3RyaW5nOjp2YWx1
ZShFeGUKICAgICByZXR1cm4gbV92YWx1ZTsKIH0KIAoraW5saW5lIEF0b21pY1N0cmluZyBKU1N0
cmluZzo6YXRvbWljU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBpZiAoaXNS
b3BlKCkpCisgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IEpTUm9wZVN0cmluZyo+KHRoaXMpLT5y
ZXNvbHZlUm9wZShleGVjKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcgYXRvbWljVmFsdWUobV92
YWx1ZSk7CisgICAgaWYgKGF0b21pY1ZhbHVlLmltcGwoKSAhPSBtX3ZhbHVlLmltcGwoKSkKKyAg
ICAgICAgbV92YWx1ZSA9IGF0b21pY1ZhbHVlOworICAgIHJldHVybiBhdG9taWNWYWx1ZTsKK30K
KwogaW5saW5lIGNvbnN0IFN0cmluZyYgSlNTdHJpbmc6OnRyeUdldFZhbHVlKCkgY29uc3QKIHsK
ICAgICBpZiAoaXNSb3BlKCkpCkBAIC01MTYsNiArNTI3LDEzIEBAIGlubGluZSBKU1N0cmluZyog
SlNWYWx1ZTo6dG9TdHJpbmcoRXhlY1MKICAgICByZXR1cm4gdG9TdHJpbmdTbG93Q2FzZShleGVj
KTsKIH0KIAoraW5saW5lIEF0b21pY1N0cmluZyBKU1ZhbHVlOjp0b0F0b21pY1N0cmluZyhFeGVj
U3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYgKGlzU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biBqc0Nhc3Q8SlNTdHJpbmcqPihhc0NlbGwoKSktPmF0b21pY1N0cmluZyhleGVjKTsKKyAgICBy
ZXR1cm4gdG9TdHJpbmdTbG93Q2FzZShleGVjKS0+dmFsdWUoZXhlYyk7Cit9CisKIGlubGluZSBT
dHJpbmcgSlNWYWx1ZTo6dG9XVEZTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewogICAg
IGlmIChpc1N0cmluZygpKQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUxMzYwKQorKysgU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIw
MTMtMDYtMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSlNT
dHJpbmcgc2hvdWxkIHJlbWVtYmVyIEF0b21pY1N0cmluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3Mzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgIkF0b21pYyIgYXR0cmlidXRlIGFzIGEg
V2ViS2l0IGV4dGVuc2lvbiB0byBXZWJJREwsIGFuZCBkZXBsb3llZCBpdCBpbiBFbGVtZW50Lmlk
bCBzbyB0aGF0IHRoZSBiaW5kaW5nIGNvZGUKKyAgICAgICAgY2FuIHVzZSBuZXdseSBhZGRlZCBK
U1ZhbHVlOjp0b0F0b21pYyB0byB1cGRhdGUgSlNTdHJpbmcncyBtX3ZhbHVlLgorCisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVl
VG9BdG9taWNTdHJpbmdXaXRoTnVsbENoZWNrKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp2
YWx1ZVRvQXRvbWljU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKTogQWRkZWQuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKworICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2V0TmF0aXZlVHlwZUZyb21T
aWduYXR1cmUpOiBSZXR1cm4gY29uc3QgQXRvbWljU3RyaW5nJiB3aGVuIGVpdGhlciBBdG9taWMg
YXR0cmlidXRlIGlzIHNwZWNpZmllZCBvciB0aGUgdHlwZSBpcworICAgICAgICBSZWZsZWN0LiBO
b3RlIHRoYXQgc2V0QXR0cmlidXRlIGFuZCBnZXRBdHRyaWJ1dGUgYm90aCB1c2UgQXRvbWljU3Ry
aW5nIGZvciBhbGwgYXJndW1lbnRzLgorICAgICAgICAoSlNWYWx1ZVRvTmF0aXZlKTogVXNlIEF0
b21pY1N0cmluZyBlcXVpdmFsZW50cyB3aGVuIHBvc3NpYmxlIHdoZW4gY29udmVydGluZyBET01T
dHJpbmcgdG8gYSBXZWJDb3JlIG9iamVjdC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
SURMQXR0cmlidXRlcy50eHQ6IEFkZGVkICJBdG9taWMiIGF0dHJpYnV0ZS4KKworICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOiBCYXNlbGluZWQgdGVzdCBj
YXNlcy4KKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIp
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKToKKworICAg
ICAgICAqIGRvbS9FbGVtZW50LmlkbDoKKwogMjAxMy0wNi0wOSAgUm9nZXIgRm9uZyAgPHJvZ2Vy
X2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dCBpbmZvIHNob3VsZCBuZXZlciBiZSBj
bGVhcmVkIGJlZm9yZSBkZWxheWVkIHNjcm9sbCBpbmZvcm1hdGlvbiB1cGRhdGVzLgpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAx
NTEzNjApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDgsNiArMTA4LDEzIEBAIFN0cmluZyB2YWx1ZVRvU3RyaW5nV2l0
aE51bGxDaGVjayhFeGVjU3QKICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVl
KGV4ZWMpOwogfQogCitBdG9taWNTdHJpbmcgdmFsdWVUb0F0b21pY1N0cmluZ1dpdGhOdWxsQ2hl
Y2soRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc051
bGwoKSkKKyAgICAgICAgcmV0dXJuIG51bGxBdG9tOworICAgIHJldHVybiB2YWx1ZS50b0F0b21p
Y1N0cmluZyhleGVjKTsKK30KKwogU3RyaW5nIHZhbHVlVG9TdHJpbmdXaXRoVW5kZWZpbmVkT3JO
dWxsQ2hlY2soRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1
ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQpAQCAtMTE1LDYgKzEyMiwxMyBAQCBTdHJpbmcgdmFsdWVU
b1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDCiAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKGV4
ZWMpLT52YWx1ZShleGVjKTsKIH0KIAorQXRvbWljU3RyaW5nIHZhbHVlVG9BdG9taWNTdHJpbmdX
aXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQor
eworICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQorICAgICAgICByZXR1cm4gbnVs
bEF0b207CisgICAgcmV0dXJuIHZhbHVlLnRvQXRvbWljU3RyaW5nKGV4ZWMpOworfQorCiBKU1Zh
bHVlIGpzRGF0ZU9yTnVsbChFeGVjU3RhdGUqIGV4ZWMsIGRvdWJsZSB2YWx1ZSkKIHsKICAgICBp
ZiAoIXN0ZDo6aXNmaW5pdGUodmFsdWUpKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgJKHJldmlzaW9uIDE1MTM2MCkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDksNyArMjQ5LDEw
IEBAIGNsYXNzIERPTVN0cmluZ0xpc3Q7CiAgICAgQXRvbWljU3RyaW5nSW1wbCogZmluZEF0b21p
Y1N0cmluZyhKU0M6OlByb3BlcnR5TmFtZSk7CiAKICAgICBTdHJpbmcgdmFsdWVUb1N0cmluZ1dp
dGhOdWxsQ2hlY2soSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOyAvLyBudWxsIGlmIHRo
ZSB2YWx1ZSBpcyBudWxsCisgICAgQXRvbWljU3RyaW5nIHZhbHVlVG9BdG9taWNTdHJpbmdXaXRo
TnVsbENoZWNrKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTsKKwogICAgIFN0cmluZyB2
YWx1ZVRvU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlKTsgLy8gbnVsbCBpZiB0aGUgdmFsdWUgaXMgbnVsbCBvciB1bmRlZmluZWQKKyAg
ICBBdG9taWNTdHJpbmcgdmFsdWVUb0F0b21pY1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVj
ayhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7CiAKICAgICBpbmxpbmUgaW50MzJfdCBm
aW5pdGVJbnQzMlZhbHVlKEpTQzo6SlNWYWx1ZSB2YWx1ZSwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IGJvb2wmIG9rYXkpCiAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDE1MTM2MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNv
cHkpCkBAIC0zMzEyLDYgKzMzMTIsMTEgQEAgc3ViIEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJl
CiAgICAgICAgIHJldHVybiAiaW50IjsKICAgICB9CiAKKyAgICAjIEZJWE1FOiBHZXROYXRpdmVU
eXBlIHNob3VsZCBzdXBwb3J0IEF0b21pYyBleHRlbnNpb24uCisgICAgaWYgKCR0eXBlIGVxICJE
T01TdHJpbmciIGFuZCAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkF0b21pYyJ9
IG9yICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In0pKSB7CisgICAg
ICAgIHJldHVybiAiY29uc3QgQXRvbWljU3RyaW5nJiI7CisgICAgfQorCiAgICAgcmV0dXJuIEdl
dE5hdGl2ZVR5cGUoJHR5cGUpOwogfQogCkBAIC0zNDQ3LDExICszNDUyLDIyIEBAIHN1YiBKU1Zh
bHVlVG9OYXRpdmUKICAgICBpZiAoJHR5cGUgZXEgIkRPTVN0cmluZyIpIHsKICAgICAgICAgIyBG
SVhNRTogVGhpcyBpbXBsZW1lbnRzIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhbmQgW1RyZWF0
VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10sCiAgICAgICAgICMgYnV0IHRoZSBXZWIgSURMIHNwZWMg
cmVxdWlyZXMgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBhbmQgW1RyZWF0VW5kZWZpbmVkQXM9
RW1wdHlTdHJpbmddLgotICAgICAgICBpZiAoKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJUcmVhdE51bGxBcyJ9IGFuZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
VHJlYXROdWxsQXMifSBlcSAiTnVsbFN0cmluZyIpIGFuZCAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlRyZWF0VW5kZWZpbmVkQXMifSBhbmQgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlRyZWF0VW5kZWZpbmVkQXMifSBlcSAiTnVsbFN0cmluZyIpKSB7Ci0gICAg
ICAgICAgICByZXR1cm4gInZhbHVlVG9TdHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soZXhl
YywgJHZhbHVlKSIKKyAgICAgICAgaWYgKCgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiVHJlYXROdWxsQXMifSBhbmQgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRy
ZWF0TnVsbEFzIn0gZXEgIk51bGxTdHJpbmciKQorICAgICAgICAgICAgYW5kICgkc2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXRVbmRlZmluZWRBcyJ9IGFuZCAkc2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXRVbmRlZmluZWRBcyJ9IGVxICJOdWxsU3RyaW5n
IikpIHsKKyAgICAgICAgICAgIGlmICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
QXRvbWljIn0pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gInZhbHVlVG9TdHJpbmdXaXRoVW5k
ZWZpbmVkT3JOdWxsQ2hlY2soZXhlYywgJHZhbHVlKSI7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgIHJldHVybiAidmFsdWVUb0F0b21pY1N0cmluZ1dpdGhVbmRlZmluZWRP
ck51bGxDaGVjayhleGVjLCAkdmFsdWUpIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifSkgewor
ICAgICAgICAgICAgcmV0dXJuICJ2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aE51bGxDaGVjayhleGVj
LCAkdmFsdWUpIjsKKyAgICAgICAgfQorICAgICAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlRyZWF0TnVsbEFzIn0gYW5kICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJUcmVhdE51bGxBcyJ9IGVxICJOdWxsU3RyaW5nIikgeworICAgICAgICAgICAgcmV0
dXJuICJ2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCAkdmFsdWUpIjsKICAgICAgICAg
fQotICAgICAgICBpZiAoKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdE51
bGxBcyJ9IGFuZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXROdWxsQXMi
fSBlcSAiTnVsbFN0cmluZyIpIG9yICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJS
ZWZsZWN0In0pIHsKLSAgICAgICAgICAgIHJldHVybiAidmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hl
Y2soZXhlYywgJHZhbHVlKSIKKyAgICAgICAgaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJBdG9taWMifSkgeworICAgICAgICAgICAgcmV0dXJuICIkdmFsdWUuaXNFbXB0eSgp
ID8gbnVsbEF0b20gOiAkdmFsdWUudG9BdG9taWNTdHJpbmcoZXhlYykiOwogICAgICAgICB9CiAg
ICAgICAgICMgRklYTUU6IEFkZCB0aGUgY2FzZSBmb3IgJ2lmICgkc2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiVHJlYXRVbmRlZmluZWRBcyJ9IGFuZCAkc2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiVHJlYXRVbmRlZmluZWRBcyJ9IGVxICJOdWxsU3RyaW5nIikpJy4KICAg
ICAgICAgcmV0dXJuICIkdmFsdWUuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiAkdmFsdWUudG9TdHJp
bmcoZXhlYyktPnZhbHVlKGV4ZWMpIjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvSURMQXR0cmlidXRlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAkocmV2aXNpb24gMTUxMzYwKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMTksNiArMTksNyBAQAogIwogCiBBY3RpdmVET01PYmplY3QKK0F0b21pYwogQ1BQ
UHVyZUludGVyZmFjZQogQ2FjaGVkQXR0cmlidXRlCiBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25D
b250ZXh0fFNjcmlwdFN0YXRlfFNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2sKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCShyZXZpc2lvbiAxNTEzNjApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIwNyw3ICsxMjA3LDcg
QEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEV4ZQogICAgIFVOVVNFRF9Q
QVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2Jq
Kj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoq
PihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGNvbnN0IFN0cmluZyYgbmF0aXZlVmFsdWUodmFs
dWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsKKyAgICBjb25zdCBBdG9taWNT
dHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVlVG9BdG9taWNTdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMs
IHZhbHVlKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm47
CiAgICAgaW1wbC0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkc3Ry
aW5nYXR0ckF0dHIsIG5hdGl2ZVZhbHVlKTsKQEAgLTEyNTUsNyArMTI1NSw3IEBAIHZvaWQgc2V0
SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihFeGVjU3QKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmpl
Y3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKLSAgICBjb25zdCBTdHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVlVG9TdHJpbmdX
aXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYXRp
dmVWYWx1ZSh2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOwog
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwt
PnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHVybGF0dHJBdHRyLCBu
YXRpdmVWYWx1ZSk7CkBAIC0xMjY3LDcgKzEyNjcsNyBAQCB2b2lkIHNldEpTVGVzdE9ialJlZmxl
Y3RlZFN0cmluZ0F0dHIoRXhlCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0
T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0g
ICAgY29uc3QgU3RyaW5nJiBuYXRpdmVWYWx1ZSh2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhl
eGVjLCB2YWx1ZSkpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmF0aXZlVmFsdWUodmFsdWVU
b0F0b21pY1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsKICAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLT5zZXRBdHRyaWJ1dGUo
V2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50U3RyaW5nQXR0ckF0dHIsIG5hdGl2ZVZh
bHVlKTsKQEAgLTEzMDMsNyArMTMwMyw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3Vz
dG9tVVJMQXR0cigKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGlt
cGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBjb25z
dCBTdHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZh
bHVlKSk7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYXRpdmVWYWx1ZSh2YWx1ZVRvQXRvbWlj
U3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwtPnNldEF0dHJpYnV0ZShXZWJDb3Jl
OjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRVUkxBdHRyQXR0ciwgbmF0aXZlVmFsdWUpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmlkbAkocmV2aXNpb24gMTUxMzYwKQorKysgU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYsMTAgKzEyNiwxMCBAQAogCiAjaWYgIWRl
ZmluZWQoTEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCiAjaWYgIWRlZmluZWQoTEFOR1VB
R0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQwotICAgIHZvaWQgYWRkRXZl
bnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwgCisgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKFtB
dG9taWNdIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRM
aXN0ZW5lciBsaXN0ZW5lciwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIGJv
b2xlYW4gdXNlQ2FwdHVyZSk7Ci0gICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKERPTVN0cmlu
ZyB0eXBlLCAKKyAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoW0F0b21pY10gRE9NU3RyaW5n
IHR5cGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudExpc3RlbmVyIGxpc3Rl
bmVyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiB1c2VD
YXB0dXJlKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBib29sZWFuIGRpc3BhdGNoRXZlbnQoRXZl
bnQgZXZlbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204129</attachid>
            <date>2013-06-09 18:00:53 -0700</date>
            <delta_ts>2013-06-10 12:59:37 -0700</delta_ts>
            <desc>Add Element.idl changes</desc>
            <filename>bug-117386-20130609175917.patch</filename>
            <type>text/plain</type>
            <size>18371</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUxMzYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDEzLTA2LTA5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IEpTU3RyaW5nIHNob3VsZCByZW1lbWJlciBBdG9taWNTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzM4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEpTVmFsdWU6OnRvQXRvbWljU3Ry
aW5nIGFuZCBKU1N0cmluZzo6YXRvbWljU3RyaW5nLiBUaGVzZSB0d28gZnVuY3Rpb25zIGFsbG93
IFdlYkNvcmUgdG8gdXBkYXRlCisgICAgICAgIEpTU3RyaW5nJ3MgbV92YWx1ZSB0byBzZXQgaXNB
dG9taWMgZmxhZyBhbmQgYXZvaWQgdGhlIEF0b21pY1N0cmluZ1RhYmxlIGxvb2t1cHMgaW4gc3Vi
c2VxdWVudCBhdHRlbXB0cworICAgICAgICB0byBvYnRhaW4gdGhlIEF0b21pY1N0cmluZyBvZiB0
aGUgc2FtZSB2YWx1ZS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OmF0b21pY1N0
cmluZyk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvQXRvbWljU3RyaW5nKToKKwogMjAxMy0w
Ni0wNiAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3Ag
Y29weWluZyBBQVMgYmluYXJpZXMgaW50byBidWlsZCBmb2xkZXIuCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCShyZXZpc2lvbiAxNTEzNjApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTIyMCw2ICsyMjAsNyBAQCBwdWJsaWM6CiAgICAgLy8gYmVlbiBzZXQgaW4gdGhlIEV4ZWNT
dGF0ZSBhbHJlYWR5LgogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKICAg
ICBKU1N0cmluZyogdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CisgICAgQXRvbWljU3RyaW5n
IHRvQXRvbWljU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIFdURjo6U3RyaW5nIHRvV1RG
U3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIFdURjo6U3RyaW5nIHRvV1RGU3RyaW5nSW5s
aW5lKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUq
KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAko
cmV2aXNpb24gMTUxMzYwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJp
bmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDYgKzEzOSw3IEBAIHB1YmxpYzoKICAgICBjb25z
dCBTdHJpbmcmIHZhbHVlKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIGNvbnN0IFN0cmluZyYgdHJ5
R2V0VmFsdWUoKSBjb25zdDsKICAgICB1bnNpZ25lZCBsZW5ndGgoKSB7IHJldHVybiBtX2xlbmd0
aDsgfQorICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CiAK
ICAgICBKU1ZhbHVlIHRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5
cGUpIGNvbnN0OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgdG9Cb29sZWFuKCkgY29uc3Q7
CkBAIC0zNzEsNiArMzcyLDE2IEBAIGlubGluZSBjb25zdCBTdHJpbmcmIEpTU3RyaW5nOjp2YWx1
ZShFeGUKICAgICByZXR1cm4gbV92YWx1ZTsKIH0KIAoraW5saW5lIEF0b21pY1N0cmluZyBKU1N0
cmluZzo6YXRvbWljU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBpZiAoaXNS
b3BlKCkpCisgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IEpTUm9wZVN0cmluZyo+KHRoaXMpLT5y
ZXNvbHZlUm9wZShleGVjKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcgYXRvbWljVmFsdWUobV92
YWx1ZSk7CisgICAgaWYgKGF0b21pY1ZhbHVlLmltcGwoKSAhPSBtX3ZhbHVlLmltcGwoKSkKKyAg
ICAgICAgbV92YWx1ZSA9IGF0b21pY1ZhbHVlOworICAgIHJldHVybiBhdG9taWNWYWx1ZTsKK30K
KwogaW5saW5lIGNvbnN0IFN0cmluZyYgSlNTdHJpbmc6OnRyeUdldFZhbHVlKCkgY29uc3QKIHsK
ICAgICBpZiAoaXNSb3BlKCkpCkBAIC01MTYsNiArNTI3LDEzIEBAIGlubGluZSBKU1N0cmluZyog
SlNWYWx1ZTo6dG9TdHJpbmcoRXhlY1MKICAgICByZXR1cm4gdG9TdHJpbmdTbG93Q2FzZShleGVj
KTsKIH0KIAoraW5saW5lIEF0b21pY1N0cmluZyBKU1ZhbHVlOjp0b0F0b21pY1N0cmluZyhFeGVj
U3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYgKGlzU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biBqc0Nhc3Q8SlNTdHJpbmcqPihhc0NlbGwoKSktPmF0b21pY1N0cmluZyhleGVjKTsKKyAgICBy
ZXR1cm4gdG9TdHJpbmdTbG93Q2FzZShleGVjKS0+dmFsdWUoZXhlYyk7Cit9CisKIGlubGluZSBT
dHJpbmcgSlNWYWx1ZTo6dG9XVEZTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewogICAg
IGlmIChpc1N0cmluZygpKQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUxMzYwKQorKysgU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIw
MTMtMDYtMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSlNT
dHJpbmcgc2hvdWxkIHJlbWVtYmVyIEF0b21pY1N0cmluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3Mzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgIkF0b21pYyIgYXR0cmlidXRlIGFzIGEg
V2ViS2l0IGV4dGVuc2lvbiB0byBXZWJJREwsIGFuZCBkZXBsb3llZCBpdCBpbiBFbGVtZW50Lmlk
bCBhbmQgTm9kZS5pZGwgc28gdGhhdAorICAgICAgICB0aGUgYmluZGluZyBjb2RlIGNhbiB1c2Ug
bmV3bHkgYWRkZWQgSlNWYWx1ZTo6dG9BdG9taWMgdG8gdXBkYXRlIEpTU3RyaW5nJ3MgbV92YWx1
ZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aE51bGxDaGVjayk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6dmFsdWVUb0F0b21pY1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayk6
IEFkZGVkLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdldE5h
dGl2ZVR5cGVGcm9tU2lnbmF0dXJlKTogUmV0dXJuIGNvbnN0IEF0b21pY1N0cmluZyYgd2hlbiBl
aXRoZXIgQXRvbWljIGF0dHJpYnV0ZSBpcyBzcGVjaWZpZWQgb3IgdGhlIHR5cGUgaXMKKyAgICAg
ICAgUmVmbGVjdC4gTm90ZSB0aGF0IHNldEF0dHJpYnV0ZSBhbmQgZ2V0QXR0cmlidXRlIGJvdGgg
dXNlIEF0b21pY1N0cmluZyBmb3IgYWxsIGFyZ3VtZW50cy4KKyAgICAgICAgKEpTVmFsdWVUb05h
dGl2ZSk6IFVzZSBBdG9taWNTdHJpbmcgZXF1aXZhbGVudHMgd2hlbiBwb3NzaWJsZSB3aGVuIGNv
bnZlcnRpbmcgRE9NU3RyaW5nIHRvIGEgV2ViQ29yZSBvYmplY3QuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0OiBBZGRlZCAiQXRvbWljIiBhdHRyaWJ1dGUu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDogQmFz
ZWxpbmVkIHRlc3QgY2FzZXMuCisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRTdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxlY3RlZFVS
TEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJM
QXR0cik6CisKKyAgICAgICAgKiBkb20vRWxlbWVudC5pZGw6CisgICAgICAgICogZG9tL05vZGUu
aWRsOgorCiAyMDEzLTA2LTA5ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAK
ICAgICAgICAgTGF5b3V0IGluZm8gc2hvdWxkIG5ldmVyIGJlIGNsZWFyZWQgYmVmb3JlIGRlbGF5
ZWQgc2Nyb2xsIGluZm9ybWF0aW9uIHVwZGF0ZXMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDE1MTM2MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
OCw2ICsxMDgsMTMgQEAgU3RyaW5nIHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKEV4ZWNTdAog
ICAgIHJldHVybiB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiB9CiAKK0F0b21p
Y1N0cmluZyB2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aE51bGxDaGVjayhFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQorICAgICAgICByZXR1
cm4gbnVsbEF0b207CisgICAgcmV0dXJuIHZhbHVlLnRvQXRvbWljU3RyaW5nKGV4ZWMpOworfQor
CiBTdHJpbmcgdmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayhFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxs
KCkpCkBAIC0xMTUsNiArMTIyLDEzIEBAIFN0cmluZyB2YWx1ZVRvU3RyaW5nV2l0aFVuZGVmaW5l
ZE9yTnVsbEMKICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwog
fQogCitBdG9taWNTdHJpbmcgdmFsdWVUb0F0b21pY1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxD
aGVjayhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmlz
VW5kZWZpbmVkT3JOdWxsKCkpCisgICAgICAgIHJldHVybiBudWxsQXRvbTsKKyAgICByZXR1cm4g
dmFsdWUudG9BdG9taWNTdHJpbmcoZXhlYyk7Cit9CisKIEpTVmFsdWUganNEYXRlT3JOdWxsKEV4
ZWNTdGF0ZSogZXhlYywgZG91YmxlIHZhbHVlKQogewogICAgIGlmICghc3RkOjppc2Zpbml0ZSh2
YWx1ZSkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAko
cmV2aXNpb24gMTUxMzYwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0OSw3ICsyNDksMTAgQEAgY2xhc3MgRE9NU3RyaW5n
TGlzdDsKICAgICBBdG9taWNTdHJpbmdJbXBsKiBmaW5kQXRvbWljU3RyaW5nKEpTQzo6UHJvcGVy
dHlOYW1lKTsKIAogICAgIFN0cmluZyB2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7IC8vIG51bGwgaWYgdGhlIHZhbHVlIGlzIG51bGwKKyAg
ICBBdG9taWNTdHJpbmcgdmFsdWVUb0F0b21pY1N0cmluZ1dpdGhOdWxsQ2hlY2soSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTVmFsdWUpOworCiAgICAgU3RyaW5nIHZhbHVlVG9TdHJpbmdXaXRoVW5k
ZWZpbmVkT3JOdWxsQ2hlY2soSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOyAvLyBudWxs
IGlmIHRoZSB2YWx1ZSBpcyBudWxsIG9yIHVuZGVmaW5lZAorICAgIEF0b21pY1N0cmluZyB2YWx1
ZVRvQXRvbWljU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlKTsKIAogICAgIGlubGluZSBpbnQzMl90IGZpbml0ZUludDMyVmFsdWUoSlND
OjpKU1ZhbHVlIHZhbHVlLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgYm9vbCYgb2theSkKICAgICB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQkocmV2aXNpb24gMTUxMzYwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTMzMTIsNiArMzMx
MiwxMSBAQCBzdWIgR2V0TmF0aXZlVHlwZUZyb21TaWduYXR1cmUKICAgICAgICAgcmV0dXJuICJp
bnQiOwogICAgIH0KIAorICAgICMgRklYTUU6IEdldE5hdGl2ZVR5cGUgc2hvdWxkIHN1cHBvcnQg
QXRvbWljIGV4dGVuc2lvbi4KKyAgICBpZiAoJHR5cGUgZXEgIkRPTVN0cmluZyIgYW5kICgkc2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQXRvbWljIn0gb3IgJHNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifSkpIHsKKyAgICAgICAgcmV0dXJuICJjb25zdCBB
dG9taWNTdHJpbmcmIjsKKyAgICB9CisKICAgICByZXR1cm4gR2V0TmF0aXZlVHlwZSgkdHlwZSk7
CiB9CiAKQEAgLTM0NDcsMTEgKzM0NTIsMjIgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAgIGlm
ICgkdHlwZSBlcSAiRE9NU3RyaW5nIikgewogICAgICAgICAjIEZJWE1FOiBUaGlzIGltcGxlbWVu
dHMgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGFuZCBbVHJlYXRVbmRlZmluZWRBcz1OdWxsU3Ry
aW5nXSwKICAgICAgICAgIyBidXQgdGhlIFdlYiBJREwgc3BlYyByZXF1aXJlcyBbVHJlYXROdWxs
QXM9RW1wdHlTdHJpbmddIGFuZCBbVHJlYXRVbmRlZmluZWRBcz1FbXB0eVN0cmluZ10uCi0gICAg
ICAgIGlmICgoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRyZWF0TnVsbEFzIn0g
YW5kICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdE51bGxBcyJ9IGVxICJO
dWxsU3RyaW5nIikgYW5kICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXRV
bmRlZmluZWRBcyJ9IGFuZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXRV
bmRlZmluZWRBcyJ9IGVxICJOdWxsU3RyaW5nIikpIHsKLSAgICAgICAgICAgIHJldHVybiAidmFs
dWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayhleGVjLCAkdmFsdWUpIgorICAgICAg
ICBpZiAoKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdE51bGxBcyJ9IGFu
ZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXROdWxsQXMifSBlcSAiTnVs
bFN0cmluZyIpCisgICAgICAgICAgICBhbmQgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJUcmVhdFVuZGVmaW5lZEFzIn0gYW5kICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJUcmVhdFVuZGVmaW5lZEFzIn0gZXEgIk51bGxTdHJpbmciKSkgeworICAgICAgICAgICAg
aWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBdG9taWMifSkgeworICAgICAg
ICAgICAgICAgIHJldHVybiAidmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayhl
eGVjLCAkdmFsdWUpIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0
dXJuICJ2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKGV4ZWMsICR2
YWx1ZSkiOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICgkc2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9KSB7CisgICAgICAgICAgICByZXR1cm4g
InZhbHVlVG9BdG9taWNTdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsICR2YWx1ZSkiOworICAgICAg
ICB9CisgICAgICAgIGlmICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXRO
dWxsQXMifSBhbmQgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRyZWF0TnVsbEFz
In0gZXEgIk51bGxTdHJpbmciKSB7CisgICAgICAgICAgICByZXR1cm4gInZhbHVlVG9TdHJpbmdX
aXRoTnVsbENoZWNrKGV4ZWMsICR2YWx1ZSkiOwogICAgICAgICB9Ci0gICAgICAgIGlmICgoJHNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRyZWF0TnVsbEFzIn0gYW5kICRzaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdE51bGxBcyJ9IGVxICJOdWxsU3RyaW5nIikg
b3IgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifSkgewotICAgICAg
ICAgICAgcmV0dXJuICJ2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCAkdmFsdWUpIgor
ICAgICAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkF0b21pYyJ9KSB7
CisgICAgICAgICAgICByZXR1cm4gIiR2YWx1ZS5pc0VtcHR5KCkgPyBudWxsQXRvbSA6ICR2YWx1
ZS50b0F0b21pY1N0cmluZyhleGVjKSI7CiAgICAgICAgIH0KICAgICAgICAgIyBGSVhNRTogQWRk
IHRoZSBjYXNlIGZvciAnaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVh
dFVuZGVmaW5lZEFzIn0gYW5kICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVh
dFVuZGVmaW5lZEFzIn0gZXEgIk51bGxTdHJpbmciKSknLgogICAgICAgICByZXR1cm4gIiR2YWx1
ZS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6ICR2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhl
YykiOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0
dHJpYnV0ZXMudHh0CShyZXZpc2lvbiAxNTEzNjApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xOSw2ICsxOSw3
IEBACiAjCiAKIEFjdGl2ZURPTU9iamVjdAorQXRvbWljCiBDUFBQdXJlSW50ZXJmYWNlCiBDYWNo
ZWRBdHRyaWJ1dGUKIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHR8U2NyaXB0U3RhdGV8
U2NyaXB0QXJndW1lbnRzfENhbGxTdGFjawpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHJldmlzaW9uIDE1MTM2
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjA3LDcgKzEyMDcsNyBAQCB2b2lkIHNldEpTVGVzdE9i
alJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAg
ICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwo
KSk7Ci0gICAgY29uc3QgU3RyaW5nJiBuYXRpdmVWYWx1ZSh2YWx1ZVRvU3RyaW5nV2l0aE51bGxD
aGVjayhleGVjLCB2YWx1ZSkpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmF0aXZlVmFsdWUo
dmFsdWVUb0F0b21pY1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsKICAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLT5zZXRBdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRzdHJpbmdhdHRyQXR0ciwgbmF0aXZl
VmFsdWUpOwpAQCAtMTI1NSw3ICsxMjU1LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRV
UkxBdHRyKEV4ZWNTdAogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiog
aW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGNv
bnN0IFN0cmluZyYgbmF0aXZlVmFsdWUodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywg
dmFsdWUpKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVlVG9BdG9t
aWNTdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC0+c2V0QXR0cmlidXRlKFdlYkNv
cmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXJsYXR0ckF0dHIsIG5hdGl2ZVZhbHVlKTsKQEAgLTEy
NjcsNyArMTI2Nyw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGUK
ICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganND
YXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNf
Y2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBjb25zdCBTdHJpbmcmIG5h
dGl2ZVZhbHVlKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7CisgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBuYXRpdmVWYWx1ZSh2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aE51
bGxDaGVjayhleGVjLCB2YWx1ZSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIGltcGwtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OmN1c3RvbUNvbnRlbnRTdHJpbmdBdHRyQXR0ciwgbmF0aXZlVmFsdWUpOwpAQCAtMTMwMyw3ICsx
MzAzLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKAogICAgIFVO
VVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNU
ZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRl
c3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGNvbnN0IFN0cmluZyYgbmF0aXZlVmFs
dWUodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsKKyAgICBjb25zdCBB
dG9taWNTdHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVlVG9BdG9taWNTdHJpbmdXaXRoTnVsbENoZWNr
KGV4ZWMsIHZhbHVlKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICBy
ZXR1cm47CiAgICAgaW1wbC0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9t
Q29udGVudFVSTEF0dHJBdHRyLCBuYXRpdmVWYWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aWRsCShyZXZpc2lvbiAxNTEzNjApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDE0ICsyNywxNCBAQAogCiAgICAgW1RyZWF0UmV0dXJuZWRO
dWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0YWdOYW1lOwog
Ci0gICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nIGdldEF0dHJp
YnV0ZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKLSAgICBb
T2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0QXR0
cmlidXRlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRp
b25hbCBET01TdHJpbmcgdmFsdWUpOwotICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlKFtEZWZhdWx0
PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOwotICAgIEF0dHIgZ2V0QXR0cmli
dXRlTm9kZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKyAg
ICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgZ2V0QXR0cmlidXRl
KFtEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZSk7Cisg
ICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNl
dEF0dHJpYnV0ZShbRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0aW9uYWwgRE9NU3RyaW5n
IG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5k
ZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyB2YWx1ZSk7CisgICAgdm9pZCByZW1v
dmVBdHRyaWJ1dGUoW0RlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmlu
ZyBuYW1lKTsKKyAgICBBdHRyIGdldEF0dHJpYnV0ZU5vZGUoW0RlZmF1bHQ9VW5kZWZpbmVkLCBB
dG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBB
dHRyIHNldEF0dHJpYnV0ZU5vZGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBBdHRyIG5l
d0F0dHIpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIEF0dHIgcmVtb3ZlQXR0cmlidXRlTm9kZShb
RGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIEF0dHIgb2xkQXR0cik7Ci0gICAgTm9kZUxpc3Qg
Z2V0RWxlbWVudHNCeVRhZ05hbWUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJp
bmcgbmFtZSk7CisgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWUoW0RlZmF1bHQ9VW5k
ZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKIAogI2lmICFkZWZpbmVk
KExBTkdVQUdFX09CSkVDVElWRV9DKQogICAgIC8vIEZvciBPYmpDIHRoaXMgaXMgZGVmaW5lZCBv
biBOb2RlIGZvciBsZWdhY3kgc3VwcG9ydC4KQEAgLTQ0LDIxICs0NCwyMSBAQAogCiAgICAgLy8g
RE9NIExldmVsIDIgQ29yZQogCi0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gRE9N
U3RyaW5nIGdldEF0dHJpYnV0ZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLERlZmF1bHQ9VW5k
ZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFs
IERPTVN0cmluZyBsb2NhbE5hbWUpOwotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMs
IFJhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRBdHRyaWJ1dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0
cmluZyxEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVmaW5l
ZF0gb3B0aW9uYWwgRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJp
bmcgdmFsdWUpOwotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQgcmVtb3Zl
QXR0cmlidXRlTlMoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBuYW1lc3BhY2VV
UkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBET01TdHJpbmcg
bG9jYWxOYW1lKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBOb2RlTGlzdCBn
ZXRFbGVtZW50c0J5VGFnTmFtZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLERlZmF1bHQ9VW5k
ZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkXSBv
cHRpb25hbCBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJh
bWV0ZXJzXSBBdHRyIGdldEF0dHJpYnV0ZU5vZGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxE
ZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRd
IG9wdGlvbmFsIERPTVN0cmluZyBsb2NhbE5hbWUpOworICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBh
cmFtZXRlcnNdIERPTVN0cmluZyBnZXRBdHRyaWJ1dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmlu
ZywgRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVzcGFj
ZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1
bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBsb2NhbE5hbWUpOworICAg
IFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRB
dHRyaWJ1dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgRGVmYXVsdD1VbmRlZmluZWQsIEF0
b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25h
bCBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0aW9uYWwgRE9NU3RyaW5n
IHZhbHVlKTsKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHJlbW92ZUF0
dHJpYnV0ZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBBdG9taWNdIERPTVN0cmluZyBuYW1l
c3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQXRv
bWljXSBET01TdHJpbmcgbG9jYWxOYW1lKTsKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0
ZXJzXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nLCBEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNw
YWNlVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW0RlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBsb2NhbE5h
bWUpOworICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIEF0dHIgZ2V0QXR0cmlidXRl
Tm9kZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWlj
XSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25h
bCBET01TdHJpbmcgbG9jYWxOYW1lKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBBdHRyIHNldEF0
dHJpYnV0ZU5vZGVOUyhbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIEF0dHIgbmV3QXR0cik7
CiAgICAgYm9vbGVhbiBoYXNBdHRyaWJ1dGUoRE9NU3RyaW5nIG5hbWUpOwotICAgIFtPYmpDTGVn
YWN5VW5uYW1lZFBhcmFtZXRlcnNdIGJvb2xlYW4gaGFzQXR0cmlidXRlTlMoW1RyZWF0TnVsbEFz
PU51bGxTdHJpbmcsRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lc3Bh
Y2VVUkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVs
dD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBsb2NhbE5hbWUpOworICAgIFtPYmpDTGVn
YWN5VW5uYW1lZFBhcmFtZXRlcnNdIGJvb2xlYW4gaGFzQXR0cmlidXRlTlMoW1RyZWF0TnVsbEFz
PU51bGxTdHJpbmcsIERlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmlu
ZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIGxvY2FsTmFt
ZSk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJhdGlvbiBzdHlsZTsK
IApAQCAtOTksOCArOTksOCBAQAogI2VuZGlmCiAKICAgICAvLyBOb2RlU2VsZWN0b3IgLSBTZWxl
Y3RvciBBUEkKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSBFbGVtZW50IHF1ZXJ5U2VsZWN0b3IoRE9N
U3RyaW5nIHNlbGVjdG9ycyk7Ci0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gTm9kZUxpc3QgcXVlcnlT
ZWxlY3RvckFsbChET01TdHJpbmcgc2VsZWN0b3JzKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBF
bGVtZW50IHF1ZXJ5U2VsZWN0b3IoW0F0b21pY10gRE9NU3RyaW5nIHNlbGVjdG9ycyk7CisgICAg
W1JhaXNlc0V4Y2VwdGlvbl0gTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChbQXRvbWljXSBET01T
dHJpbmcgc2VsZWN0b3JzKTsKIAogICAgIC8vIFdlYktpdCBleHRlbnNpb24sIHBlbmRpbmcgc3Bl
Y2lmaWNhdGlvbi4KICAgICBbUmFpc2VzRXhjZXB0aW9uXSBib29sZWFuIHdlYmtpdE1hdGNoZXNT
ZWxlY3RvcihbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBzZWxlY3RvcnMp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbAkocmV2aXNpb24gMTUxMzYwKQorKysgU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYsMTAgKzEyNiwxMCBAQAogCiAj
aWYgIWRlZmluZWQoTEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCiAjaWYgIWRlZmluZWQo
TEFOR1VBR0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQwotICAgIHZvaWQg
YWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwgCisgICAgdm9pZCBhZGRFdmVudExpc3Rl
bmVyKFtBdG9taWNdIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
RXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7Ci0gICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKERP
TVN0cmluZyB0eXBlLCAKKyAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoW0F0b21pY10gRE9N
U3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudExpc3RlbmVy
IGxpc3RlbmVyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVh
biB1c2VDYXB0dXJlKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBib29sZWFuIGRpc3BhdGNoRXZl
bnQoRXZlbnQgZXZlbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204178</attachid>
            <date>2013-06-10 12:59:41 -0700</date>
            <delta_ts>2013-06-24 21:39:52 -0700</delta_ts>
            <desc>Fixed the roping issue</desc>
            <filename>bug-117386-20130610125803.patch</filename>
            <type>text/plain</type>
            <size>18428</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUxMzYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDEzLTA2LTA5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IEpTU3RyaW5nIHNob3VsZCByZW1lbWJlciBBdG9taWNTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzM4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEpTVmFsdWU6OnRvQXRvbWljU3Ry
aW5nIGFuZCBKU1N0cmluZzo6YXRvbWljU3RyaW5nLiBUaGVzZSB0d28gZnVuY3Rpb25zIGFsbG93
IFdlYkNvcmUgdG8gdXBkYXRlCisgICAgICAgIEpTU3RyaW5nJ3MgbV92YWx1ZSB0byBzZXQgaXNB
dG9taWMgZmxhZyBhbmQgYXZvaWQgdGhlIEF0b21pY1N0cmluZ1RhYmxlIGxvb2t1cHMgaW4gc3Vi
c2VxdWVudCBhdHRlbXB0cworICAgICAgICB0byBvYnRhaW4gdGhlIEF0b21pY1N0cmluZyBvZiB0
aGUgc2FtZSB2YWx1ZS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OmF0b21pY1N0
cmluZyk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvQXRvbWljU3RyaW5nKToKKwogMjAxMy0w
Ni0wNiAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3Ag
Y29weWluZyBBQVMgYmluYXJpZXMgaW50byBidWlsZCBmb2xkZXIuCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCShyZXZpc2lvbiAxNTEzNjApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTIyMCw2ICsyMjAsNyBAQCBwdWJsaWM6CiAgICAgLy8gYmVlbiBzZXQgaW4gdGhlIEV4ZWNT
dGF0ZSBhbHJlYWR5LgogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKICAg
ICBKU1N0cmluZyogdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CisgICAgQXRvbWljU3RyaW5n
IHRvQXRvbWljU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIFdURjo6U3RyaW5nIHRvV1RG
U3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIFdURjo6U3RyaW5nIHRvV1RGU3RyaW5nSW5s
aW5lKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUq
KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAko
cmV2aXNpb24gMTUxMzYwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJp
bmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDYgKzEzOSw3IEBAIHB1YmxpYzoKICAgICBjb25z
dCBTdHJpbmcmIHZhbHVlKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIGNvbnN0IFN0cmluZyYgdHJ5
R2V0VmFsdWUoKSBjb25zdDsKICAgICB1bnNpZ25lZCBsZW5ndGgoKSB7IHJldHVybiBtX2xlbmd0
aDsgfQorICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CiAK
ICAgICBKU1ZhbHVlIHRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5
cGUpIGNvbnN0OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgdG9Cb29sZWFuKCkgY29uc3Q7
CkBAIC0zNzEsNiArMzcyLDE4IEBAIGlubGluZSBjb25zdCBTdHJpbmcmIEpTU3RyaW5nOjp2YWx1
ZShFeGUKICAgICByZXR1cm4gbV92YWx1ZTsKIH0KIAoraW5saW5lIEF0b21pY1N0cmluZyBKU1N0
cmluZzo6YXRvbWljU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBpZiAoaXNS
b3BlKCkpCisgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IEpTUm9wZVN0cmluZyo+KHRoaXMpLT5y
ZXNvbHZlUm9wZShleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAg
IHJldHVybiBudWxsQXRvbTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcgYXRvbWljVmFsdWUobV92
YWx1ZSk7CisgICAgaWYgKGF0b21pY1ZhbHVlLmltcGwoKSAhPSBtX3ZhbHVlLmltcGwoKSkKKyAg
ICAgICAgbV92YWx1ZSA9IGF0b21pY1ZhbHVlOworICAgIHJldHVybiBhdG9taWNWYWx1ZTsKK30K
KwogaW5saW5lIGNvbnN0IFN0cmluZyYgSlNTdHJpbmc6OnRyeUdldFZhbHVlKCkgY29uc3QKIHsK
ICAgICBpZiAoaXNSb3BlKCkpCkBAIC01MTYsNiArNTI5LDEzIEBAIGlubGluZSBKU1N0cmluZyog
SlNWYWx1ZTo6dG9TdHJpbmcoRXhlY1MKICAgICByZXR1cm4gdG9TdHJpbmdTbG93Q2FzZShleGVj
KTsKIH0KIAoraW5saW5lIEF0b21pY1N0cmluZyBKU1ZhbHVlOjp0b0F0b21pY1N0cmluZyhFeGVj
U3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYgKGlzU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biBqc0Nhc3Q8SlNTdHJpbmcqPihhc0NlbGwoKSktPmF0b21pY1N0cmluZyhleGVjKTsKKyAgICBy
ZXR1cm4gdG9TdHJpbmdTbG93Q2FzZShleGVjKS0+dmFsdWUoZXhlYyk7Cit9CisKIGlubGluZSBT
dHJpbmcgSlNWYWx1ZTo6dG9XVEZTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewogICAg
IGlmIChpc1N0cmluZygpKQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUxMzYwKQorKysgU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIw
MTMtMDYtMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSlNT
dHJpbmcgc2hvdWxkIHJlbWVtYmVyIEF0b21pY1N0cmluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3Mzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgIkF0b21pYyIgYXR0cmlidXRlIGFzIGEg
V2ViS2l0IGV4dGVuc2lvbiB0byBXZWJJREwsIGFuZCBkZXBsb3llZCBpdCBpbiBFbGVtZW50Lmlk
bCBhbmQgTm9kZS5pZGwgc28gdGhhdAorICAgICAgICB0aGUgYmluZGluZyBjb2RlIGNhbiB1c2Ug
bmV3bHkgYWRkZWQgSlNWYWx1ZTo6dG9BdG9taWMgdG8gdXBkYXRlIEpTU3RyaW5nJ3MgbV92YWx1
ZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aE51bGxDaGVjayk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6dmFsdWVUb0F0b21pY1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayk6
IEFkZGVkLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdldE5h
dGl2ZVR5cGVGcm9tU2lnbmF0dXJlKTogUmV0dXJuIGNvbnN0IEF0b21pY1N0cmluZyYgd2hlbiBl
aXRoZXIgQXRvbWljIGF0dHJpYnV0ZSBpcyBzcGVjaWZpZWQgb3IgdGhlIHR5cGUgaXMKKyAgICAg
ICAgUmVmbGVjdC4gTm90ZSB0aGF0IHNldEF0dHJpYnV0ZSBhbmQgZ2V0QXR0cmlidXRlIGJvdGgg
dXNlIEF0b21pY1N0cmluZyBmb3IgYWxsIGFyZ3VtZW50cy4KKyAgICAgICAgKEpTVmFsdWVUb05h
dGl2ZSk6IFVzZSBBdG9taWNTdHJpbmcgZXF1aXZhbGVudHMgd2hlbiBwb3NzaWJsZSB3aGVuIGNv
bnZlcnRpbmcgRE9NU3RyaW5nIHRvIGEgV2ViQ29yZSBvYmplY3QuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0OiBBZGRlZCAiQXRvbWljIiBhdHRyaWJ1dGUu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDogQmFz
ZWxpbmVkIHRlc3QgY2FzZXMuCisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRTdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxlY3RlZFVS
TEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJM
QXR0cik6CisKKyAgICAgICAgKiBkb20vRWxlbWVudC5pZGw6CisgICAgICAgICogZG9tL05vZGUu
aWRsOgorCiAyMDEzLTA2LTA5ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAK
ICAgICAgICAgTGF5b3V0IGluZm8gc2hvdWxkIG5ldmVyIGJlIGNsZWFyZWQgYmVmb3JlIGRlbGF5
ZWQgc2Nyb2xsIGluZm9ybWF0aW9uIHVwZGF0ZXMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDE1MTM2MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
OCw2ICsxMDgsMTMgQEAgU3RyaW5nIHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKEV4ZWNTdAog
ICAgIHJldHVybiB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiB9CiAKK0F0b21p
Y1N0cmluZyB2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aE51bGxDaGVjayhFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQorICAgICAgICByZXR1
cm4gbnVsbEF0b207CisgICAgcmV0dXJuIHZhbHVlLnRvQXRvbWljU3RyaW5nKGV4ZWMpOworfQor
CiBTdHJpbmcgdmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayhFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxs
KCkpCkBAIC0xMTUsNiArMTIyLDEzIEBAIFN0cmluZyB2YWx1ZVRvU3RyaW5nV2l0aFVuZGVmaW5l
ZE9yTnVsbEMKICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwog
fQogCitBdG9taWNTdHJpbmcgdmFsdWVUb0F0b21pY1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxD
aGVjayhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmlz
VW5kZWZpbmVkT3JOdWxsKCkpCisgICAgICAgIHJldHVybiBudWxsQXRvbTsKKyAgICByZXR1cm4g
dmFsdWUudG9BdG9taWNTdHJpbmcoZXhlYyk7Cit9CisKIEpTVmFsdWUganNEYXRlT3JOdWxsKEV4
ZWNTdGF0ZSogZXhlYywgZG91YmxlIHZhbHVlKQogewogICAgIGlmICghc3RkOjppc2Zpbml0ZSh2
YWx1ZSkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAko
cmV2aXNpb24gMTUxMzYwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0OSw3ICsyNDksMTAgQEAgY2xhc3MgRE9NU3RyaW5n
TGlzdDsKICAgICBBdG9taWNTdHJpbmdJbXBsKiBmaW5kQXRvbWljU3RyaW5nKEpTQzo6UHJvcGVy
dHlOYW1lKTsKIAogICAgIFN0cmluZyB2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7IC8vIG51bGwgaWYgdGhlIHZhbHVlIGlzIG51bGwKKyAg
ICBBdG9taWNTdHJpbmcgdmFsdWVUb0F0b21pY1N0cmluZ1dpdGhOdWxsQ2hlY2soSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTVmFsdWUpOworCiAgICAgU3RyaW5nIHZhbHVlVG9TdHJpbmdXaXRoVW5k
ZWZpbmVkT3JOdWxsQ2hlY2soSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOyAvLyBudWxs
IGlmIHRoZSB2YWx1ZSBpcyBudWxsIG9yIHVuZGVmaW5lZAorICAgIEF0b21pY1N0cmluZyB2YWx1
ZVRvQXRvbWljU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlKTsKIAogICAgIGlubGluZSBpbnQzMl90IGZpbml0ZUludDMyVmFsdWUoSlND
OjpKU1ZhbHVlIHZhbHVlLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgYm9vbCYgb2theSkKICAgICB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQkocmV2aXNpb24gMTUxMzYwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTMzMTIsNiArMzMx
MiwxMSBAQCBzdWIgR2V0TmF0aXZlVHlwZUZyb21TaWduYXR1cmUKICAgICAgICAgcmV0dXJuICJp
bnQiOwogICAgIH0KIAorICAgICMgRklYTUU6IEdldE5hdGl2ZVR5cGUgc2hvdWxkIHN1cHBvcnQg
QXRvbWljIGV4dGVuc2lvbi4KKyAgICBpZiAoJHR5cGUgZXEgIkRPTVN0cmluZyIgYW5kICgkc2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQXRvbWljIn0gb3IgJHNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifSkpIHsKKyAgICAgICAgcmV0dXJuICJjb25zdCBB
dG9taWNTdHJpbmcmIjsKKyAgICB9CisKICAgICByZXR1cm4gR2V0TmF0aXZlVHlwZSgkdHlwZSk7
CiB9CiAKQEAgLTM0NDcsMTEgKzM0NTIsMjIgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAgIGlm
ICgkdHlwZSBlcSAiRE9NU3RyaW5nIikgewogICAgICAgICAjIEZJWE1FOiBUaGlzIGltcGxlbWVu
dHMgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGFuZCBbVHJlYXRVbmRlZmluZWRBcz1OdWxsU3Ry
aW5nXSwKICAgICAgICAgIyBidXQgdGhlIFdlYiBJREwgc3BlYyByZXF1aXJlcyBbVHJlYXROdWxs
QXM9RW1wdHlTdHJpbmddIGFuZCBbVHJlYXRVbmRlZmluZWRBcz1FbXB0eVN0cmluZ10uCi0gICAg
ICAgIGlmICgoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRyZWF0TnVsbEFzIn0g
YW5kICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdE51bGxBcyJ9IGVxICJO
dWxsU3RyaW5nIikgYW5kICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXRV
bmRlZmluZWRBcyJ9IGFuZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXRV
bmRlZmluZWRBcyJ9IGVxICJOdWxsU3RyaW5nIikpIHsKLSAgICAgICAgICAgIHJldHVybiAidmFs
dWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayhleGVjLCAkdmFsdWUpIgorICAgICAg
ICBpZiAoKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdE51bGxBcyJ9IGFu
ZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXROdWxsQXMifSBlcSAiTnVs
bFN0cmluZyIpCisgICAgICAgICAgICBhbmQgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJUcmVhdFVuZGVmaW5lZEFzIn0gYW5kICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJUcmVhdFVuZGVmaW5lZEFzIn0gZXEgIk51bGxTdHJpbmciKSkgeworICAgICAgICAgICAg
aWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBdG9taWMifSkgeworICAgICAg
ICAgICAgICAgIHJldHVybiAidmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayhl
eGVjLCAkdmFsdWUpIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0
dXJuICJ2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKGV4ZWMsICR2
YWx1ZSkiOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICgkc2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9KSB7CisgICAgICAgICAgICByZXR1cm4g
InZhbHVlVG9BdG9taWNTdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsICR2YWx1ZSkiOworICAgICAg
ICB9CisgICAgICAgIGlmICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXRO
dWxsQXMifSBhbmQgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRyZWF0TnVsbEFz
In0gZXEgIk51bGxTdHJpbmciKSB7CisgICAgICAgICAgICByZXR1cm4gInZhbHVlVG9TdHJpbmdX
aXRoTnVsbENoZWNrKGV4ZWMsICR2YWx1ZSkiOwogICAgICAgICB9Ci0gICAgICAgIGlmICgoJHNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRyZWF0TnVsbEFzIn0gYW5kICRzaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdE51bGxBcyJ9IGVxICJOdWxsU3RyaW5nIikg
b3IgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifSkgewotICAgICAg
ICAgICAgcmV0dXJuICJ2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCAkdmFsdWUpIgor
ICAgICAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkF0b21pYyJ9KSB7
CisgICAgICAgICAgICByZXR1cm4gIiR2YWx1ZS5pc0VtcHR5KCkgPyBudWxsQXRvbSA6ICR2YWx1
ZS50b0F0b21pY1N0cmluZyhleGVjKSI7CiAgICAgICAgIH0KICAgICAgICAgIyBGSVhNRTogQWRk
IHRoZSBjYXNlIGZvciAnaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVh
dFVuZGVmaW5lZEFzIn0gYW5kICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVh
dFVuZGVmaW5lZEFzIn0gZXEgIk51bGxTdHJpbmciKSknLgogICAgICAgICByZXR1cm4gIiR2YWx1
ZS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6ICR2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhl
YykiOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0
dHJpYnV0ZXMudHh0CShyZXZpc2lvbiAxNTEzNjApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xOSw2ICsxOSw3
IEBACiAjCiAKIEFjdGl2ZURPTU9iamVjdAorQXRvbWljCiBDUFBQdXJlSW50ZXJmYWNlCiBDYWNo
ZWRBdHRyaWJ1dGUKIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHR8U2NyaXB0U3RhdGV8
U2NyaXB0QXJndW1lbnRzfENhbGxTdGFjawpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHJldmlzaW9uIDE1MTM2
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjA3LDcgKzEyMDcsNyBAQCB2b2lkIHNldEpTVGVzdE9i
alJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAg
ICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwo
KSk7Ci0gICAgY29uc3QgU3RyaW5nJiBuYXRpdmVWYWx1ZSh2YWx1ZVRvU3RyaW5nV2l0aE51bGxD
aGVjayhleGVjLCB2YWx1ZSkpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmF0aXZlVmFsdWUo
dmFsdWVUb0F0b21pY1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsKICAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLT5zZXRBdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRzdHJpbmdhdHRyQXR0ciwgbmF0aXZl
VmFsdWUpOwpAQCAtMTI1NSw3ICsxMjU1LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRV
UkxBdHRyKEV4ZWNTdAogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiog
aW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGNv
bnN0IFN0cmluZyYgbmF0aXZlVmFsdWUodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywg
dmFsdWUpKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVlVG9BdG9t
aWNTdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC0+c2V0QXR0cmlidXRlKFdlYkNv
cmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXJsYXR0ckF0dHIsIG5hdGl2ZVZhbHVlKTsKQEAgLTEy
NjcsNyArMTI2Nyw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGUK
ICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganND
YXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNf
Y2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBjb25zdCBTdHJpbmcmIG5h
dGl2ZVZhbHVlKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7CisgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBuYXRpdmVWYWx1ZSh2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aE51
bGxDaGVjayhleGVjLCB2YWx1ZSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIGltcGwtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OmN1c3RvbUNvbnRlbnRTdHJpbmdBdHRyQXR0ciwgbmF0aXZlVmFsdWUpOwpAQCAtMTMwMyw3ICsx
MzAzLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKAogICAgIFVO
VVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNU
ZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRl
c3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGNvbnN0IFN0cmluZyYgbmF0aXZlVmFs
dWUodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsKKyAgICBjb25zdCBB
dG9taWNTdHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVlVG9BdG9taWNTdHJpbmdXaXRoTnVsbENoZWNr
KGV4ZWMsIHZhbHVlKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICBy
ZXR1cm47CiAgICAgaW1wbC0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9t
Q29udGVudFVSTEF0dHJBdHRyLCBuYXRpdmVWYWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aWRsCShyZXZpc2lvbiAxNTEzNjApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDE0ICsyNywxNCBAQAogCiAgICAgW1RyZWF0UmV0dXJuZWRO
dWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0YWdOYW1lOwog
Ci0gICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nIGdldEF0dHJp
YnV0ZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKLSAgICBb
T2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0QXR0
cmlidXRlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRp
b25hbCBET01TdHJpbmcgdmFsdWUpOwotICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlKFtEZWZhdWx0
PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOwotICAgIEF0dHIgZ2V0QXR0cmli
dXRlTm9kZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKyAg
ICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgZ2V0QXR0cmlidXRl
KFtEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZSk7Cisg
ICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNl
dEF0dHJpYnV0ZShbRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0aW9uYWwgRE9NU3RyaW5n
IG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5k
ZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyB2YWx1ZSk7CisgICAgdm9pZCByZW1v
dmVBdHRyaWJ1dGUoW0RlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmlu
ZyBuYW1lKTsKKyAgICBBdHRyIGdldEF0dHJpYnV0ZU5vZGUoW0RlZmF1bHQ9VW5kZWZpbmVkLCBB
dG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBB
dHRyIHNldEF0dHJpYnV0ZU5vZGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBBdHRyIG5l
d0F0dHIpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIEF0dHIgcmVtb3ZlQXR0cmlidXRlTm9kZShb
RGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIEF0dHIgb2xkQXR0cik7Ci0gICAgTm9kZUxpc3Qg
Z2V0RWxlbWVudHNCeVRhZ05hbWUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJp
bmcgbmFtZSk7CisgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWUoW0RlZmF1bHQ9VW5k
ZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKIAogI2lmICFkZWZpbmVk
KExBTkdVQUdFX09CSkVDVElWRV9DKQogICAgIC8vIEZvciBPYmpDIHRoaXMgaXMgZGVmaW5lZCBv
biBOb2RlIGZvciBsZWdhY3kgc3VwcG9ydC4KQEAgLTQ0LDIxICs0NCwyMSBAQAogCiAgICAgLy8g
RE9NIExldmVsIDIgQ29yZQogCi0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gRE9N
U3RyaW5nIGdldEF0dHJpYnV0ZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLERlZmF1bHQ9VW5k
ZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFs
IERPTVN0cmluZyBsb2NhbE5hbWUpOwotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMs
IFJhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRBdHRyaWJ1dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0
cmluZyxEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVmaW5l
ZF0gb3B0aW9uYWwgRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJp
bmcgdmFsdWUpOwotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQgcmVtb3Zl
QXR0cmlidXRlTlMoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBuYW1lc3BhY2VV
UkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBET01TdHJpbmcg
bG9jYWxOYW1lKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBOb2RlTGlzdCBn
ZXRFbGVtZW50c0J5VGFnTmFtZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLERlZmF1bHQ9VW5k
ZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkXSBv
cHRpb25hbCBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJh
bWV0ZXJzXSBBdHRyIGdldEF0dHJpYnV0ZU5vZGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxE
ZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRd
IG9wdGlvbmFsIERPTVN0cmluZyBsb2NhbE5hbWUpOworICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBh
cmFtZXRlcnNdIERPTVN0cmluZyBnZXRBdHRyaWJ1dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmlu
ZywgRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVzcGFj
ZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1
bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBsb2NhbE5hbWUpOworICAg
IFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRB
dHRyaWJ1dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgRGVmYXVsdD1VbmRlZmluZWQsIEF0
b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25h
bCBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0aW9uYWwgRE9NU3RyaW5n
IHZhbHVlKTsKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHJlbW92ZUF0
dHJpYnV0ZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBBdG9taWNdIERPTVN0cmluZyBuYW1l
c3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQXRv
bWljXSBET01TdHJpbmcgbG9jYWxOYW1lKTsKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0
ZXJzXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nLCBEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNw
YWNlVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW0RlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBsb2NhbE5h
bWUpOworICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIEF0dHIgZ2V0QXR0cmlidXRl
Tm9kZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWlj
XSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25h
bCBET01TdHJpbmcgbG9jYWxOYW1lKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBBdHRyIHNldEF0
dHJpYnV0ZU5vZGVOUyhbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIEF0dHIgbmV3QXR0cik7
CiAgICAgYm9vbGVhbiBoYXNBdHRyaWJ1dGUoRE9NU3RyaW5nIG5hbWUpOwotICAgIFtPYmpDTGVn
YWN5VW5uYW1lZFBhcmFtZXRlcnNdIGJvb2xlYW4gaGFzQXR0cmlidXRlTlMoW1RyZWF0TnVsbEFz
PU51bGxTdHJpbmcsRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lc3Bh
Y2VVUkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVs
dD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBsb2NhbE5hbWUpOworICAgIFtPYmpDTGVn
YWN5VW5uYW1lZFBhcmFtZXRlcnNdIGJvb2xlYW4gaGFzQXR0cmlidXRlTlMoW1RyZWF0TnVsbEFz
PU51bGxTdHJpbmcsIERlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmlu
ZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIGxvY2FsTmFt
ZSk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJhdGlvbiBzdHlsZTsK
IApAQCAtOTksOCArOTksOCBAQAogI2VuZGlmCiAKICAgICAvLyBOb2RlU2VsZWN0b3IgLSBTZWxl
Y3RvciBBUEkKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSBFbGVtZW50IHF1ZXJ5U2VsZWN0b3IoRE9N
U3RyaW5nIHNlbGVjdG9ycyk7Ci0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gTm9kZUxpc3QgcXVlcnlT
ZWxlY3RvckFsbChET01TdHJpbmcgc2VsZWN0b3JzKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBF
bGVtZW50IHF1ZXJ5U2VsZWN0b3IoW0F0b21pY10gRE9NU3RyaW5nIHNlbGVjdG9ycyk7CisgICAg
W1JhaXNlc0V4Y2VwdGlvbl0gTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChbQXRvbWljXSBET01T
dHJpbmcgc2VsZWN0b3JzKTsKIAogICAgIC8vIFdlYktpdCBleHRlbnNpb24sIHBlbmRpbmcgc3Bl
Y2lmaWNhdGlvbi4KICAgICBbUmFpc2VzRXhjZXB0aW9uXSBib29sZWFuIHdlYmtpdE1hdGNoZXNT
ZWxlY3RvcihbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBzZWxlY3RvcnMp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbAkocmV2aXNpb24gMTUxMzYwKQorKysgU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYsMTAgKzEyNiwxMCBAQAogCiAj
aWYgIWRlZmluZWQoTEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCiAjaWYgIWRlZmluZWQo
TEFOR1VBR0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQwotICAgIHZvaWQg
YWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwgCisgICAgdm9pZCBhZGRFdmVudExpc3Rl
bmVyKFtBdG9taWNdIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
RXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7Ci0gICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKERP
TVN0cmluZyB0eXBlLCAKKyAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoW0F0b21pY10gRE9N
U3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudExpc3RlbmVy
IGxpc3RlbmVyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVh
biB1c2VDYXB0dXJlKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBib29sZWFuIGRpc3BhdGNoRXZl
bnQoRXZlbnQgZXZlbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205363</attachid>
            <date>2013-06-24 21:39:56 -0700</date>
            <delta_ts>2013-06-24 22:08:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-117386-20130624213800.patch</filename>
            <type>text/plain</type>
            <size>22556</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUxOTUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDEzLTA2LTI0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IEpTU3RyaW5nIHNob3VsZCByZW1lbWJlciBBdG9taWNTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzM4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgIEFkZGVkIEpTVmFsdWU6OnRvQXRvbWljU3Ry
aW5nIGFuZCBKU1N0cmluZzo6YXRvbWljU3RyaW5nLiBUaGVzZSB0d28gZnVuY3Rpb25zIGFsbG93
IFdlYkNvcmUgdG8gdXBkYXRlCisgICAgICAgIEpTU3RyaW5nJ3MgbV92YWx1ZSB0byBzZXQgaXNB
dG9taWMgZmxhZyBhbmQgYXZvaWQgdGhlIEF0b21pY1N0cmluZ1RhYmxlIGxvb2t1cHMgaW4gc3Vi
c2VxdWVudCBhdHRlbXB0cworICAgICAgICB0byBvYnRhaW4gdGhlIEF0b21pY1N0cmluZyBvZiB0
aGUgc2FtZSB2YWx1ZS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OmF0b21pY1N0
cmluZyk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvQXRvbWljU3RyaW5nKToKKwogMjAxMy0w
Ni0yNCAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQuIE1ha2VmaWxlIGJ1aWxkIGZpeCBmb3IgQXBwbGVXaW5kb3dzLgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAkocmV2aXNpb24gMTUxOTUxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMjAsNiArMjIwLDcgQEAgcHVibGljOgogICAgIC8vIGJlZW4gc2V0IGluIHRoZSBF
eGVjU3RhdGUgYWxyZWFkeS4KICAgICBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7
CiAgICAgSlNTdHJpbmcqIHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OworICAgIEF0b21pY1N0
cmluZyB0b0F0b21pY1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKICAgICBXVEY6OlN0cmluZyB0
b1dURlN0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKICAgICBXVEY6OlN0cmluZyB0b1dURlN0cmlu
Z0lubGluZShFeGVjU3RhdGUqKSBjb25zdDsKICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0
YXRlKikgY29uc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmlu
Zy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5n
LmgJKHJldmlzaW9uIDE1MTk1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOSw2ICsxMzksNyBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgU3RyaW5nJiB2YWx1ZShFeGVjU3RhdGUqKSBjb25zdDsKICAgICBjb25zdCBTdHJpbmcm
IHRyeUdldFZhbHVlKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgeyByZXR1cm4gbV9s
ZW5ndGg7IH0KKyAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0
OwogCiAgICAgSlNWYWx1ZSB0b1ByaW1pdGl2ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRp
dmVUeXBlKSBjb25zdDsKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIHRvQm9vbGVhbigpIGNv
bnN0OwpAQCAtMzcxLDYgKzM3MiwxOCBAQCBpbmxpbmUgY29uc3QgU3RyaW5nJiBKU1N0cmluZzo6
dmFsdWUoRXhlCiAgICAgcmV0dXJuIG1fdmFsdWU7CiB9CiAKK2lubGluZSBBdG9taWNTdHJpbmcg
SlNTdHJpbmc6OmF0b21pY1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYg
KGlzUm9wZSgpKQorICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBKU1JvcGVTdHJpbmcqPih0aGlz
KS0+cmVzb2x2ZVJvcGUoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAg
ICAgICByZXR1cm4gbnVsbEF0b207CisgICAgY29uc3QgQXRvbWljU3RyaW5nIGF0b21pY1ZhbHVl
KG1fdmFsdWUpOworICAgIGlmIChhdG9taWNWYWx1ZS5pbXBsKCkgIT0gbV92YWx1ZS5pbXBsKCkp
CisgICAgICAgIG1fdmFsdWUgPSBhdG9taWNWYWx1ZTsKKyAgICByZXR1cm4gYXRvbWljVmFsdWU7
Cit9CisKIGlubGluZSBjb25zdCBTdHJpbmcmIEpTU3RyaW5nOjp0cnlHZXRWYWx1ZSgpIGNvbnN0
CiB7CiAgICAgaWYgKGlzUm9wZSgpKQpAQCAtNTE2LDYgKzUyOSwxMyBAQCBpbmxpbmUgSlNTdHJp
bmcqIEpTVmFsdWU6OnRvU3RyaW5nKEV4ZWNTCiAgICAgcmV0dXJuIHRvU3RyaW5nU2xvd0Nhc2Uo
ZXhlYyk7CiB9CiAKK2lubGluZSBBdG9taWNTdHJpbmcgSlNWYWx1ZTo6dG9BdG9taWNTdHJpbmco
RXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIGlmIChpc1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4ganNDYXN0PEpTU3RyaW5nKj4oYXNDZWxsKCkpLT5hdG9taWNTdHJpbmcoZXhlYyk7Cisg
ICAgcmV0dXJuIHRvU3RyaW5nU2xvd0Nhc2UoZXhlYyktPnZhbHVlKGV4ZWMpOworfQorCiBpbmxp
bmUgU3RyaW5nIEpTVmFsdWU6OnRvV1RGU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsK
ICAgICBpZiAoaXNTdHJpbmcoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MTk1MSkKKysr
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDEzLTA2LTI0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IEpTU3RyaW5nIHNob3VsZCByZW1lbWJlciBBdG9taWNTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzM4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgIEFkZGVkICJBdG9taWMiIGF0dHJpYnV0ZSBh
cyBhIFdlYktpdCBleHRlbnNpb24gdG8gV2ViSURMLCBhbmQgZGVwbG95ZWQgaXQgaW4gRWxlbWVu
dC5pZGwgYW5kIE5vZGUuaWRsIHNvIHRoYXQKKyAgICAgICAgdGhlIGJpbmRpbmcgY29kZSBjYW4g
dXNlIG5ld2x5IGFkZGVkIEpTVmFsdWU6OnRvQXRvbWljIHRvIHVwZGF0ZSBKU1N0cmluZydzIG1f
dmFsdWUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsdWVUb0F0b21pY1N0cmluZ1dpdGhOdWxsQ2hlY2spOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OnZhbHVlVG9BdG9taWNTdHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hl
Y2spOiBBZGRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChH
ZXROYXRpdmVUeXBlRnJvbVNpZ25hdHVyZSk6IFJldHVybiBjb25zdCBBdG9taWNTdHJpbmcmIHdo
ZW4gZWl0aGVyIEF0b21pYyBhdHRyaWJ1dGUgaXMgc3BlY2lmaWVkIG9yIHRoZSB0eXBlIGlzCisg
ICAgICAgIFJlZmxlY3QuIE5vdGUgdGhhdCBzZXRBdHRyaWJ1dGUgYW5kIGdldEF0dHJpYnV0ZSBi
b3RoIHVzZSBBdG9taWNTdHJpbmcgZm9yIGFsbCBhcmd1bWVudHMuCisgICAgICAgIChKU1ZhbHVl
VG9OYXRpdmUpOiBVc2UgQXRvbWljU3RyaW5nIGVxdWl2YWxlbnRzIHdoZW4gcG9zc2libGUgd2hl
biBjb252ZXJ0aW5nIERPTVN0cmluZyB0byBhIFdlYkNvcmUgb2JqZWN0LgorCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDogQWRkZWQgIkF0b21pYyIgYXR0cmli
dXRlLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6
IEJhc2VsaW5lZCB0ZXN0IGNhc2VzLgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVm
bGVjdGVkU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRVUkxBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3Rv
bVVSTEF0dHIpOgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20v
RWxlbWVudC5pZGw6CisgICAgICAgICogZG9tL05vZGUuaWRsOgorCiAyMDEzLTA2LTI0ICBLYW5n
aWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgZG9jdW1lbnQuY3VycmVudFNjcmlwdApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAxNTE5NTEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiAr
MTA5LDEzIEBAIFN0cmluZyB2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhFeGVjU3QKICAgICBy
ZXR1cm4gdmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogfQogCitBdG9taWNTdHJp
bmcgdmFsdWVUb0F0b21pY1N0cmluZ1dpdGhOdWxsQ2hlY2soRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIG51
bGxBdG9tOworICAgIHJldHVybiB2YWx1ZS50b0F0b21pY1N0cmluZyhleGVjKTsKK30KKwogU3Ry
aW5nIHZhbHVlVG9TdHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQpA
QCAtMTE2LDYgKzEyMywxMyBAQCBTdHJpbmcgdmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51
bGxDCiAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKIH0KIAor
QXRvbWljU3RyaW5nIHZhbHVlVG9BdG9taWNTdHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2so
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc1VuZGVm
aW5lZE9yTnVsbCgpKQorICAgICAgICByZXR1cm4gbnVsbEF0b207CisgICAgcmV0dXJuIHZhbHVl
LnRvQXRvbWljU3RyaW5nKGV4ZWMpOworfQorCiBKU1ZhbHVlIGpzRGF0ZU9yTnVsbChFeGVjU3Rh
dGUqIGV4ZWMsIGRvdWJsZSB2YWx1ZSkKIHsKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUodmFsdWUp
KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgJKHJldmlz
aW9uIDE1MTk1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNDksNyArMjQ5LDEwIEBAIGNsYXNzIERPTVN0cmluZ0xpc3Q7
CiAgICAgQXRvbWljU3RyaW5nSW1wbCogZmluZEF0b21pY1N0cmluZyhKU0M6OlByb3BlcnR5TmFt
ZSk7CiAKICAgICBTdHJpbmcgdmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTVmFsdWUpOyAvLyBudWxsIGlmIHRoZSB2YWx1ZSBpcyBudWxsCisgICAgQXRv
bWljU3RyaW5nIHZhbHVlVG9BdG9taWNTdHJpbmdXaXRoTnVsbENoZWNrKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1ZhbHVlKTsKKwogICAgIFN0cmluZyB2YWx1ZVRvU3RyaW5nV2l0aFVuZGVmaW5l
ZE9yTnVsbENoZWNrKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTsgLy8gbnVsbCBpZiB0
aGUgdmFsdWUgaXMgbnVsbCBvciB1bmRlZmluZWQKKyAgICBBdG9taWNTdHJpbmcgdmFsdWVUb0F0
b21pY1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSk7CiAKICAgICBpbmxpbmUgaW50MzJfdCBmaW5pdGVJbnQzMlZhbHVlKEpTQzo6SlNW
YWx1ZSB2YWx1ZSwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGJvb2wmIG9rYXkpCiAgICAgewpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0JKHJldmlzaW9uIDE1MTk1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0zMzYyLDYgKzMzNjIsMTEg
QEAgc3ViIEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlCiAgICAgICAgIHJldHVybiAiaW50IjsK
ICAgICB9CiAKKyAgICAjIEZJWE1FOiBHZXROYXRpdmVUeXBlIHNob3VsZCBzdXBwb3J0IEF0b21p
YyBleHRlbnNpb24uCisgICAgaWYgKCR0eXBlIGVxICJET01TdHJpbmciIGFuZCAoJHNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkF0b21pYyJ9IG9yICRzaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJSZWZsZWN0In0pKSB7CisgICAgICAgIHJldHVybiAiY29uc3QgQXRvbWlj
U3RyaW5nJiI7CisgICAgfQorCiAgICAgcmV0dXJuIEdldE5hdGl2ZVR5cGUoJHR5cGUpOwogfQog
CkBAIC0zNTAxLDExICszNTA2LDIyIEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAgICBpZiAoJHR5
cGUgZXEgIkRPTVN0cmluZyIpIHsKICAgICAgICAgIyBGSVhNRTogVGhpcyBpbXBsZW1lbnRzIFtU
cmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhbmQgW1RyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10s
CiAgICAgICAgICMgYnV0IHRoZSBXZWIgSURMIHNwZWMgcmVxdWlyZXMgW1RyZWF0TnVsbEFzPUVt
cHR5U3RyaW5nXSBhbmQgW1RyZWF0VW5kZWZpbmVkQXM9RW1wdHlTdHJpbmddLgotICAgICAgICBp
ZiAoKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdE51bGxBcyJ9IGFuZCAk
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXROdWxsQXMifSBlcSAiTnVsbFN0
cmluZyIpIGFuZCAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRyZWF0VW5kZWZp
bmVkQXMifSBhbmQgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRyZWF0VW5kZWZp
bmVkQXMifSBlcSAiTnVsbFN0cmluZyIpKSB7Ci0gICAgICAgICAgICByZXR1cm4gInZhbHVlVG9T
dHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soZXhlYywgJHZhbHVlKSIKKyAgICAgICAgaWYg
KCgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXROdWxsQXMifSBhbmQgJHNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRyZWF0TnVsbEFzIn0gZXEgIk51bGxTdHJp
bmciKQorICAgICAgICAgICAgYW5kICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
VHJlYXRVbmRlZmluZWRBcyJ9IGFuZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
VHJlYXRVbmRlZmluZWRBcyJ9IGVxICJOdWxsU3RyaW5nIikpIHsKKyAgICAgICAgICAgIGlmICgk
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQXRvbWljIn0pIHsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gInZhbHVlVG9TdHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soZXhlYywg
JHZhbHVlKSI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAi
dmFsdWVUb0F0b21pY1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayhleGVjLCAkdmFsdWUp
IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifSkgeworICAgICAgICAgICAgcmV0dXJuICJ2YWx1
ZVRvQXRvbWljU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCAkdmFsdWUpIjsKKyAgICAgICAgfQor
ICAgICAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRyZWF0TnVsbEFz
In0gYW5kICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdE51bGxBcyJ9IGVx
ICJOdWxsU3RyaW5nIikgeworICAgICAgICAgICAgcmV0dXJuICJ2YWx1ZVRvU3RyaW5nV2l0aE51
bGxDaGVjayhleGVjLCAkdmFsdWUpIjsKICAgICAgICAgfQotICAgICAgICBpZiAoKCRzaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdE51bGxBcyJ9IGFuZCAkc2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXROdWxsQXMifSBlcSAiTnVsbFN0cmluZyIpIG9yICRz
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In0pIHsKLSAgICAgICAgICAg
IHJldHVybiAidmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgJHZhbHVlKSIKKyAgICAg
ICAgaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBdG9taWMifSkgeworICAg
ICAgICAgICAgcmV0dXJuICIkdmFsdWUuaXNFbXB0eSgpID8gbnVsbEF0b20gOiAkdmFsdWUudG9B
dG9taWNTdHJpbmcoZXhlYykiOwogICAgICAgICB9CiAgICAgICAgICMgRklYTUU6IEFkZCB0aGUg
Y2FzZSBmb3IgJ2lmICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXRVbmRl
ZmluZWRBcyJ9IGFuZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXRVbmRl
ZmluZWRBcyJ9IGVxICJOdWxsU3RyaW5nIikpJy4KICAgICAgICAgcmV0dXJuICIkdmFsdWUuaXNF
bXB0eSgpID8gU3RyaW5nKCkgOiAkdmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpIjsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1
dGVzLnR4dAkocmV2aXNpb24gMTUxOTUxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9JRExBdHRyaWJ1dGVzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTksNiArMTksNyBAQAog
IwogCiBBY3RpdmVET01PYmplY3QKK0F0b21pYwogQ1BQUHVyZUludGVyZmFjZQogQ2FjaGVkQXR0
cmlidXRlCiBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0fFNjcmlwdFN0YXRlfFNjcmlw
dEFyZ3VtZW50c3xDYWxsU3RhY2sKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCShyZXZpc2lvbiAxNTE5NTEpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTI3OCw3ICsxMjc4LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZs
ZWN0ZWRTdHJpbmdBdHRyKEV4ZQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVz
dE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwot
ICAgIGNvbnN0IFN0cmluZyYgbmF0aXZlVmFsdWUodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2so
ZXhlYywgdmFsdWUpKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVl
VG9BdG9taWNTdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7CiAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC0+c2V0QXR0cmlidXRl
KFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkc3RyaW5nYXR0ckF0dHIsIG5hdGl2ZVZhbHVl
KTsKQEAgLTEzMjYsNyArMTMyNiw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0
cihFeGVjU3QKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwg
PSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBjb25zdCBT
dHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVl
KSk7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYXRpdmVWYWx1ZSh2YWx1ZVRvQXRvbWljU3Ry
aW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRp
b24oKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpI
VE1MTmFtZXM6OnJlZmxlY3RlZHVybGF0dHJBdHRyLCBuYXRpdmVWYWx1ZSk7CkBAIC0xMzM4LDcg
KzEzMzgsNyBAQCB2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlCiAgICAg
VU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxK
U1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8
VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgY29uc3QgU3RyaW5nJiBuYXRpdmVW
YWx1ZSh2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOworICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgbmF0aXZlVmFsdWUodmFsdWVUb0F0b21pY1N0cmluZ1dpdGhOdWxsQ2hl
Y2soZXhlYywgdmFsdWUpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybjsKICAgICBpbXBsLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0
b21Db250ZW50U3RyaW5nQXR0ckF0dHIsIG5hdGl2ZVZhbHVlKTsKQEAgLTEzNzQsNyArMTM3NCw3
IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cigKICAgICBVTlVTRURf
UEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9i
aio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2Jq
Kj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBjb25zdCBTdHJpbmcmIG5hdGl2ZVZhbHVlKHZh
bHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7CisgICAgY29uc3QgQXRvbWlj
U3RyaW5nJiBuYXRpdmVWYWx1ZSh2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aE51bGxDaGVjayhleGVj
LCB2YWx1ZSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJu
OwogICAgIGltcGwtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRl
bnRVUkxBdHRyQXR0ciwgbmF0aXZlVmFsdWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRs
CShyZXZpc2lvbiAxNTE5NTEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TUltcGxlbWVudGF0aW9uIGltcGxlbWVudGF0aW9uOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBF
bGVtZW50IGRvY3VtZW50RWxlbWVudDsKIAotICAgIFtSZXR1cm5OZXdPYmplY3QsIFJhaXNlc0V4
Y2VwdGlvbl0gRWxlbWVudCBjcmVhdGVFbGVtZW50KFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLERl
ZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgdGFnTmFtZSk7CisgICAgW1JldHVy
bk5ld09iamVjdCwgUmFpc2VzRXhjZXB0aW9uXSBFbGVtZW50IGNyZWF0ZUVsZW1lbnQoW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmcsRGVmYXVsdD1VbmRlZmluZWQsQXRvbWljXSBvcHRpb25hbCBET01T
dHJpbmcgdGFnTmFtZSk7CiAgICAgRG9jdW1lbnRGcmFnbWVudCAgIGNyZWF0ZURvY3VtZW50RnJh
Z21lbnQoKTsKICAgICBbUmV0dXJuTmV3T2JqZWN0XSBUZXh0IGNyZWF0ZVRleHROb2RlKFtEZWZh
dWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIGRhdGEpOwogICAgIFtSZXR1cm5OZXdP
YmplY3RdIENvbW1lbnQgY3JlYXRlQ29tbWVudChbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFs
IERPTVN0cmluZyBkYXRhKTsKQEAgLTM4LDcgKzM4LDcgQEAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIGRhdGEpOwogICAgIFtS
ZXR1cm5OZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gQXR0ciBjcmVhdGVBdHRyaWJ1dGUoW0Rl
ZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZSk7CiAgICAgW1JldHVybk5l
d09iamVjdCwgUmFpc2VzRXhjZXB0aW9uXSBFbnRpdHlSZWZlcmVuY2UgY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOwotICAg
IE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9u
YWwgRE9NU3RyaW5nIHRhZ25hbWUpOworICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1l
KFtEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgdGFnbmFtZSk7
CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgogCkBAIC00OCw5ICs0OCw5IEBA
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsRGVm
YXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBxdWFsaWZpZWROYW1lKTsKICAgICBb
T2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSZXR1cm5OZXdPYmplY3QsIFJhaXNlc0V4Y2Vw
dGlvbl0gQXR0ciBjcmVhdGVBdHRyaWJ1dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxEZWZh
dWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlv
bmFsIERPTVN0cmluZyBxdWFsaWZpZWROYW1lKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJh
bWV0ZXJzXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKFtUcmVhdE51bGxBcz1OdWxs
U3RyaW5nLERlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNwYWNlVVJJ
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0Rl
ZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAgICBFbGVt
ZW50IGdldEVsZW1lbnRCeUlkKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5n
IGVsZW1lbnRJZCk7CisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gTm9kZUxpc3Qg
Z2V0RWxlbWVudHNCeVRhZ05hbWVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxEZWZhdWx0PVVu
ZGVmaW5lZCxBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRl
ZmluZWQsQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgbG9jYWxOYW1lKTsKKyAgICBFbGVtZW50
IGdldEVsZW1lbnRCeUlkKFtEZWZhdWx0PVVuZGVmaW5lZCxBdG9taWNdIG9wdGlvbmFsIERPTVN0
cmluZyBlbGVtZW50SWQpOwogCiAgICAgLy8gRE9NIExldmVsIDMgQ29yZQogCkBAIC0yMTYsOCAr
MjE2LDggQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNvbXBhdE1vZGU7CiAK
ICAgICAvLyBOb2RlU2VsZWN0b3IgLSBTZWxlY3RvciBBUEkKLSAgICBbUmFpc2VzRXhjZXB0aW9u
XSBFbGVtZW50IHF1ZXJ5U2VsZWN0b3IoRE9NU3RyaW5nIHNlbGVjdG9ycyk7Ci0gICAgW1JhaXNl
c0V4Y2VwdGlvbl0gTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChET01TdHJpbmcgc2VsZWN0b3Jz
KTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBFbGVtZW50IHF1ZXJ5U2VsZWN0b3IoW0F0b21pY10g
RE9NU3RyaW5nIHNlbGVjdG9ycyk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gTm9kZUxpc3QgcXVl
cnlTZWxlY3RvckFsbChbQXRvbWljXSBET01TdHJpbmcgc2VsZWN0b3JzKTsKIAogI2lmIGRlZmlu
ZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAmJiBFTkFCTEVfRlVMTFNDUkVFTl9BUEkKICAgICAv
LyBNb3ppbGxhIHZlcnNpb24KQEAgLTMzOCw5ICszMzgsOSBAQAogCiAjaWYgZGVmaW5lZChFTkFC
TEVfQ1VTVE9NX0VMRU1FTlRTKSAmJiBFTkFCTEVfQ1VTVE9NX0VMRU1FTlRTCiAgICAgW0NvbmRp
dGlvbmFsPUNVU1RPTV9FTEVNRU5UUywgSW1wbGVtZW50ZWRBcz1yZWdpc3RlckVsZW1lbnQsIENh
bGxXaXRoPVNjcmlwdFN0YXRlLCBSYWlzZXNFeGNlcHRpb25dIEN1c3RvbUVsZW1lbnRDb25zdHJ1
Y3RvciB3ZWJraXRSZWdpc3RlcihET01TdHJpbmcgbmFtZSwgb3B0aW9uYWwgRGljdGlvbmFyeSBv
cHRpb25zKTsKLSAgICBbUmV0dXJuTmV3T2JqZWN0LCBSYWlzZXNFeGNlcHRpb25dIEVsZW1lbnQg
Y3JlYXRlRWxlbWVudChET01TdHJpbmcgbG9jYWxOYW1lLCBbVHJlYXROdWxsQXM9TnVsbFN0cmlu
Z10gRE9NU3RyaW5nIHR5cGVFeHRlbnNpb24pOwotICAgIFtSZXR1cm5OZXdPYmplY3QsIFJhaXNl
c0V4Y2VwdGlvbl0gRWxlbWVudCBjcmVhdGVFbGVtZW50TlMoW1RyZWF0TnVsbEFzPU51bGxTdHJp
bmddIERPTVN0cmluZyBuYW1lc3BhY2VVUkksIERPTVN0cmluZyBxdWFsaWZpZWROYW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJp
bmcgdHlwZUV4dGVuc2lvbik7CisgICAgW1JldHVybk5ld09iamVjdCwgUmFpc2VzRXhjZXB0aW9u
XSBFbGVtZW50IGNyZWF0ZUVsZW1lbnQoW0F0b21pY10gRE9NU3RyaW5nIGxvY2FsTmFtZSwgW1Ry
ZWF0TnVsbEFzPU51bGxTdHJpbmcsIEF0b21pY10gRE9NU3RyaW5nIHR5cGVFeHRlbnNpb24pOwor
ICAgIFtSZXR1cm5OZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gRWxlbWVudCBjcmVhdGVFbGVt
ZW50TlMoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIEF0b21pY10gRE9NU3RyaW5nIG5hbWVzcGFj
ZVVSSSwgRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIEF0b21pY10gRE9NU3RyaW5nIHR5cGVFeHRlbnNp
b24pOwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX0NQUCkgJiYgTEFOR1VBR0VfQ1BQ
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCShyZXZpc2lvbiAxNTE5NTEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDE0ICsyNywxNCBA
QAogCiAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyB0YWdOYW1lOwogCi0gICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9
TnVsbF0gRE9NU3RyaW5nIGdldEF0dHJpYnV0ZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFs
IERPTVN0cmluZyBuYW1lKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSYWlz
ZXNFeGNlcHRpb25dIHZvaWQgc2V0QXR0cmlidXRlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9u
YWwgRE9NU3RyaW5nIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgdmFsdWUpOwotICAgIHZvaWQg
cmVtb3ZlQXR0cmlidXRlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5h
bWUpOwotICAgIEF0dHIgZ2V0QXR0cmlidXRlTm9kZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlv
bmFsIERPTVN0cmluZyBuYW1lKTsKKyAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxs
XSBET01TdHJpbmcgZ2V0QXR0cmlidXRlKFtEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRp
b25hbCBET01TdHJpbmcgbmFtZSk7CisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywg
UmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldEF0dHJpYnV0ZShbRGVmYXVsdD1VbmRlZmluZWQsIEF0
b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmlu
ZyB2YWx1ZSk7CisgICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoW0RlZmF1bHQ9VW5kZWZpbmVkLCBB
dG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKyAgICBBdHRyIGdldEF0dHJpYnV0ZU5v
ZGUoW0RlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsK
ICAgICBbUmFpc2VzRXhjZXB0aW9uXSBBdHRyIHNldEF0dHJpYnV0ZU5vZGUoW0RlZmF1bHQ9VW5k
ZWZpbmVkXSBvcHRpb25hbCBBdHRyIG5ld0F0dHIpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIEF0
dHIgcmVtb3ZlQXR0cmlidXRlTm9kZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIEF0dHIg
b2xkQXR0cik7Ci0gICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWUoW0RlZmF1bHQ9VW5k
ZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZSk7CisgICAgTm9kZUxpc3QgZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoW0RlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmlu
ZyBuYW1lKTsKIAogI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKQogICAgIC8vIEZv
ciBPYmpDIHRoaXMgaXMgZGVmaW5lZCBvbiBOb2RlIGZvciBsZWdhY3kgc3VwcG9ydC4KQEAgLTQ0
LDIxICs0NCwyMSBAQAogCiAgICAgLy8gRE9NIExldmVsIDIgQ29yZQogCi0gICAgW09iakNMZWdh
Y3lVbm5hbWVkUGFyYW1ldGVyc10gRE9NU3RyaW5nIGdldEF0dHJpYnV0ZU5TKFtUcmVhdE51bGxB
cz1OdWxsU3RyaW5nLERlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNw
YWNlVVJJLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVm
YXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBsb2NhbE5hbWUpOwotICAgIFtPYmpD
TGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRBdHRyaWJ1
dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwg
RE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIHF1YWxpZmllZE5h
bWUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5k
ZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgdmFsdWUpOwotICAgIFtPYmpDTGVnYWN5VW5uYW1l
ZFBhcmFtZXRlcnNdIHZvaWQgcmVtb3ZlQXR0cmlidXRlTlMoW1RyZWF0TnVsbEFzPU51bGxTdHJp
bmddIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFt
ZWRQYXJhbWV0ZXJzXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKFtUcmVhdE51bGxB
cz1OdWxsU3RyaW5nLERlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNw
YWNlVVJJLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAg
ICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBBdHRyIGdldEF0dHJpYnV0ZU5vZGVOUyhb
VHJlYXROdWxsQXM9TnVsbFN0cmluZyxEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3Ry
aW5nIG5hbWVzcGFjZVVSSSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBsb2NhbE5hbWUpOwor
ICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIERPTVN0cmluZyBnZXRBdHRyaWJ1dGVO
UyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0
aW9uYWwgRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERP
TVN0cmluZyBsb2NhbE5hbWUpOworICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJh
aXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRBdHRyaWJ1dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmlu
ZywgRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVzcGFj
ZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVu
ZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWQsIEF0
b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIHZhbHVlKTsKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQ
YXJhbWV0ZXJzXSB2b2lkIHJlbW92ZUF0dHJpYnV0ZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5n
LCBBdG9taWNdIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbQXRvbWljXSBET01TdHJpbmcgbG9jYWxOYW1lKTsKKyAgICBb
T2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFt
ZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBv
cHRpb25hbCBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9w
dGlvbmFsIERPTVN0cmluZyBsb2NhbE5hbWUpOworICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFt
ZXRlcnNdIEF0dHIgZ2V0QXR0cmlidXRlTm9kZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBE
ZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNwYWNlVVJJ
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVu
ZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgbG9jYWxOYW1lKTsKICAgICBbUmFp
c2VzRXhjZXB0aW9uXSBBdHRyIHNldEF0dHJpYnV0ZU5vZGVOUyhbRGVmYXVsdD1VbmRlZmluZWRd
IG9wdGlvbmFsIEF0dHIgbmV3QXR0cik7CiAgICAgYm9vbGVhbiBoYXNBdHRyaWJ1dGUoRE9NU3Ry
aW5nIG5hbWUpOwotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIGJvb2xlYW4gaGFz
QXR0cmlidXRlTlMoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsRGVmYXVsdD1VbmRlZmluZWRdIG9w
dGlvbmFsIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBs
b2NhbE5hbWUpOworICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIGJvb2xlYW4gaGFz
QXR0cmlidXRlTlMoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIERlZmF1bHQ9VW5kZWZpbmVkLCBB
dG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0
aW9uYWwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NT
U3R5bGVEZWNsYXJhdGlvbiBzdHlsZTsKIApAQCAtOTksOCArOTksOCBAQAogI2VuZGlmCiAKICAg
ICAvLyBOb2RlU2VsZWN0b3IgLSBTZWxlY3RvciBBUEkKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSBF
bGVtZW50IHF1ZXJ5U2VsZWN0b3IoRE9NU3RyaW5nIHNlbGVjdG9ycyk7Ci0gICAgW1JhaXNlc0V4
Y2VwdGlvbl0gTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChET01TdHJpbmcgc2VsZWN0b3JzKTsK
KyAgICBbUmFpc2VzRXhjZXB0aW9uXSBFbGVtZW50IHF1ZXJ5U2VsZWN0b3IoW0F0b21pY10gRE9N
U3RyaW5nIHNlbGVjdG9ycyk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gTm9kZUxpc3QgcXVlcnlT
ZWxlY3RvckFsbChbQXRvbWljXSBET01TdHJpbmcgc2VsZWN0b3JzKTsKIAogICAgIC8vIFdlYktp
dCBleHRlbnNpb24sIHBlbmRpbmcgc3BlY2lmaWNhdGlvbi4KICAgICBbUmFpc2VzRXhjZXB0aW9u
XSBib29sZWFuIHdlYmtpdE1hdGNoZXNTZWxlY3RvcihbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlv
bmFsIERPTVN0cmluZyBzZWxlY3RvcnMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbAkocmV2aXNpb24g
MTUxOTUxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjYsMTAgKzEyNiwxMCBAQAogCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfQ1BQKSB8fCAhTEFO
R1VBR0VfQ1BQCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFH
RV9PQkpFQ1RJVkVfQwotICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwg
CisgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKFtBdG9taWNdIERPTVN0cmluZyB0eXBlLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7Ci0gICAgdm9p
ZCByZW1vdmVFdmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLCAKKyAgICB2b2lkIHJlbW92ZUV2
ZW50TGlzdGVuZXIoW0F0b21pY10gRE9NU3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICBbUmFpc2VzRXhjZXB0
aW9uXSBib29sZWFuIGRpc3BhdGNoRXZlbnQoRXZlbnQgZXZlbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205365</attachid>
            <date>2013-06-24 22:08:37 -0700</date>
            <delta_ts>2013-06-25 20:48:41 -0700</delta_ts>
            <desc>Addressed Geoff&apos;s comment</desc>
            <filename>bug-117386-20130624220642.patch</filename>
            <type>text/plain</type>
            <size>22573</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUxOTUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDEzLTA2LTI0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IEpTU3RyaW5nIHNob3VsZCByZW1lbWJlciBBdG9taWNTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzM4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgIEFkZGVkIEpTVmFsdWU6OnRvQXRvbWljU3Ry
aW5nIGFuZCBKU1N0cmluZzo6YXRvbWljU3RyaW5nLiBUaGVzZSB0d28gZnVuY3Rpb25zIGFsbG93
IFdlYkNvcmUgdG8gdXBkYXRlCisgICAgICAgIEpTU3RyaW5nJ3MgbV92YWx1ZSB0byBzZXQgaXNB
dG9taWMgZmxhZyBhbmQgYXZvaWQgdGhlIEF0b21pY1N0cmluZ1RhYmxlIGxvb2t1cHMgaW4gc3Vi
c2VxdWVudCBhdHRlbXB0cworICAgICAgICB0byBvYnRhaW4gdGhlIEF0b21pY1N0cmluZyBvZiB0
aGUgc2FtZSB2YWx1ZS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OmF0b21pY1N0
cmluZyk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvQXRvbWljU3RyaW5nKToKKwogMjAxMy0w
Ni0yNCAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQuIE1ha2VmaWxlIGJ1aWxkIGZpeCBmb3IgQXBwbGVXaW5kb3dzLgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAkocmV2aXNpb24gMTUxOTUxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMjAsNiArMjIwLDcgQEAgcHVibGljOgogICAgIC8vIGJlZW4gc2V0IGluIHRoZSBF
eGVjU3RhdGUgYWxyZWFkeS4KICAgICBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7
CiAgICAgSlNTdHJpbmcqIHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OworICAgIEF0b21pY1N0
cmluZyB0b0F0b21pY1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKICAgICBXVEY6OlN0cmluZyB0
b1dURlN0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKICAgICBXVEY6OlN0cmluZyB0b1dURlN0cmlu
Z0lubGluZShFeGVjU3RhdGUqKSBjb25zdDsKICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0
YXRlKikgY29uc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmlu
Zy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5n
LmgJKHJldmlzaW9uIDE1MTk1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOSw2ICsxMzksNyBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgU3RyaW5nJiB2YWx1ZShFeGVjU3RhdGUqKSBjb25zdDsKICAgICBjb25zdCBTdHJpbmcm
IHRyeUdldFZhbHVlKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgeyByZXR1cm4gbV9s
ZW5ndGg7IH0KKyAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0
OwogCiAgICAgSlNWYWx1ZSB0b1ByaW1pdGl2ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRp
dmVUeXBlKSBjb25zdDsKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIHRvQm9vbGVhbigpIGNv
bnN0OwpAQCAtMzcxLDYgKzM3MiwxOSBAQCBpbmxpbmUgY29uc3QgU3RyaW5nJiBKU1N0cmluZzo6
dmFsdWUoRXhlCiAgICAgcmV0dXJuIG1fdmFsdWU7CiB9CiAKK2lubGluZSBBdG9taWNTdHJpbmcg
SlNTdHJpbmc6OmF0b21pY1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYg
KGlzUm9wZSgpKSB7CisgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IEpTUm9wZVN0cmluZyo+KHRo
aXMpLT5yZXNvbHZlUm9wZShleGVjKTsKKyAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQorICAgICAgICAgICAgcmV0dXJuIG51bGxBdG9tOworICAgIH0KKyAgICBjb25zdCBBdG9taWNT
dHJpbmcgYXRvbWljVmFsdWUobV92YWx1ZSk7CisgICAgaWYgKGF0b21pY1ZhbHVlLmltcGwoKSAh
PSBtX3ZhbHVlLmltcGwoKSkKKyAgICAgICAgbV92YWx1ZSA9IGF0b21pY1ZhbHVlOworICAgIHJl
dHVybiBhdG9taWNWYWx1ZTsKK30KKwogaW5saW5lIGNvbnN0IFN0cmluZyYgSlNTdHJpbmc6OnRy
eUdldFZhbHVlKCkgY29uc3QKIHsKICAgICBpZiAoaXNSb3BlKCkpCkBAIC01MTYsNiArNTMwLDEz
IEBAIGlubGluZSBKU1N0cmluZyogSlNWYWx1ZTo6dG9TdHJpbmcoRXhlY1MKICAgICByZXR1cm4g
dG9TdHJpbmdTbG93Q2FzZShleGVjKTsKIH0KIAoraW5saW5lIEF0b21pY1N0cmluZyBKU1ZhbHVl
Ojp0b0F0b21pY1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYgKGlzU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNTdHJpbmcqPihhc0NlbGwoKSktPmF0b21p
Y1N0cmluZyhleGVjKTsKKyAgICByZXR1cm4gdG9TdHJpbmdTbG93Q2FzZShleGVjKS0+dmFsdWUo
ZXhlYyk7Cit9CisKIGlubGluZSBTdHJpbmcgSlNWYWx1ZTo6dG9XVEZTdHJpbmcoRXhlY1N0YXRl
KiBleGVjKSBjb25zdAogewogICAgIGlmIChpc1N0cmluZygpKQpJbmRleDogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2
aXNpb24gMTUxOTUxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMzUgQEAKKzIwMTMtMDYtMjQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgSlNTdHJpbmcgc2hvdWxkIHJlbWVtYmVyIEF0b21pY1N0cmluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3Mzg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgQWRkZWQgIkF0
b21pYyIgYXR0cmlidXRlIGFzIGEgV2ViS2l0IGV4dGVuc2lvbiB0byBXZWJJREwsIGFuZCBkZXBs
b3llZCBpdCBpbiBFbGVtZW50LmlkbCBhbmQgTm9kZS5pZGwgc28gdGhhdAorICAgICAgICB0aGUg
YmluZGluZyBjb2RlIGNhbiB1c2UgbmV3bHkgYWRkZWQgSlNWYWx1ZTo6dG9BdG9taWMgdG8gdXBk
YXRlIEpTU3RyaW5nJ3MgbV92YWx1ZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aE51bGxD
aGVjayk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVUb0F0b21pY1N0cmluZ1dpdGhV
bmRlZmluZWRPck51bGxDaGVjayk6IEFkZGVkLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmg6CisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbToKKyAgICAgICAgKEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlKTogUmV0dXJuIGNvbnN0
IEF0b21pY1N0cmluZyYgd2hlbiBlaXRoZXIgQXRvbWljIGF0dHJpYnV0ZSBpcyBzcGVjaWZpZWQg
b3IgdGhlIHR5cGUgaXMKKyAgICAgICAgUmVmbGVjdC4gTm90ZSB0aGF0IHNldEF0dHJpYnV0ZSBh
bmQgZ2V0QXR0cmlidXRlIGJvdGggdXNlIEF0b21pY1N0cmluZyBmb3IgYWxsIGFyZ3VtZW50cy4K
KyAgICAgICAgKEpTVmFsdWVUb05hdGl2ZSk6IFVzZSBBdG9taWNTdHJpbmcgZXF1aXZhbGVudHMg
d2hlbiBwb3NzaWJsZSB3aGVuIGNvbnZlcnRpbmcgRE9NU3RyaW5nIHRvIGEgV2ViQ29yZSBvYmpl
Y3QuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0OiBBZGRl
ZCAiQXRvbWljIiBhdHRyaWJ1dGUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmNwcDogQmFzZWxpbmVkIHRlc3QgY2FzZXMuCisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cik6CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRs
OgorICAgICAgICAqIGRvbS9FbGVtZW50LmlkbDoKKyAgICAgICAgKiBkb20vTm9kZS5pZGw6CisK
IDIwMTMtMDYtMjQgIEthbmdpbCBIYW4gIDxrYW5naWwuaGFuQHNhbXN1bmcuY29tPgogCiAgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBkb2N1bWVudC5jdXJyZW50U2NyaXB0CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDE1MTk1MSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwOSw2ICsxMDksMTMgQEAgU3RyaW5nIHZhbHVlVG9TdHJpbmdXaXRoTnVsbENo
ZWNrKEV4ZWNTdAogICAgIHJldHVybiB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7
CiB9CiAKK0F0b21pY1N0cmluZyB2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aE51bGxDaGVjayhFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQor
ICAgICAgICByZXR1cm4gbnVsbEF0b207CisgICAgcmV0dXJuIHZhbHVlLnRvQXRvbWljU3RyaW5n
KGV4ZWMpOworfQorCiBTdHJpbmcgdmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVj
ayhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVlLmlzVW5k
ZWZpbmVkT3JOdWxsKCkpCkBAIC0xMTYsNiArMTIzLDEzIEBAIFN0cmluZyB2YWx1ZVRvU3RyaW5n
V2l0aFVuZGVmaW5lZE9yTnVsbEMKICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoZXhlYyktPnZh
bHVlKGV4ZWMpOwogfQogCitBdG9taWNTdHJpbmcgdmFsdWVUb0F0b21pY1N0cmluZ1dpdGhVbmRl
ZmluZWRPck51bGxDaGVjayhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAg
aWYgKHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCisgICAgICAgIHJldHVybiBudWxsQXRvbTsK
KyAgICByZXR1cm4gdmFsdWUudG9BdG9taWNTdHJpbmcoZXhlYyk7Cit9CisKIEpTVmFsdWUganNE
YXRlT3JOdWxsKEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlIHZhbHVlKQogewogICAgIGlmICghc3Rk
Ojppc2Zpbml0ZSh2YWx1ZSkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuaAkocmV2aXNpb24gMTUxOTUxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0OSw3ICsyNDksMTAgQEAgY2xh
c3MgRE9NU3RyaW5nTGlzdDsKICAgICBBdG9taWNTdHJpbmdJbXBsKiBmaW5kQXRvbWljU3RyaW5n
KEpTQzo6UHJvcGVydHlOYW1lKTsKIAogICAgIFN0cmluZyB2YWx1ZVRvU3RyaW5nV2l0aE51bGxD
aGVjayhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7IC8vIG51bGwgaWYgdGhlIHZhbHVl
IGlzIG51bGwKKyAgICBBdG9taWNTdHJpbmcgdmFsdWVUb0F0b21pY1N0cmluZ1dpdGhOdWxsQ2hl
Y2soSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOworCiAgICAgU3RyaW5nIHZhbHVlVG9T
dHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFs
dWUpOyAvLyBudWxsIGlmIHRoZSB2YWx1ZSBpcyBudWxsIG9yIHVuZGVmaW5lZAorICAgIEF0b21p
Y1N0cmluZyB2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTsKIAogICAgIGlubGluZSBpbnQzMl90IGZpbml0ZUlu
dDMyVmFsdWUoSlNDOjpKU1ZhbHVlIHZhbHVlLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgYm9vbCYg
b2theSkKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMTUxOTUxKQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAg
LTMzNjIsNiArMzM2MiwxMSBAQCBzdWIgR2V0TmF0aXZlVHlwZUZyb21TaWduYXR1cmUKICAgICAg
ICAgcmV0dXJuICJpbnQiOwogICAgIH0KIAorICAgICMgRklYTUU6IEdldE5hdGl2ZVR5cGUgc2hv
dWxkIHN1cHBvcnQgQXRvbWljIGV4dGVuc2lvbi4KKyAgICBpZiAoJHR5cGUgZXEgIkRPTVN0cmlu
ZyIgYW5kICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQXRvbWljIn0gb3IgJHNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifSkpIHsKKyAgICAgICAgcmV0
dXJuICJjb25zdCBBdG9taWNTdHJpbmcmIjsKKyAgICB9CisKICAgICByZXR1cm4gR2V0TmF0aXZl
VHlwZSgkdHlwZSk7CiB9CiAKQEAgLTM1MDEsMTEgKzM1MDYsMjIgQEAgc3ViIEpTVmFsdWVUb05h
dGl2ZQogICAgIGlmICgkdHlwZSBlcSAiRE9NU3RyaW5nIikgewogICAgICAgICAjIEZJWE1FOiBU
aGlzIGltcGxlbWVudHMgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGFuZCBbVHJlYXRVbmRlZmlu
ZWRBcz1OdWxsU3RyaW5nXSwKICAgICAgICAgIyBidXQgdGhlIFdlYiBJREwgc3BlYyByZXF1aXJl
cyBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIGFuZCBbVHJlYXRVbmRlZmluZWRBcz1FbXB0eVN0
cmluZ10uCi0gICAgICAgIGlmICgoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRy
ZWF0TnVsbEFzIn0gYW5kICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdE51
bGxBcyJ9IGVxICJOdWxsU3RyaW5nIikgYW5kICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiVHJlYXRVbmRlZmluZWRBcyJ9IGFuZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiVHJlYXRVbmRlZmluZWRBcyJ9IGVxICJOdWxsU3RyaW5nIikpIHsKLSAgICAgICAgICAg
IHJldHVybiAidmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayhleGVjLCAkdmFs
dWUpIgorICAgICAgICBpZiAoKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVh
dE51bGxBcyJ9IGFuZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHJlYXROdWxs
QXMifSBlcSAiTnVsbFN0cmluZyIpCisgICAgICAgICAgICBhbmQgKCRzaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJUcmVhdFVuZGVmaW5lZEFzIn0gYW5kICRzaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJUcmVhdFVuZGVmaW5lZEFzIn0gZXEgIk51bGxTdHJpbmciKSkgewor
ICAgICAgICAgICAgaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBdG9taWMi
fSkgeworICAgICAgICAgICAgICAgIHJldHVybiAidmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRP
ck51bGxDaGVjayhleGVjLCAkdmFsdWUpIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgcmV0dXJuICJ2YWx1ZVRvQXRvbWljU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENo
ZWNrKGV4ZWMsICR2YWx1ZSkiOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlm
ICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9KSB7CisgICAgICAg
ICAgICByZXR1cm4gInZhbHVlVG9BdG9taWNTdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsICR2YWx1
ZSkiOworICAgICAgICB9CisgICAgICAgIGlmICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiVHJlYXROdWxsQXMifSBhbmQgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IlRyZWF0TnVsbEFzIn0gZXEgIk51bGxTdHJpbmciKSB7CisgICAgICAgICAgICByZXR1cm4gInZh
bHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsICR2YWx1ZSkiOwogICAgICAgICB9Ci0gICAg
ICAgIGlmICgoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRyZWF0TnVsbEFzIn0g
YW5kICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdE51bGxBcyJ9IGVxICJO
dWxsU3RyaW5nIikgb3IgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3Qi
fSkgewotICAgICAgICAgICAgcmV0dXJuICJ2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVj
LCAkdmFsdWUpIgorICAgICAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkF0b21pYyJ9KSB7CisgICAgICAgICAgICByZXR1cm4gIiR2YWx1ZS5pc0VtcHR5KCkgPyBudWxs
QXRvbSA6ICR2YWx1ZS50b0F0b21pY1N0cmluZyhleGVjKSI7CiAgICAgICAgIH0KICAgICAgICAg
IyBGSVhNRTogQWRkIHRoZSBjYXNlIGZvciAnaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJUcmVhdFVuZGVmaW5lZEFzIn0gYW5kICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJUcmVhdFVuZGVmaW5lZEFzIn0gZXEgIk51bGxTdHJpbmciKSknLgogICAgICAgICBy
ZXR1cm4gIiR2YWx1ZS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6ICR2YWx1ZS50b1N0cmluZyhleGVj
KS0+dmFsdWUoZXhlYykiOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9J
RExBdHRyaWJ1dGVzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CShyZXZpc2lvbiAxNTE5NTEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xOSw2ICsxOSw3IEBACiAjCiAKIEFjdGl2ZURPTU9iamVjdAorQXRvbWljCiBDUFBQdXJlSW50
ZXJmYWNlCiBDYWNoZWRBdHRyaWJ1dGUKIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHR8
U2NyaXB0U3RhdGV8U2NyaXB0QXJndW1lbnRzfENhbGxTdGFjawpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHJl
dmlzaW9uIDE1MTk1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjc4LDcgKzEyNzgsNyBAQCB2b2lk
IHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlCiAgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlz
T2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3Rl
ZFRoaXMtPmltcGwoKSk7Ci0gICAgY29uc3QgU3RyaW5nJiBuYXRpdmVWYWx1ZSh2YWx1ZVRvU3Ry
aW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
bmF0aXZlVmFsdWUodmFsdWVUb0F0b21pY1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUp
KTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybjsKICAgICBp
bXBsLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRzdHJpbmdhdHRy
QXR0ciwgbmF0aXZlVmFsdWUpOwpAQCAtMTMyNiw3ICsxMzI2LDcgQEAgdm9pZCBzZXRKU1Rlc3RP
YmpSZWZsZWN0ZWRVUkxBdHRyKEV4ZWNTdAogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAg
ICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBs
KCkpOwotICAgIGNvbnN0IFN0cmluZyYgbmF0aXZlVmFsdWUodmFsdWVUb1N0cmluZ1dpdGhOdWxs
Q2hlY2soZXhlYywgdmFsdWUpKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hdGl2ZVZhbHVl
KHZhbHVlVG9BdG9taWNTdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7CiAgICAgaWYg
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC0+c2V0QXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXJsYXR0ckF0dHIsIG5hdGl2ZVZh
bHVlKTsKQEAgLTEzMzgsNyArMTMzOCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3Ry
aW5nQXR0cihFeGUKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGlt
cGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBjb25z
dCBTdHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZh
bHVlKSk7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYXRpdmVWYWx1ZSh2YWx1ZVRvQXRvbWlj
U3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwtPnNldEF0dHJpYnV0ZShXZWJDb3Jl
OjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRTdHJpbmdBdHRyQXR0ciwgbmF0aXZlVmFsdWUpOwpA
QCAtMTM3NCw3ICsxMzc0LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxB
dHRyKAogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0
YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGNvbnN0IFN0cmlu
ZyYgbmF0aXZlVmFsdWUodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsK
KyAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hdGl2ZVZhbHVlKHZhbHVlVG9BdG9taWNTdHJpbmdX
aXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxO
YW1lczo6Y3VzdG9tQ29udGVudFVSTEF0dHJBdHRyLCBuYXRpdmVWYWx1ZSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDE1MTk1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NSW1wbGVtZW50YXRpb24gaW1wbGVtZW50YXRpb247CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgZG9jdW1lbnRFbGVtZW50OwogCi0gICAgW1JldHVybk5l
d09iamVjdCwgUmFpc2VzRXhjZXB0aW9uXSBFbGVtZW50IGNyZWF0ZUVsZW1lbnQoW1RyZWF0TnVs
bEFzPU51bGxTdHJpbmcsRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyB0YWdO
YW1lKTsKKyAgICBbUmV0dXJuTmV3T2JqZWN0LCBSYWlzZXNFeGNlcHRpb25dIEVsZW1lbnQgY3Jl
YXRlRWxlbWVudChbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxEZWZhdWx0PVVuZGVmaW5lZCxBdG9t
aWNdIG9wdGlvbmFsIERPTVN0cmluZyB0YWdOYW1lKTsKICAgICBEb2N1bWVudEZyYWdtZW50ICAg
Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwogICAgIFtSZXR1cm5OZXdPYmplY3RdIFRleHQgY3Jl
YXRlVGV4dE5vZGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgZGF0YSk7
CiAgICAgW1JldHVybk5ld09iamVjdF0gQ29tbWVudCBjcmVhdGVDb21tZW50KFtEZWZhdWx0PVVu
ZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIGRhdGEpOwpAQCAtMzgsNyArMzgsNyBAQAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJp
bmcgZGF0YSk7CiAgICAgW1JldHVybk5ld09iamVjdCwgUmFpc2VzRXhjZXB0aW9uXSBBdHRyIGNy
ZWF0ZUF0dHJpYnV0ZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1l
KTsKICAgICBbUmV0dXJuTmV3T2JqZWN0LCBSYWlzZXNFeGNlcHRpb25dIEVudGl0eVJlZmVyZW5j
ZSBjcmVhdGVFbnRpdHlSZWZlcmVuY2UoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01T
dHJpbmcgbmFtZSk7Ci0gICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWUoW0RlZmF1bHQ9
VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgdGFnbmFtZSk7CisgICAgTm9kZUxpc3QgZ2V0
RWxlbWVudHNCeVRhZ05hbWUoW0RlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERP
TVN0cmluZyB0YWduYW1lKTsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CiAK
QEAgLTQ4LDkgKzQ4LDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbVHJlYXROdWxs
QXM9TnVsbFN0cmluZyxEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIHF1YWxp
ZmllZE5hbWUpOwogICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJldHVybk5ld09i
amVjdCwgUmFpc2VzRXhjZXB0aW9uXSBBdHRyIGNyZWF0ZUF0dHJpYnV0ZU5TKFtUcmVhdE51bGxB
cz1OdWxsU3RyaW5nLERlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNw
YWNlVVJJLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxEZWZhdWx0
PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUpOwotICAgIFtPYmpD
TGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lTlMo
W1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0
cmluZyBuYW1lc3BhY2VVUkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBsb2Nh
bE5hbWUpOwotICAgIEVsZW1lbnQgZ2V0RWxlbWVudEJ5SWQoW0RlZmF1bHQ9VW5kZWZpbmVkXSBv
cHRpb25hbCBET01TdHJpbmcgZWxlbWVudElkKTsKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJh
bWV0ZXJzXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKFtUcmVhdE51bGxBcz1OdWxs
U3RyaW5nLERlZmF1bHQ9VW5kZWZpbmVkLEF0b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVz
cGFjZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtEZWZhdWx0PVVuZGVmaW5lZCxBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBsb2NhbE5h
bWUpOworICAgIEVsZW1lbnQgZ2V0RWxlbWVudEJ5SWQoW0RlZmF1bHQ9VW5kZWZpbmVkLEF0b21p
Y10gb3B0aW9uYWwgRE9NU3RyaW5nIGVsZW1lbnRJZCk7CiAKICAgICAvLyBET00gTGV2ZWwgMyBD
b3JlCiAKQEAgLTIxNiw4ICsyMTYsOCBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgY29tcGF0TW9kZTsKIAogICAgIC8vIE5vZGVTZWxlY3RvciAtIFNlbGVjdG9yIEFQSQotICAg
IFtSYWlzZXNFeGNlcHRpb25dIEVsZW1lbnQgcXVlcnlTZWxlY3RvcihET01TdHJpbmcgc2VsZWN0
b3JzKTsKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSBOb2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKERP
TVN0cmluZyBzZWxlY3RvcnMpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIEVsZW1lbnQgcXVlcnlT
ZWxlY3RvcihbQXRvbWljXSBET01TdHJpbmcgc2VsZWN0b3JzKTsKKyAgICBbUmFpc2VzRXhjZXB0
aW9uXSBOb2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKFtBdG9taWNdIERPTVN0cmluZyBzZWxlY3Rv
cnMpOwogCiAjaWYgZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICYmIEVOQUJMRV9GVUxM
U0NSRUVOX0FQSQogICAgIC8vIE1vemlsbGEgdmVyc2lvbgpAQCAtMzM4LDkgKzMzOCw5IEBACiAK
ICNpZiBkZWZpbmVkKEVOQUJMRV9DVVNUT01fRUxFTUVOVFMpICYmIEVOQUJMRV9DVVNUT01fRUxF
TUVOVFMKICAgICBbQ29uZGl0aW9uYWw9Q1VTVE9NX0VMRU1FTlRTLCBJbXBsZW1lbnRlZEFzPXJl
Z2lzdGVyRWxlbWVudCwgQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIFJhaXNlc0V4Y2VwdGlvbl0gQ3Vz
dG9tRWxlbWVudENvbnN0cnVjdG9yIHdlYmtpdFJlZ2lzdGVyKERPTVN0cmluZyBuYW1lLCBvcHRp
b25hbCBEaWN0aW9uYXJ5IG9wdGlvbnMpOwotICAgIFtSZXR1cm5OZXdPYmplY3QsIFJhaXNlc0V4
Y2VwdGlvbl0gRWxlbWVudCBjcmVhdGVFbGVtZW50KERPTVN0cmluZyBsb2NhbE5hbWUsIFtUcmVh
dE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZUV4dGVuc2lvbik7Ci0gICAgW1JldHVy
bk5ld09iamVjdCwgUmFpc2VzRXhjZXB0aW9uXSBFbGVtZW50IGNyZWF0ZUVsZW1lbnROUyhbVHJl
YXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwgRE9NU3RyaW5nIHF1
YWxpZmllZE5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51
bGxTdHJpbmddIERPTVN0cmluZyB0eXBlRXh0ZW5zaW9uKTsKKyAgICBbUmV0dXJuTmV3T2JqZWN0
LCBSYWlzZXNFeGNlcHRpb25dIEVsZW1lbnQgY3JlYXRlRWxlbWVudChbQXRvbWljXSBET01TdHJp
bmcgbG9jYWxOYW1lLCBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgQXRvbWljXSBET01TdHJpbmcg
dHlwZUV4dGVuc2lvbik7CisgICAgW1JldHVybk5ld09iamVjdCwgUmFpc2VzRXhjZXB0aW9uXSBF
bGVtZW50IGNyZWF0ZUVsZW1lbnROUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgQXRvbWljXSBE
T01TdHJpbmcgbmFtZXNwYWNlVVJJLCBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgQXRvbWljXSBET01T
dHJpbmcgdHlwZUV4dGVuc2lvbik7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfQ1BQ
KSAmJiBMQU5HVUFHRV9DUFAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwJKHJldmlzaW9uIDE1
MTk1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjcsMTQgKzI3LDE0IEBACiAKICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxs
XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRhZ05hbWU7CiAKLSAgICBbVHJlYXRSZXR1
cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgZ2V0QXR0cmlidXRlKFtEZWZhdWx0PVVu
ZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOwotICAgIFtPYmpDTGVnYWN5VW5uYW1l
ZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRBdHRyaWJ1dGUoW0RlZmF1bHQ9
VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyB2
YWx1ZSk7Ci0gICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRp
b25hbCBET01TdHJpbmcgbmFtZSk7Ci0gICAgQXR0ciBnZXRBdHRyaWJ1dGVOb2RlKFtEZWZhdWx0
PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOworICAgIFtUcmVhdFJldHVybmVk
TnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBnZXRBdHRyaWJ1dGUoW0RlZmF1bHQ9VW5kZWZp
bmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKyAgICBbT2JqQ0xlZ2FjeVVu
bmFtZWRQYXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0QXR0cmlidXRlKFtEZWZh
dWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10g
b3B0aW9uYWwgRE9NU3RyaW5nIHZhbHVlKTsKKyAgICB2b2lkIHJlbW92ZUF0dHJpYnV0ZShbRGVm
YXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOworICAgIEF0
dHIgZ2V0QXR0cmlidXRlTm9kZShbRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0aW9uYWwg
RE9NU3RyaW5nIG5hbWUpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIEF0dHIgc2V0QXR0cmlidXRl
Tm9kZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIEF0dHIgbmV3QXR0cik7CiAgICAgW1Jh
aXNlc0V4Y2VwdGlvbl0gQXR0ciByZW1vdmVBdHRyaWJ1dGVOb2RlKFtEZWZhdWx0PVVuZGVmaW5l
ZF0gb3B0aW9uYWwgQXR0ciBvbGRBdHRyKTsKLSAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFn
TmFtZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKyAgICBO
b2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZShbRGVmYXVsdD1VbmRlZmluZWQsIEF0b21pY10g
b3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOwogCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNU
SVZFX0MpCiAgICAgLy8gRm9yIE9iakMgdGhpcyBpcyBkZWZpbmVkIG9uIE5vZGUgZm9yIGxlZ2Fj
eSBzdXBwb3J0LgpAQCAtNDQsMjEgKzQ0LDIxIEBACiAKICAgICAvLyBET00gTGV2ZWwgMiBDb3Jl
CiAKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBET01TdHJpbmcgZ2V0QXR0cmli
dXRlTlMoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFs
IERPTVN0cmluZyBuYW1lc3BhY2VVUkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIGxvY2Fs
TmFtZSk7Ci0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9u
XSB2b2lkIHNldEF0dHJpYnV0ZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLERlZmF1bHQ9VW5k
ZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01T
dHJpbmcgcXVhbGlmaWVkTmFtZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyB2YWx1ZSk7Ci0gICAg
W09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gdm9pZCByZW1vdmVBdHRyaWJ1dGVOUyhbVHJl
YXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERPTVN0cmluZyBsb2NhbE5hbWUpOwotICAg
IFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdO
YW1lTlMoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFs
IERPTVN0cmluZyBuYW1lc3BhY2VVUkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmlu
ZyBsb2NhbE5hbWUpOwotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIEF0dHIgZ2V0
QXR0cmlidXRlTm9kZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLERlZmF1bHQ9VW5kZWZpbmVk
XSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3Ry
aW5nIGxvY2FsTmFtZSk7CisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gRE9NU3Ry
aW5nIGdldEF0dHJpYnV0ZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBEZWZhdWx0PVVuZGVm
aW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWQsIEF0
b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7CisgICAgW09iakNMZWdhY3lVbm5h
bWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldEF0dHJpYnV0ZU5TKFtUcmVh
dE51bGxBcz1OdWxsU3RyaW5nLCBEZWZhdWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBE
T01TdHJpbmcgbmFtZXNwYWNlVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBxdWFs
aWZpZWROYW1lLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZh
dWx0PVVuZGVmaW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgdmFsdWUpOworICAgIFtP
YmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQgcmVtb3ZlQXR0cmlidXRlTlMoW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmcsIEF0b21pY10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtBdG9taWNdIERPTVN0cmluZyBs
b2NhbE5hbWUpOworICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIE5vZGVMaXN0IGdl
dEVsZW1lbnRzQnlUYWdOYW1lTlMoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIERlZmF1bHQ9VW5k
ZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRl
ZmluZWQsIEF0b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7CisgICAgW09iakNM
ZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gQXR0ciBnZXRBdHRyaWJ1dGVOb2RlTlMoW1RyZWF0TnVs
bEFzPU51bGxTdHJpbmcsIERlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0
cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkLCBBdG9taWNdIG9wdGlvbmFsIERPTVN0cmluZyBsb2Nh
bE5hbWUpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIEF0dHIgc2V0QXR0cmlidXRlTm9kZU5TKFtE
ZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgQXR0ciBuZXdBdHRyKTsKICAgICBib29sZWFuIGhh
c0F0dHJpYnV0ZShET01TdHJpbmcgbmFtZSk7Ci0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1l
dGVyc10gYm9vbGVhbiBoYXNBdHRyaWJ1dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxEZWZh
dWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0
aW9uYWwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7CisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1l
dGVyc10gYm9vbGVhbiBoYXNBdHRyaWJ1dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgRGVm
YXVsdD1VbmRlZmluZWQsIEF0b21pY10gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVm
aW5lZCwgQXRvbWljXSBvcHRpb25hbCBET01TdHJpbmcgbG9jYWxOYW1lKTsKIAogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwogCkBAIC05OSw4ICs5OSw4
IEBACiAjZW5kaWYKIAogICAgIC8vIE5vZGVTZWxlY3RvciAtIFNlbGVjdG9yIEFQSQotICAgIFtS
YWlzZXNFeGNlcHRpb25dIEVsZW1lbnQgcXVlcnlTZWxlY3RvcihET01TdHJpbmcgc2VsZWN0b3Jz
KTsKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSBOb2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKERPTVN0
cmluZyBzZWxlY3RvcnMpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIEVsZW1lbnQgcXVlcnlTZWxl
Y3RvcihbQXRvbWljXSBET01TdHJpbmcgc2VsZWN0b3JzKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9u
XSBOb2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKFtBdG9taWNdIERPTVN0cmluZyBzZWxlY3RvcnMp
OwogCiAgICAgLy8gV2ViS2l0IGV4dGVuc2lvbiwgcGVuZGluZyBzcGVjaWZpY2F0aW9uLgogICAg
IFtSYWlzZXNFeGNlcHRpb25dIGJvb2xlYW4gd2Via2l0TWF0Y2hlc1NlbGVjdG9yKFtEZWZhdWx0
PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIHNlbGVjdG9ycyk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaWRsCShyZXZpc2lvbiAxNTE5NTEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTEyNiwxMCArMTI2LDEwIEBACiAKICNpZiAhZGVmaW5lZChMQU5H
VUFHRV9DUFApIHx8ICFMQU5HVUFHRV9DUFAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJ
VkVfQykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DCi0gICAgdm9pZCBhZGRFdmVudExpc3RlbmVy
KERPTVN0cmluZyB0eXBlLCAKKyAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoW0F0b21pY10gRE9N
U3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudExpc3RlbmVyIGxp
c3RlbmVyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiB1c2VD
YXB0dXJlKTsKLSAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIAor
ICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihbQXRvbWljXSBET01TdHJpbmcgdHlwZSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBib29sZWFuIHVzZUNhcHR1cmUpOwog
ICAgIFtSYWlzZXNFeGNlcHRpb25dIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChFdmVudCBldmVudCk7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>