<?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>112831</bug_id>
          
          <creation_ts>2013-03-20 13:19:27 -0700</creation_ts>
          <short_desc>HTMLNames should construct strings at compile time</short_desc>
          <delta_ts>2013-03-21 15:55:27 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>112870</dependson>
    
    <dependson>112873</dependson>
          <blocked>112303</blocked>
    
    <blocked>112769</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>mjs</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>philn</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>859639</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-20 13:19:27 -0700</bug_when>
    <thetext>HTMLNames should construct strings at compile time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859645</commentid>
    <comment_count>1</comment_count>
      <attachid>194104</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-20 13:23:30 -0700</bug_when>
    <thetext>Created attachment 194104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859648</commentid>
    <comment_count>2</comment_count>
      <attachid>194104</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-20 13:26:37 -0700</bug_when>
    <thetext>Comment on attachment 194104
Patch

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

Looks good to me.  Could you comment on how much of a startup win this is?

&gt; Source/WebCore/dom/make_names.pl:131
&gt; +    print F &quot;    // Note: These AtomicStrings might end up with different StringImpls,\n&quot;;

... if an earlier identical static string was already inserted into the AtomicStringTable...

&gt; Source/WebCore/dom/make_names.pl:716
&gt; +    print F StaticString::GenerateValidateStrings(\%allStrings);

GenerateValidateStrings?  Seems like an odd name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859649</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-20 13:26:56 -0700</bug_when>
    <thetext>CCing dbates for perl ninjatude.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859652</commentid>
    <comment_count>4</comment_count>
      <attachid>194104</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-20 13:27:34 -0700</bug_when>
    <thetext>Comment on attachment 194104
Patch

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

&gt; Source/WebCore/bindings/scripts/StaticString.pm:29
&gt; +sub GenerateStrings

I think the perl ninjas would tell you these should have ($) to let perl know they take one argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859661</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-20 13:32:59 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 194104 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=194104&amp;action=review
&gt; 
&gt; Looks good to me.  Could you comment on how much of a startup win this is?

Investigating that now.  At this point, however, I&apos;m more excited about this patch as a stepping stone to making these thread-safe.

&gt; &gt; Source/WebCore/dom/make_names.pl:131
&gt; &gt; +    print F &quot;    // Note: These AtomicStrings might end up with different StringImpls,\n&quot;;
&gt; 
&gt; ... if an earlier identical static string was already inserted into the AtomicStringTable...

I should probably remove this comment.  It&apos;s more relevant for when we make these strings static.

&gt; &gt; Source/WebCore/dom/make_names.pl:716
&gt; &gt; +    print F StaticString::GenerateValidateStrings(\%allStrings);
&gt; 
&gt; GenerateValidateStrings?  Seems like an odd name.

GenerateAsserts?  GenerateStringAsserts?  I&apos;m open to naming suggestions.

&gt; &gt; Source/WebCore/bindings/scripts/StaticString.pm:29
&gt; &gt; +sub GenerateStrings
&gt; 
&gt; I think the perl ninjas would tell you these should have ($) to let perl know they take one argument.

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859666</commentid>
    <comment_count>6</comment_count>
      <attachid>194104</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-03-20 13:36:59 -0700</bug_when>
    <thetext>Comment on attachment 194104
Patch

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

Seems good. Anders and Ben were talking about making a version of the hash function that runs at C++ compile time, but given we already have a script in play here, seems good to do it this way.

&gt; Source/WTF/wtf/text/StringImpl.h:777
&gt; +    struct StaticData {

Looks good. I’d probably name this something more like StaticASCIILiteral, to make it clearer why it’s OK to just have m_data and why it’s OK to have initial values that mimic ConstructFromLiteral.

&gt; Source/WTF/wtf/text/StringImpl.h:782
&gt; +        unsigned m_refCount;
&gt; +        unsigned m_length;
&gt; +        const LChar* m_data8;
&gt; +        void* m_buffer;
&gt; +        unsigned m_hashAndFlags;

Normally for a struct we’d leave off the m_ prefixes, but I can see an argument for keeping them here. Might be clearer with a comment stating that these match the data members of the StringImpl class itself.

&gt; Source/WTF/wtf/text/StringImpl.h:791
&gt; +    void assertValidHash()

How about the name assertHasValidHash?

Since these are assertions they don’t need to be inlined, why not put it the code the .cpp file instead of the .h file?

&gt; Source/WTF/wtf/text/StringImpl.h:798
&gt; +private:

I suggest putting a comment here about how this data needs to match the struct above.

&gt; Source/WebCore/dom/QualifiedName.cpp:177
&gt; +    new (reinterpret_cast&lt;void*&gt;(targetAddress)) QualifiedName(nullAtom, AtomicString(name), nameNamespace);

Not new to your patch, but why do we reinterpret_cast a void* to void*?

&gt; Source/WebCore/dom/QualifiedName.h:148
&gt; -void createQualifiedName(void* targetAddress, const char* name, unsigned nameLength);
&gt; -void createQualifiedName(void* targetAddress, const char* name, unsigned nameLength, const AtomicString&amp; nameNamespace);
&gt; +void createQualifiedName(void* targetAddress, StringImpl* name);
&gt; +void createQualifiedName(void* targetAddress, StringImpl* name, const AtomicString&amp; nameNamespace);

Would be nice if it was clearer that these are for some kind of exotic use. Might even want to use the word construct instead of create to emphasize that.

&gt; Source/WebCore/dom/make_names.pl:132
&gt; +    print F &quot;    // Note: These AtomicStrings might end up with different StringImpls,\n&quot;;
&gt; +    print F &quot;    // but they will always end up with static StringImpls.\n&quot;;

This comment seems a bit enigmatic. I think I’m an expert on AtomicString and I’m not exactly sure what it means or why it’s true. What does it mean to say they always “end up with static impls”? And is the reason they do because of the timing of when this function is called? Or some other reason?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859673</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-20 13:41:15 -0700</bug_when>
    <thetext>Finished: 10.706664 s
(In reply to comment #6)
&gt; (From update of attachment 194104 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=194104&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/QualifiedName.cpp:177
&gt; &gt; +    new (reinterpret_cast&lt;void*&gt;(targetAddress)) QualifiedName(nullAtom, AtomicString(name), nameNamespace);
&gt; 
&gt; Not new to your patch, but why do we reinterpret_cast a void* to void*?

That&apos;s been bugging me too.  I&apos;ll fix it in a separate patch.

&gt; &gt; Source/WebCore/dom/make_names.pl:132
&gt; &gt; +    print F &quot;    // Note: These AtomicStrings might end up with different StringImpls,\n&quot;;
&gt; &gt; +    print F &quot;    // but they will always end up with static StringImpls.\n&quot;;
&gt; 
&gt; This comment seems a bit enigmatic. I think I’m an expert on AtomicString and I’m not exactly sure what it means or why it’s true. What does it mean to say they always “end up with static impls”? And is the reason they do because of the timing of when this function is called? Or some other reason?

I should have removed this comment.  It&apos;s relevant for the next patch when we mark these StringImpls as static and make them safe to use them from multiple threads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859675</commentid>
    <comment_count>8</comment_count>
      <attachid>194104</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-03-20 13:41:49 -0700</bug_when>
    <thetext>Comment on attachment 194104
Patch

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

&gt;&gt; Source/WTF/wtf/text/StringImpl.h:791
&gt;&gt; +    void assertValidHash()
&gt; 
&gt; How about the name assertHasValidHash?
&gt; 
&gt; Since these are assertions they don’t need to be inlined, why not put it the code the .cpp file instead of the .h file?

Or maybe assertHashIsValid or assertHashIsCorrect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859677</commentid>
    <comment_count>9</comment_count>
      <attachid>194104</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-03-20 13:42:51 -0700</bug_when>
    <thetext>Comment on attachment 194104
Patch

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

&gt; Source/WebCore/WebCore.gyp/WebCore.gyp:750
&gt; +            &apos;../bindings/scripts/Hasher.pm&apos;,
&gt; +            &apos;../bindings/scripts/StaticString.pm&apos;,

Do other build systems need changes like this, or is this something only relevant for gyp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859681</commentid>
    <comment_count>10</comment_count>
      <attachid>194104</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-03-20 13:44:06 -0700</bug_when>
    <thetext>Comment on attachment 194104
Patch

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

&gt;&gt; Source/WebCore/WebCore.gyp/WebCore.gyp:750
&gt;&gt; +            &apos;../bindings/scripts/Hasher.pm&apos;,
&gt;&gt; +            &apos;../bindings/scripts/StaticString.pm&apos;,
&gt; 
&gt; Do other build systems need changes like this, or is this something only relevant for gyp?

Maybe DerivedSources.make needs a similar change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859694</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-20 13:55:45 -0700</bug_when>
    <thetext>&gt; (From update of attachment 194104 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=194104&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/WebCore.gyp/WebCore.gyp:750
&gt; &gt; +            &apos;../bindings/scripts/Hasher.pm&apos;,
&gt; &gt; +            &apos;../bindings/scripts/StaticString.pm&apos;,
&gt;
&gt; Do other build systems need changes like this, or is this something only relevant for gyp?
&gt;
&gt; Maybe DerivedSources.make needs a similar change.

I&apos;ll investigate before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859705</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-20 14:05:10 -0700</bug_when>
    <thetext>This patch is a 15% improvement to my hacky start-up benchmark.  tc_malloc itself drops from 1.95% of startup time to 1.74%.  There are 43% fewer calls to WTF::fastMalloc after the patch.

A large fraction of the remaining calls to WTF::fastMalloc are coming from EventNames, which could probably benefit from a similar optimization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859723</commentid>
    <comment_count>13</comment_count>
      <attachid>194121</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-20 14:16:53 -0700</bug_when>
    <thetext>Created attachment 194121
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859730</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-20 14:20:09 -0700</bug_when>
    <thetext>Do we know what affect on binary size we should expect from this?  The perf sheriffs may notice a jump.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859742</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-20 14:28:49 -0700</bug_when>
    <thetext>This patch increases the binary size of DumpRenderTree by 0.02%.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859743</commentid>
    <comment_count>16</comment_count>
      <attachid>194125</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-20 14:31:54 -0700</bug_when>
    <thetext>Created attachment 194125
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859797</commentid>
    <comment_count>17</comment_count>
      <attachid>194125</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-20 15:29:35 -0700</bug_when>
    <thetext>Comment on attachment 194125
Patch for landing

Attachment 194125 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17187662</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859799</commentid>
    <comment_count>18</comment_count>
      <attachid>194134</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-20 15:30:21 -0700</bug_when>
    <thetext>Created attachment 194134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859801</commentid>
    <comment_count>19</comment_count>
      <attachid>194134</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-20 15:35:25 -0700</bug_when>
    <thetext>Comment on attachment 194134
Patch

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

&gt; Source/WebCore/DerivedSources.make:829
&gt; +WebKitFontFamilyNames.cpp WebKitFontFamilyNames.h : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm css/WebKitFontFamilyNames.in

If we were really fancy we would use a variable in Make for these 3 files.  Or maybe a rule?  basically this depends on make_names, but make_names depends on these other two files.  I do not speak Make well enough to do such craziness however (and don&apos;t expect you to).

&gt; Source/WebCore/dom/make_names.pl:224
&gt; +sub valueForName

Same ($) nit as before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859802</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-20 15:35:56 -0700</bug_when>
    <thetext>(You should feel free to ignore my nits above.  I believe you should mostly just commit this thing and iterate at this point.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859807</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-20 15:38:27 -0700</bug_when>
    <thetext>&gt; (You should feel free to ignore my nits above.  I believe you should mostly just commit this thing and iterate at this point.)

If it&apos;s ok with you, I&apos;d like to address these issues in a followup patch.  /me is slightly discouraged fighting with N build systems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859884</commentid>
    <comment_count>22</comment_count>
      <attachid>194134</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 17:34:08 -0700</bug_when>
    <thetext>Comment on attachment 194134
Patch

Clearing flags on attachment: 194134

Committed r146419: &lt;http://trac.webkit.org/changeset/146419&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859885</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 17:34:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859938</commentid>
    <comment_count>24</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-20 18:57:24 -0700</bug_when>
    <thetext>It seems like this patch broke Windows Debug tests:
http://build.webkit.org/builders/Apple%20Win%207%20Debug%20%28Tests%29/builds/50581 (146417)
http://build.webkit.org/builders/Apple%20Win%207%20Debug%20%28Tests%29/builds/50582 (146419)

All tests are crashing. Just to verify this, I&apos;ve tried a clean rebuild of WebKit:
http://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/64494

but this also resulted in crashes:
http://build.webkit.org/builders/Apple%20Win%207%20Debug%20%28Tests%29/builds/50585</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859940</commentid>
    <comment_count>25</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-20 19:01:12 -0700</bug_when>
    <thetext>How would one get crash-logs/backtraces from that bot?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859941</commentid>
    <comment_count>26</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-20 19:03:13 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; How would one get crash-logs/backtraces from that bot?

Apparently we can&apos;t :( I think this used to work but got broken at some point in the past. Anyhow, I&apos;ve asked Roger to generate stack trace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859956</commentid>
    <comment_count>27</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-20 19:32:22 -0700</bug_when>
    <thetext>This also broke Mac debug testers:
http://build.webkit.org/builders/Apple%20MountainLion%20Debug%20WK1%20%28Tests%29/builds/6554 (r146415)
http://build.webkit.org/builders/Apple%20MountainLion%20Debug%20WK1%20%28Tests%29/builds/6555 (r146419)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859957</commentid>
    <comment_count>28</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-20 19:32:58 -0700</bug_when>
    <thetext>e.g.
http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK1%20(Tests)/r146419%20(6555)/results.html

Application Specific Information:
CRASHING TEST: canvas/philip/tests/2d.canvas.readonly.html

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x000000010bbf211a WTF::ValueCheck&lt;WTF::AtomicStringImpl*&gt;::checkConsistency(WTF::AtomicStringImpl const*) + 106 (ValueCheck.h:45)
1   com.apple.WebCore             	0x000000010bf1ef75 WTF::HashTable&lt;WTF::AtomicStringImpl*, WTF::KeyValuePair&lt;WTF::AtomicStringImpl*, WebCore::Element*&gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::AtomicStringImpl*, WebCore::Element*&gt; &gt;, WTF::PtrHash&lt;WTF::AtomicStringImpl*&gt;, WTF::HashMapValueTraits&lt;WTF::HashTraits&lt;WTF::AtomicStringImpl*&gt;, WTF::HashTraits&lt;WebCore::Element*&gt; &gt;, WTF::HashTraits&lt;WTF::AtomicStringImpl*&gt; &gt;::checkTableConsistencyExceptSize() const + 293 (HashTable.h:1249)
2   com.apple.WebCore             	0x000000010bf1ed89 WTF::HashTable&lt;WTF::AtomicStringImpl*, WTF::KeyValuePair&lt;WTF::AtomicStringImpl*, WebCore::Element*&gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::AtomicStringImpl*, WebCore::Element*&gt; &gt;, WTF::PtrHash&lt;WTF::AtomicStringImpl*&gt;, WTF::HashMapValueTraits&lt;WTF::HashTraits&lt;WTF::AtomicStringImpl*&gt;, WTF::HashTraits&lt;WebCore::Element*&gt; &gt;, WTF::HashTraits&lt;WTF::AtomicStringImpl*&gt; &gt;::checkTableConsistency() const + 25 (HashTable.h:1223)
3   com.apple.WebCore             	0x000000010bf18525 WTF::HashMap&lt;WTF::AtomicStringImpl*, WebCore::Element*, WTF::PtrHash&lt;WTF::AtomicStringImpl*&gt;, WTF::HashTraits&lt;WTF::AtomicStringImpl*&gt;, WTF::HashTraits&lt;WebCore::Element*&gt; &gt;::checkConsistency() const + 21 (HashMap.h:413)
4   com.apple.WebCore             	0x000000010bf18661 WebCore::Element* WebCore::DocumentOrderedMap::get&lt;&amp;(WebCore::keyMatchesId(WTF::AtomicStringImpl*, WebCore::Element*))&gt;(WTF::AtomicStringImpl*, WebCore::TreeScope const*) const + 193 (DocumentOrderedMap.cpp:122)
5   com.apple.WebCore             	0x000000010bf18095 WebCore::DocumentOrderedMap::getElementById(WTF::AtomicStringImpl*, WebCore::TreeScope const*) const + 37 (DocumentOrderedMap.cpp:145)
6   com.apple.WebCore             	0x000000010d518176 WebCore::TreeScope::getElementById(WTF::AtomicString const&amp;) const + 150 (TreeScope.cpp:149)
7   com.apple.WebCore             	0x000000010be9153f WebCore::Document::getElementById(WTF::AtomicString const&amp;) const + 47 (Document.cpp:709)
8   com.apple.WebCore             	0x000000010c6fde5a WebCore::jsDocumentPrototypeFunctionGetElementById(JSC::ExecState*) + 666 (JSDocument.cpp:2431)
9   ???                           	0x0000204460c01045 0 + 35478053064773
10  com.apple.JavaScriptCore      	0x000000010a381254 JSC::JITCode::execute(JSC::JSStack*, JSC::ExecState*, JSC::JSGlobalData*) + 84 (JITCode.h:135)
11  com.apple.JavaScriptCore      	0x000000010a37e3ff JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 1519 (Interpreter.cpp:1059)
12  com.apple.JavaScriptCore      	0x000000010a185922 JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 306 (CallData.cpp:40)
13  com.apple.WebCore             	0x000000010c66e0d2 WebCore::JSMainThreadExecState::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 146 (JSMainThreadExecState.h:56)
14  com.apple.WebCore             	0x000000010c7bef46 WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) + 1238 (JSEventListener.cpp:129)
15  com.apple.WebCore             	0x000000010c10c712 WebCore::EventTarget::fireEventListeners(WebCore::Event*, WebCore::EventTargetData*, WTF::Vector&lt;WebCore::RegisteredEventListener, 1ul&gt;&amp;) + 498 (EventTarget.cpp:258)
16  com.apple.WebCore             	0x000000010c10c32c WebCore::EventTarget::fireEventListeners(WebCore::Event*) + 380 (EventTarget.cpp:203)
17  com.apple.WebCore             	0x000000010c04b880 WebCore::DOMWindow::dispatchEvent(WTF::PassRefPtr&lt;WebCore::Event&gt;, WTF::PassRefPtr&lt;WebCore::EventTarget&gt;) + 272 (DOMWindow.cpp:1714)
18  com.apple.WebCore             	0x000000010c052958 WebCore::DOMWindow::dispatchLoadEvent() + 296 (DOMWindow.cpp:1688)
19  com.apple.WebCore             	0x000000010be99cdf WebCore::Document::dispatchWindowLoadEvent() + 143 (Document.cpp:3703)
20  com.apple.WebCore             	0x000000010be97732 WebCore::Document::implicitClose() + 466 (Document.cpp:2459)
21  com.apple.WebCore             	0x000000010c1dbf9b WebCore::FrameLoader::checkCallImplicitClose() + 155 (FrameLoader.cpp:838)
22  com.apple.WebCore             	0x000000010c1dbc46 WebCore::FrameLoader::checkCompleted() + 358 (FrameLoader.cpp:782)
23  com.apple.WebCore             	0x000000010c1dbe05 WebCore::FrameLoader::loadDone() + 21 (FrameLoader.cpp:727)
24  com.apple.WebCore             	0x000000010bbb9532 WebCore::CachedResourceLoader::loadDone(WebCore::CachedResource*) + 114 (CachedResourceLoader.cpp:759)
25  com.apple.WebCore             	0x000000010d355a2f WebCore::SubresourceLoader::releaseResources() + 191 (SubresourceLoader.cpp:335)
26  com.apple.WebCore             	0x000000010d11c1a9 WebCore::ResourceLoader::didFinishLoading(double) + 73 (ResourceLoader.cpp:347)
27  com.apple.WebCore             	0x000000010d355629 WebCore::SubresourceLoader::didFinishLoading(double) + 569 (SubresourceLoader.cpp:292)
28  com.apple.WebCore             	0x000000010d11cad5 WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle*, double) + 53 (ResourceLoader.cpp:501)
29  com.apple.WebCore             	0x000000010d1191aa -[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:] + 186 (ResourceHandleMac.mm:798)
30  com.apple.Foundation          	0x00007fff9005d528 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke_0 + 28
31  com.apple.Foundation          	0x00007fff9005d46c -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 227
32  com.apple.Foundation          	0x00007fff9005d368 -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 63
33  com.apple.CFNetwork           	0x00007fff8e6f45c1 ___delegate_didFinishLoading_block_invoke_0 + 40
34  com.apple.CFNetwork           	0x00007fff8e6e6a7a ___withDelegateAsync_block_invoke_0 + 90
35  com.apple.CFNetwork           	0x00007fff8e7772ea __block_global_1 + 28
36  com.apple.CoreFoundation      	0x00007fff95ba9154 CFArrayApplyFunction + 68
37  com.apple.CFNetwork           	0x00007fff8e6d77e4 RunloopBlockContext::perform() + 124
38  com.apple.CFNetwork           	0x00007fff8e6d76bb MultiplexerSource::perform() + 221
39  com.apple.CoreFoundation      	0x00007fff95b8ab31 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
40  com.apple.CoreFoundation      	0x00007fff95b8a455 __CFRunLoopDoSources0 + 245
41  com.apple.CoreFoundation      	0x00007fff95bad7f5 __CFRunLoopRun + 789
42  com.apple.CoreFoundation      	0x00007fff95bad0e2 CFRunLoopRunSpecific + 290
43  com.apple.Foundation          	0x00007fff900daf5e -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 268
44  DumpRenderTree                	0x0000000109f8f9f9 runTest(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;) + 5017 (DumpRenderTree.mm:1372)
45  DumpRenderTree                	0x0000000109f8e5ea runTestingServerLoop() + 282 (DumpRenderTree.mm:832)
46  DumpRenderTree                	0x0000000109f8dfe5 dumpRenderTree(int, char const**) + 405 (DumpRenderTree.mm:887)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859961</commentid>
    <comment_count>29</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-20 19:37:45 -0700</bug_when>
    <thetext>This also broke Chromium debug testers. e.g.
http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.6%20%28dbg%29/builds/3309 (r146413)
http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.6%20%28dbg%29/builds/3310 (r146426)

http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20%28dbg%29/builds/7326 (r146410)
http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20%28dbg%29/builds/7327 (r146419)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859963</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 19:38:52 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 112870</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859970</commentid>
    <comment_count>31</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-20 19:58:25 -0700</bug_when>
    <thetext>This ASSERT is trying to check that the StringImpl was allocated by malloc, which is of course not true after this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860141</commentid>
    <comment_count>32</comment_count>
      <attachid>194202</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-21 01:55:40 -0700</bug_when>
    <thetext>Created attachment 194202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860143</commentid>
    <comment_count>33</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-21 01:56:47 -0700</bug_when>
    <thetext>With the discussion in bug 112873 still going.  I&apos;ve posted a patch which just disables this ValueCheck assert for StringImpl, since it&apos;s no longer valid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860164</commentid>
    <comment_count>34</comment_count>
      <attachid>194209</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-21 02:37:53 -0700</bug_when>
    <thetext>Created attachment 194209
Forgot AtomicStringImpl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860179</commentid>
    <comment_count>35</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-21 03:21:34 -0700</bug_when>
    <thetext>I expect this patch to resolve the Debug crashes.

% run-webkit-tests --debug canvas/philip/tests/2d.canvas.readonly.html
Test configuration: &lt;mountainlion, x86_64, debug&gt;
Using Debug build
Found 1 test; running 1, skipping 0.
The test ran as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860320</commentid>
    <comment_count>36</comment_count>
      <attachid>194209</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-21 07:33:04 -0700</bug_when>
    <thetext>Comment on attachment 194209
Forgot AtomicStringImpl

Clearing flags on attachment: 194209

Committed r146464: &lt;http://trac.webkit.org/changeset/146464&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860321</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-21 07:33:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860804</commentid>
    <comment_count>38</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2013-03-21 15:49:43 -0700</bug_when>
    <thetext>Why remove the ValueCheck instead of checking StrimgImpl::isStatic()? That would have fixed the assertion failure without removing the check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860810</commentid>
    <comment_count>39</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-21 15:55:27 -0700</bug_when>
    <thetext>&gt; Why remove the ValueCheck instead of checking StrimgImpl::isStatic()? That would have fixed the assertion failure without removing the check.

These strings won&apos;t be static (in the sense of isStatic) until bug 112769 lands.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194104</attachid>
            <date>2013-03-20 13:23:30 -0700</date>
            <delta_ts>2013-03-20 14:16:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112831-20130320131919.patch</filename>
            <type>text/plain</type>
            <size>16409</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIyMDNmZjgyNWJmYjQ1YjcwZmYzMjRj
NzY3ZTg2NTE4ZWZlZjIzMTAuLjJjYTA4Y2Y0NDU2ZjkyZTE3MjI3NmYxZjE3YTUxZDA5ZDQ5YWI3
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDMtMjAgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBIVE1MTmFtZXMgc2hvdWxkIGNvbnN0cnVjdCBzdHJpbmdz
IGF0IGNvbXBpbGUgdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEyODMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAgIChTdHJpbmdJbXBsKToK
KyAgICAgICAgKFN0YXRpY0RhdGEpOgorICAgICAgICAgICAgLSBUaGlzIHN0cnVjdCBsZXRzIHVz
IGNvbnN0cnVjdCBTdHJpbmdJbXBsIG9iamVjdHMgYXQgY29tcGlsZSB0aW1lLgorICAgICAgICAo
V1RGOjpTdHJpbmdJbXBsOjphc3NlcnRWYWxpZEhhc2gpOgorICAgICAgICAgICAgLSBUaGlzIGZ1
bmN0aW9uIGxldHMgdXMgc2FuaXR5IGNoZWNrIFN0cmluZ0ltcGwgb2JqZWN0cyBjcmVhdGVkIGZy
b20gU3RhdGljRGF0YS4KKwogMjAxMy0wMy0yMCAgSnVuZ0ppayBMZWUgIDxqdW5namlrLmxlZUBz
YW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBEaXNhYmxlIFJFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FX1RJTUVSIHRvIHJlbmRlciBhIG5ldyBhbmltYXRpb24gZnJhbWUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MmRhMTVlZDJkZmRmZDllY2RjY2Y5NTc2MzhlMmVhYWZlOTA3NGIwMC4uNGI5NjJmNDgzNGZlYmUw
MzU2MjM2MGNhNWJjN2UxY2YzNjdkZDVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisy
MDEzLTAzLTIwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSFRN
TE5hbWVzIHNob3VsZCBjb25zdHJ1Y3Qgc3RyaW5ncyBhdCBjb21waWxlIHRpbWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjgzMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdGVhY2hl
cyBtYWtlX25hbWVzIGhvdyB0byBjb25zdHJ1Y3Qgc3RyaW5ncyBhdCBjb21waWxlIHRpbWUsCisg
ICAgICAgIGVsaW1pbmF0aW5nIGEgbGFyZ2UgbnVtYmVyIG9mIHN0YXJ0dXAgbWFsbG9jcy4KKwor
ICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
L3NjcmlwdHMvYWN0aW9uX21ha2VuYW1lcy5weToKKyAgICAgICAgICAgIC0gVGVhY2ggdGhlIENo
cm9taXVtIGJ1aWxkIGhvdyB0byBkZWFsIHdpdGggUGVybCBtb2R1bGVzLgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtOiBBZGRlZC4KKyAgICAgICAgICAgIC0gQSBQ
ZXJsIG1vZHVsZSBmb3IgY29uc3RydWN0aW5nIHN0YXRpYyBzdHJpbmdzLgorICAgICAgICAoR2Vu
ZXJhdGVTdHJpbmdzKToKKyAgICAgICAgKEdlbmVyYXRlVmFsaWRhdGVTdHJpbmdzKToKKyAgICAg
ICAgKiBkb20vUXVhbGlmaWVkTmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVRdWFs
aWZpZWROYW1lKToKKyAgICAgICAgICAgIC0gY3JlYXRlUXVhbGlmaWVkTmFtZSBub3cgdGFrZXMg
YW4gYWxyZWFkeS1jb25zdHJ1Y3RlZCBTdHJpbmdJbXBsCisgICAgICAgICAgICAgIG9iamVjdC4K
KyAgICAgICAgKiBkb20vUXVhbGlmaWVkTmFtZS5oOgorICAgICAgICAqIGRvbS9tYWtlX25hbWVz
LnBsOgorICAgICAgICAodmFsdWVGb3JOYW1lKToKKyAgICAgICAgKG5hbWVzVG9TdHJpbmdzKToK
KyAgICAgICAgKHByaW50TmFtZXNDcHBGaWxlKToKKyAgICAgICAgKHByaW50RGVmaW5pdGlvbnMp
OgorICAgICAgICAgICAgLSBUZWFjaCBtYWtlX25hbWVzIGhvdyB0byB1c2UgU3RhdGljU3RyaW5n
LnBtLgorCiAyMDEzLTAzLTIwICBNaWNoYWVsIFBydWV0dCAgPG1pY2hhZWxANjhrLm9yZz4KIAog
ICAgICAgICBbVjhdIFNpbXBsaWZ5IGltcGxlbWVudGF0aW9uIG9mIEVuZm9yY2VSYW5nZSBjb252
ZXJzaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmggYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAppbmRleCBmMWViNjcxNzhiMjVjZDlkODFk
MWYyMjBlZDM4MmNmNjNiYTk5MTkzLi42NmQzZjllYjA2ODRiNzI2ZDg0Y2EyZGUxNTdmMzJiMjRi
YzVhZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaApAQCAtNzcyLDYgKzc3MiwzMCBAQCBw
cml2YXRlOgogI2lmZGVmIFNUUklOR19TVEFUUwogICAgIFdURl9FWFBPUlREQVRBIHN0YXRpYyBT
dHJpbmdTdGF0cyBtX3N0cmluZ1N0YXRzOwogI2VuZGlmCisKK3B1YmxpYzoKKyAgICBzdHJ1Y3Qg
U3RhdGljRGF0YSB7CisgICAgICAgIHVuc2lnbmVkIG1fcmVmQ291bnQ7CisgICAgICAgIHVuc2ln
bmVkIG1fbGVuZ3RoOworICAgICAgICBjb25zdCBMQ2hhciogbV9kYXRhODsKKyAgICAgICAgdm9p
ZCogbV9idWZmZXI7CisgICAgICAgIHVuc2lnbmVkIG1faGFzaEFuZEZsYWdzOworCisgICAgICAg
IC8vIFRoZXNlIHZhbHVlcyBtaW1pYyBDb25zdHJ1Y3RGcm9tTGl0ZXJhbC4KKyAgICAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIHNfaW5pdGlhbFJlZkNvdW50ID0gc19yZWZDb3VudEluY3JlbWVu
dDsKKyAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfaW5pdGlhbEZsYWdzID0gc19oYXNo
RmxhZzhCaXRCdWZmZXIgfCBCdWZmZXJJbnRlcm5hbCB8IHNfaGFzaEZsYWdIYXNUZXJtaW5hdGlu
Z051bGxDaGFyYWN0ZXI7CisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX2hhc2hTaGlm
dCA9IHNfZmxhZ0NvdW50OworICAgIH07CisKKyNpZm5kZWYgTkRFQlVHCisgICAgdm9pZCBhc3Nl
cnRWYWxpZEhhc2goKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc0hhc2goKSk7CisgICAgICAg
IEFTU0VSVChleGlzdGluZ0hhc2goKSA9PSBTdHJpbmdIYXNoZXI6OmNvbXB1dGVIYXNoQW5kTWFz
a1RvcDhCaXRzKGNoYXJhY3RlcnM4KCksIGxlbmd0aCgpKSk7CisgICAgfQorI2VuZGlmCisKK3By
aXZhdGU6CiAgICAgdW5zaWduZWQgbV9yZWZDb3VudDsKICAgICB1bnNpZ25lZCBtX2xlbmd0aDsK
ICAgICB1bmlvbiB7CkBAIC03ODksNiArODEzLDggQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIHVu
c2lnbmVkIG1faGFzaEFuZEZsYWdzOwogfTsKIAorQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFN0cmlu
Z0ltcGwpID09IHNpemVvZihTdHJpbmdJbXBsOjpTdGF0aWNEYXRhKSwgU3RyaW5nSW1wbF9zaG91
bGRfbWF0Y2hfaXRzX1N0YXRpY0RhdGEpOworCiB0ZW1wbGF0ZSA8PgogQUxXQVlTX0lOTElORSBj
b25zdCBMQ2hhciogU3RyaW5nSW1wbDo6Z2V0Q2hhcmFjdGVyczxMQ2hhcj4oKSBjb25zdCB7IHJl
dHVybiBjaGFyYWN0ZXJzOCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwL1dlYkNvcmUuZ3lwIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5n
eXAKaW5kZXggZDNlOTE4MjY5MTJlNDI2ZDQxMDQ3NmIxODA4NDIyYzI2NzY5YmRkOS4uZTYyZTYz
M2ZiYjU3ZmZkYTNiMzM5YjUzYTBjMTMzYWMwOTNhOTUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXAvV2ViQ29yZS5neXAKQEAgLTc0Niw2ICs3NDYsOCBAQAogICAgICAgICB7CiAgICAgICAg
ICAgJ2FjdGlvbl9uYW1lJzogJ0hUTUxOYW1lcycsCiAgICAgICAgICAgJ2lucHV0cyc6IFsKKyAg
ICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbScsCisgICAgICAgICAgICAn
Li4vYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0nLAogICAgICAgICAgICAgJy4uL2Rv
bS9tYWtlX25hbWVzLnBsJywKICAgICAgICAgICAgICcuLi9odG1sL0hUTUxUYWdOYW1lcy5pbics
CiAgICAgICAgICAgICAnLi4vaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4nLApAQCAtNzczLDYg
Kzc3NSw4IEBACiAgICAgICAgIHsKICAgICAgICAgICAnYWN0aW9uX25hbWUnOiAnV2ViS2l0Rm9u
dEZhbWlseU5hbWVzJywKICAgICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAgJy4uL2Jp
bmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtJywKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3Jp
cHRzL1N0YXRpY1N0cmluZy5wbScsCiAgICAgICAgICAgICAnLi4vZG9tL21ha2VfbmFtZXMucGwn
LAogICAgICAgICAgICAgJy4uL2Nzcy9XZWJLaXRGb250RmFtaWx5TmFtZXMuaW4nLAogICAgICAg
ICAgIF0sCkBAIC03OTQsNiArNzk4LDggQEAKICAgICAgICAgewogICAgICAgICAgICdhY3Rpb25f
bmFtZSc6ICdTVkdOYW1lcycsCiAgICAgICAgICAgJ2lucHV0cyc6IFsKKyAgICAgICAgICAgICcu
Li9iaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbScsCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mv
c2NyaXB0cy9TdGF0aWNTdHJpbmcucG0nLAogICAgICAgICAgICAgJy4uL2RvbS9tYWtlX25hbWVz
LnBsJywKICAgICAgICAgICAgICcuLi9zdmcvc3ZndGFncy5pbicsCiAgICAgICAgICAgICAnLi4v
c3ZnL3N2Z2F0dHJzLmluJywKQEAgLTg4Miw2ICs4ODgsOCBAQAogICAgICAgICB7CiAgICAgICAg
ICAgJ2FjdGlvbl9uYW1lJzogJ01hdGhNTE5hbWVzJywKICAgICAgICAgICAnaW5wdXRzJzogWwor
ICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtJywKKyAgICAgICAgICAg
ICcuLi9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbScsCiAgICAgICAgICAgICAnLi4v
ZG9tL21ha2VfbmFtZXMucGwnLAogICAgICAgICAgICAgJy4uL21hdGhtbC9tYXRodGFncy5pbics
CiAgICAgICAgICAgICAnLi4vbWF0aG1sL21hdGhhdHRycy5pbicsCkBAIC0xMDE2LDYgKzEwMjQs
OCBAQAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ1hMaW5rTmFtZXMnLAog
ICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9I
YXNoZXIucG0nLAorICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5n
LnBtJywKICAgICAgICAgICAgICcuLi9kb20vbWFrZV9uYW1lcy5wbCcsCiAgICAgICAgICAgICAn
Li4vc3ZnL3hsaW5rYXR0cnMuaW4nLAogICAgICAgICAgIF0sCkBAIC0xMDM3LDYgKzEwNDcsOCBA
QAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ1hNTE5TTmFtZXMnLAogICAg
ICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9IYXNo
ZXIucG0nLAorICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBt
JywKICAgICAgICAgICAgICcuLi9kb20vbWFrZV9uYW1lcy5wbCcsCiAgICAgICAgICAgICAnLi4v
eG1sL3htbG5zYXR0cnMuaW4nLAogICAgICAgICAgIF0sCkBAIC0xMDU4LDYgKzEwNzAsOCBAQAog
ICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ1hNTE5hbWVzJywKICAgICAgICAg
ICAnaW5wdXRzJzogWworICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBt
JywKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbScsCiAg
ICAgICAgICAgICAnLi4vZG9tL21ha2VfbmFtZXMucGwnLAogICAgICAgICAgICAgJy4uL3htbC94
bWxhdHRycy5pbicsCiAgICAgICAgICAgXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX21ha2VuYW1lcy5weSBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX21ha2VuYW1lcy5weQppbmRleCBhMWE0MTBmMWVhNTBj
MzE1NDJlYWQ1MWJkM2FlMDQ2ZTFjNWVjMTkzLi44MTNiODY0MTk2MzY2NmU2MmJkZjgyNzllMGFl
OGFmZDU4YTEyMjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3Jp
cHRzL2FjdGlvbl9tYWtlbmFtZXMucHkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAv
c2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5CkBAIC0xMzEsNiArMTMxLDggQEAgZGVmIG1haW4o
YXJncyk6CiAgICAgICAgICAgICBldmVudHNJbnB1dCA9IGlucHV0QWJzUG9zaXgKICAgICAgICAg
ZWxpZiBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdOYW1lcy5pbicpOgogICAgICAgICAgICAgb3B0
aW9ucy5hcHBlbmQoaW5wdXRBYnNQb3NpeCkKKyAgICAgICAgZWxpZiBpbnB1dEJhc2VuYW1lLmVu
ZHN3aXRoKCcucG0nKToKKyAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIGVsc2U6CiAgICAg
ICAgICAgICBhc3NlcnQgRmFsc2UKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL1N0YXRpY1N0cmluZy5wbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODAxZWQ0MTA3ZmI4MzFkM2YxOWM3MWI2
N2RlNjI4NDYwZmQ3ZTA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0KQEAgLTAsMCArMSw4NyBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisjIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyMgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKworcGFja2FnZSBTdGF0aWNTdHJpbmc7CisKK3VzZSBzdHJpY3Q7Cit1c2UgSGFzaGVyOwor
CitzdWIgR2VuZXJhdGVTdHJpbmdzCit7CisgICAgbXkgJHN0cmluZ3NSZWYgPSBzaGlmdDsKKyAg
ICBteSAlc3RyaW5ncyA9ICUkc3RyaW5nc1JlZjsKKworICAgIG15IEByZXN1bHQgPSAoKTsKKwor
ICAgIHdoaWxlICggbXkgKCRuYW1lLCAkdmFsdWUpID0gZWFjaCAlc3RyaW5ncyApIHsKKyAgICAg
ICAgcHVzaChAcmVzdWx0LCAic3RhdGljIGNvbnN0IExDaGFyICR7bmFtZX1TdHJpbmc4W10gPSBc
IiR7dmFsdWV9XCI7XG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEByZXN1bHQsICJcbiIpOworCisg
ICAgd2hpbGUgKCBteSAoJG5hbWUsICR2YWx1ZSkgPSBlYWNoICVzdHJpbmdzICkgeworICAgICAg
ICBteSAkbGVuZ3RoID0gbGVuZ3RoKCR2YWx1ZSk7CisgICAgICAgIG15ICRoYXNoID0gSGFzaGVy
OjpHZW5lcmF0ZUhhc2hWYWx1ZSgkdmFsdWUpOworICAgICAgICBwdXNoKEByZXN1bHQsIDw8RU5E
KTsKK3N0YXRpYyBTdHJpbmdJbXBsOjpTdGF0aWNEYXRhICR7bmFtZX1EYXRhID0geworICAgIFN0
cmluZ0ltcGw6OlN0YXRpY0RhdGE6OnNfaW5pdGlhbFJlZkNvdW50LAorICAgICRsZW5ndGgsCisg
ICAgJHtuYW1lfVN0cmluZzgsCisgICAgMCwKKyAgICBTdHJpbmdJbXBsOjpTdGF0aWNEYXRhOjpz
X2luaXRpYWxGbGFncyB8ICgke2hhc2h9IDw8IFN0cmluZ0ltcGw6OlN0YXRpY0RhdGE6OnNfaGFz
aFNoaWZ0KQorfTsKK0VORAorICAgIH0KKworICAgIHB1c2goQHJlc3VsdCwgIlxuIik7CisKKyAg
ICB3aGlsZSAoIG15ICgkbmFtZSwgJHZhbHVlKSA9IGVhY2ggJXN0cmluZ3MgKSB7CisgICAgICAg
IHB1c2goQHJlc3VsdCwgInN0YXRpYyBTdHJpbmdJbXBsKiAke25hbWV9SW1wbCA9IHJlaW50ZXJw
cmV0X2Nhc3Q8U3RyaW5nSW1wbCo+KCYke25hbWV9RGF0YSk7XG4iKTsKKyAgICB9CisKKyAgICBw
dXNoKEByZXN1bHQsICJcbiIpOworCisgICAgcmV0dXJuIGpvaW4gIiIsIEByZXN1bHQ7Cit9CisK
K3N1YiBHZW5lcmF0ZVZhbGlkYXRlU3RyaW5ncworeworICAgIG15ICRzdHJpbmdzUmVmID0gc2hp
ZnQ7CisgICAgbXkgJXN0cmluZ3MgPSAlJHN0cmluZ3NSZWY7CisKKyAgICBteSBAcmVzdWx0ID0g
KCk7CisKKyAgICBwdXNoKEByZXN1bHQsICIjaWZuZGVmIE5ERUJVR1xuIik7CisKKyAgICB3aGls
ZSAoIG15ICgkbmFtZSwgJHZhbHVlKSA9IGVhY2ggJXN0cmluZ3MgKSB7CisgICAgICAgIHB1c2go
QHJlc3VsdCwgIiAgICAke25hbWV9SW1wbC0+YXNzZXJ0VmFsaWRIYXNoKCk7XG4iKTsKKyAgICB9
CisKKyAgICBwdXNoKEByZXN1bHQsICIjZW5kaWYgLy8gTkRFQlVHXG4iKTsKKworICAgIHB1c2go
QHJlc3VsdCwgIlxuIik7CisKKyAgICByZXR1cm4gam9pbiAiIiwgQHJlc3VsdDsKK30KKworMTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcAppbmRleCBkZTYwYmZiMDdlMTIyOThkYmFm
ZjFmYWM3NzhkNGVhNWQzYmJkNTgxLi5iOWQ1MWViNDU3ZDdmOWE0Y2FmZjY0YWE4MzY5NzE0YWQ0
OWI4NDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwCkBAIC0xNzIsMTYgKzE3
MiwxNCBAQCB1bnNpZ25lZCBRdWFsaWZpZWROYW1lOjpRdWFsaWZpZWROYW1lSW1wbDo6Y29tcHV0
ZUhhc2goKSBjb25zdAogICAgIHJldHVybiBoYXNoQ29tcG9uZW50cyhjb21wb25lbnRzKTsKIH0K
IAotdm9pZCBjcmVhdGVRdWFsaWZpZWROYW1lKHZvaWQqIHRhcmdldEFkZHJlc3MsIGNvbnN0IGNo
YXIqIG5hbWUsIHVuc2lnbmVkIG5hbWVMZW5ndGgsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZU5h
bWVzcGFjZSkKK3ZvaWQgY3JlYXRlUXVhbGlmaWVkTmFtZSh2b2lkKiB0YXJnZXRBZGRyZXNzLCBT
dHJpbmdJbXBsKiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVOYW1lc3BhY2UpCiB7Ci0g
ICAgQXRvbWljU3RyaW5nIGF0b21pY05hbWUobmFtZSwgbmFtZUxlbmd0aCwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgbmV3IChyZWludGVycHJldF9jYXN0PHZvaWQq
Pih0YXJnZXRBZGRyZXNzKSkgUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgYXRvbWljTmFtZSwgbmFt
ZU5hbWVzcGFjZSk7CisgICAgbmV3IChyZWludGVycHJldF9jYXN0PHZvaWQqPih0YXJnZXRBZGRy
ZXNzKSkgUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgQXRvbWljU3RyaW5nKG5hbWUpLCBuYW1lTmFt
ZXNwYWNlKTsKIH0KIAotdm9pZCBjcmVhdGVRdWFsaWZpZWROYW1lKHZvaWQqIHRhcmdldEFkZHJl
c3MsIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIG5hbWVMZW5ndGgpCit2b2lkIGNyZWF0ZVF1
YWxpZmllZE5hbWUodm9pZCogdGFyZ2V0QWRkcmVzcywgU3RyaW5nSW1wbCogbmFtZSkKIHsKLSAg
ICBBdG9taWNTdHJpbmcgYXRvbWljTmFtZShuYW1lLCBuYW1lTGVuZ3RoLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBuZXcgKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+
KHRhcmdldEFkZHJlc3MpKSBRdWFsaWZpZWROYW1lKG51bGxBdG9tLCBhdG9taWNOYW1lLCBudWxs
QXRvbSk7CisgICAgbmV3IChyZWludGVycHJldF9jYXN0PHZvaWQqPih0YXJnZXRBZGRyZXNzKSkg
UXVhbGlmaWVkTmFtZShudWxsQXRvbSwgQXRvbWljU3RyaW5nKG5hbWUpLCBudWxsQXRvbSk7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5oCmluZGV4IGMzY2QyOWZkZWNhYmNhZDcy
MDM3M2M1NzUwYTk0ODZkM2Y5ZjEwMmQuLjM4NjczMTU0YTY3ZjE2Njg0ZDNiNDRmNWQ1OTllNjk3
ZGU4NmQ4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaApAQCAtMTQ0LDggKzE0NCw4
IEBAIHN0cnVjdCBRdWFsaWZpZWROYW1lSGFzaCB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2Fm
ZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKIH07CiAKLXZvaWQgY3JlYXRlUXVh
bGlmaWVkTmFtZSh2b2lkKiB0YXJnZXRBZGRyZXNzLCBjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25l
ZCBuYW1lTGVuZ3RoKTsKLXZvaWQgY3JlYXRlUXVhbGlmaWVkTmFtZSh2b2lkKiB0YXJnZXRBZGRy
ZXNzLCBjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBuYW1lTGVuZ3RoLCBjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWVOYW1lc3BhY2UpOwordm9pZCBjcmVhdGVRdWFsaWZpZWROYW1lKHZvaWQqIHRh
cmdldEFkZHJlc3MsIFN0cmluZ0ltcGwqIG5hbWUpOwordm9pZCBjcmVhdGVRdWFsaWZpZWROYW1l
KHZvaWQqIHRhcmdldEFkZHJlc3MsIFN0cmluZ0ltcGwqIG5hbWUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZU5hbWVzcGFjZSk7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L21ha2VfbmFtZXMucGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAppbmRleCBi
OTEwM2U1NGZlMTc3ZmYzYzE1ODhjMjEzZDBhMzE5N2ZlMzhmMDBmLi5mMDQyODAzYTIyYWM0Y2U3
YWE1Y2EwOTFlYjY0NDI3NDIyMWE4ZWYwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
bWFrZV9uYW1lcy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbApAQCAt
MzEsNiArMzEsNyBAQAogCiB1c2Ugc3RyaWN0OwogCit1c2UgU3RhdGljU3RyaW5nOwogdXNlIENv
bmZpZzsKIHVzZSBHZXRvcHQ6Okxvbmc7CiB1c2UgRmlsZTo6UGF0aDsKQEAgLTU0LDYgKzU1LDcg
QEAgbXkgJWVuYWJsZWRUYWdzID0gKCk7CiBteSAlZW5hYmxlZEF0dHJzID0gKCk7CiBteSAlYWxs
VGFncyA9ICgpOwogbXkgJWFsbEF0dHJzID0gKCk7CitteSAlYWxsU3RyaW5ncyA9ICgpOwogbXkg
JXBhcmFtZXRlcnMgPSAoKTsKIG15ICRleHRyYURlZmluZXMgPSAwOwogbXkgJGluaXREZWZhdWx0
cyA9IDE7CkBAIC0xMTUsMTQgKzExNywyMiBAQCBpZiAobGVuZ3RoKCRmb250TmFtZXNJbikpIHsK
ICAgICBwcmludExpY2Vuc2VIZWFkZXIoJEYpOwogICAgIHByaW50Q3BwSGVhZCgkRiwgIkNTUyIs
ICRmYW1pbHlOYW1lc0ZpbGVCYXNlLCAiV1RGIik7CiAKKyAgICBwcmludCBGIFN0YXRpY1N0cmlu
Zzo6R2VuZXJhdGVTdHJpbmdzKFwlcGFyYW1ldGVycyk7CisKICAgICB3aGlsZSAoIG15ICgkbmFt
ZSwgJGlkZW50aWZpZXIpID0gZWFjaCAlcGFyYW1ldGVycyApIHsKICAgICAgICAgcHJpbnQgRiAi
REVGSU5FX0dMT0JBTChBdG9taWNTdHJpbmcsICRuYW1lKVxuIjsKICAgICB9CiAKICAgICBwcmlu
dEluaXQoJEYsIDApOwogCisgICAgcHJpbnQgRiAiXG4iOworICAgIHByaW50IEYgU3RhdGljU3Ry
aW5nOjpHZW5lcmF0ZVZhbGlkYXRlU3RyaW5ncyhcJXBhcmFtZXRlcnMpOworCisgICAgcHJpbnQg
RiAiICAgIC8vIE5vdGU6IFRoZXNlIEF0b21pY1N0cmluZ3MgbWlnaHQgZW5kIHVwIHdpdGggZGlm
ZmVyZW50IFN0cmluZ0ltcGxzLFxuIjsKKyAgICBwcmludCBGICIgICAgLy8gYnV0IHRoZXkgd2ls
bCBhbHdheXMgZW5kIHVwIHdpdGggc3RhdGljIFN0cmluZ0ltcGxzLlxuIjsKKwogICAgIHdoaWxl
ICggbXkgKCRuYW1lLCAkaWRlbnRpZmllcikgPSBlYWNoICVwYXJhbWV0ZXJzICkgewotICAgICAg
ICBwcmludCBGICIgICAgbmV3ICgodm9pZCopJiRuYW1lKSBBdG9taWNTdHJpbmcoXCIkaWRlbnRp
ZmllclwiKTtcbiI7CisgICAgICAgIHByaW50IEYgIiAgICBuZXcgKCh2b2lkKikmJG5hbWUpIEF0
b21pY1N0cmluZygke25hbWV9SW1wbCk7XG4iOwogICAgIH0KIAogICAgIHByaW50IEYgIn1cbn1c
bn1cbiI7CkBAIC0xMzUsMTEgKzE0NSwxMyBAQCBkaWUgIllvdSBtdXN0IHNwZWNpZnkgYXQgbGVh
c3Qgb25lIG9mIC0tdGFncyA8ZmlsZT4gb3IgLS1hdHRycyA8ZmlsZT4iIHVubGVzcyAobAogaWYg
KGxlbmd0aCgkdGFnc0ZpbGUpKSB7CiAgICAgJWFsbFRhZ3MgPSAle3JlYWRUYWdzKCR0YWdzRmls
ZSwgMCl9OwogICAgICVlbmFibGVkVGFncyA9ICV7cmVhZFRhZ3MoJHRhZ3NGaWxlLCAxKX07Cisg
ICAgbmFtZXNUb1N0cmluZ3MoXCVhbGxUYWdzLCBcJWFsbFN0cmluZ3MpOwogfQogCiBpZiAobGVu
Z3RoKCRhdHRyc0ZpbGUpKSB7CiAgICAgJWFsbEF0dHJzID0gJXtyZWFkQXR0cnMoJGF0dHJzRmls
ZSwgMCl9OwogICAgICVlbmFibGVkQXR0cnMgPSAle3JlYWRBdHRycygkYXR0cnNGaWxlLCAxKX07
CisgICAgbmFtZXNUb1N0cmluZ3MoXCVhbGxBdHRycywgXCVhbGxTdHJpbmdzKTsKIH0KIAogZGll
ICJZb3UgbXVzdCBzcGVjaWZ5IGEgbmFtZXNwYWNlIChlLmcuIFNWRykgZm9yIDxuYW1lc3BhY2U+
TmFtZXMuaCIgdW5sZXNzICRwYXJhbWV0ZXJze25hbWVzcGFjZX07CkBAIC0yMTIsNiArMjI0LDMx
IEBAIHN1YiBkZWZhdWx0SW50ZXJmYWNlTmFtZQogCiAjIyMgUGFyc2luZyBoYW5kbGVycwogCitz
dWIgdmFsdWVGb3JOYW1lCit7CisgICAgbXkgJG5hbWUgPSBzaGlmdDsKKyAgICBteSAkdmFsdWUg
PSAkZXh0ZW5zaW9uQXR0cnN7JG5hbWV9OworCisgICAgaWYgKCEkdmFsdWUpIHsKKyAgICAgICAg
JHZhbHVlID0gJG5hbWU7CisgICAgICAgICR2YWx1ZSA9fiBzL18vLS9nOworICAgIH0KKworICAg
IHJldHVybiAkdmFsdWU7Cit9CisKK3N1YiBuYW1lc1RvU3RyaW5ncworeworICAgIG15ICRuYW1l
c1JlZiA9IHNoaWZ0OworICAgIG15ICRzdHJpbmdzUmVmID0gc2hpZnQ7CisKKyAgICBteSAlbmFt
ZXMgPSAlJG5hbWVzUmVmOworCisgICAgZm9yIG15ICRuYW1lIChrZXlzICVuYW1lcykgeworICAg
ICAgICAkc3RyaW5nc1JlZi0+eyRuYW1lfSA9IHZhbHVlRm9yTmFtZSgkbmFtZSk7CisgICAgfQor
fQorCiBzdWIgdGFnc0hhbmRsZXIKIHsKICAgICBteSAoJHRhZywgJHByb3BlcnR5LCAkdmFsdWUp
ID0gQF87CkBAIC02MzYsNiArNjczLDggQEAgc3ViIHByaW50TmFtZXNDcHBGaWxlCiAKICAgICBw
cmludCBGICJERUZJTkVfR0xPQkFMKEF0b21pY1N0cmluZywgJHtsb3dlck5hbWVzcGFjZX1OYW1l
c3BhY2VVUkkpXG5cbiI7CiAKKyAgICBwcmludCBGIFN0YXRpY1N0cmluZzo6R2VuZXJhdGVTdHJp
bmdzKFwlYWxsU3RyaW5ncyk7CisKICAgICBpZiAoa2V5cyAlYWxsVGFncykgewogICAgICAgICBw
cmludCBGICIvLyBUYWdzXG4iOwogICAgICAgICBmb3IgbXkgJG5hbWUgKHNvcnQga2V5cyAlYWxs
VGFncykgewpAQCAtNjcyLDcgKzcxMSwxMCBAQCBzdWIgcHJpbnROYW1lc0NwcEZpbGUKICAgICBw
cmludChGICIgICAgQXRvbWljU3RyaW5nICR7bG93ZXJOYW1lc3BhY2V9TlMoXCIkcGFyYW1ldGVy
c3tuYW1lc3BhY2VVUkl9XCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpO1xu
XG4iKTsKIAogICAgIHByaW50KEYgIiAgICAvLyBOYW1lc3BhY2VcbiIpOwotICAgIHByaW50KEYg
IiAgICBuZXcgKCh2b2lkKikmJHtsb3dlck5hbWVzcGFjZX1OYW1lc3BhY2VVUkkpIEF0b21pY1N0
cmluZygke2xvd2VyTmFtZXNwYWNlfU5TKTtcblxuIik7CisgICAgcHJpbnQoRiAiICAgIG5ldyAo
KHZvaWQqKSYke2xvd2VyTmFtZXNwYWNlfU5hbWVzcGFjZVVSSSkgQXRvbWljU3RyaW5nKCR7bG93
ZXJOYW1lc3BhY2V9TlMpO1xuIik7CisgICAgcHJpbnQoRiAiXG4iKTsKKyAgICBwcmludCBGIFN0
YXRpY1N0cmluZzo6R2VuZXJhdGVWYWxpZGF0ZVN0cmluZ3MoXCVhbGxTdHJpbmdzKTsKKwogICAg
IGlmIChrZXlzICVhbGxUYWdzKSB7CiAgICAgICAgIG15ICR0YWdzTmFtZXNwYWNlID0gJHBhcmFt
ZXRlcnN7dGFnc051bGxOYW1lc3BhY2V9ID8gIm51bGxBdG9tIiA6ICIke2xvd2VyTmFtZXNwYWNl
fU5TIjsKICAgICAgICAgcHJpbnREZWZpbml0aW9ucygkRiwgXCVhbGxUYWdzLCAidGFncyIsICR0
YWdzTmFtZXNwYWNlKTsKQEAgLTc3NCwxNyArODE2LDExIEBAIHN1YiBwcmludERlZmluaXRpb25z
CiAgICAgcHJpbnQgRiAiICAgIC8vICIgLiB1Y2ZpcnN0KCR0eXBlKSAuICJcbiI7CiAKICAgICBm
b3IgbXkgJG5hbWUgKHNvcnQga2V5cyAlJG5hbWVzUmVmKSB7Ci0gICAgICAgIG15ICRyZWFsTmFt
ZSA9ICRleHRlbnNpb25BdHRyc3skbmFtZX07Ci0gICAgICAgIGlmICghJHJlYWxOYW1lKSB7Ci0g
ICAgICAgICAgICAkcmVhbE5hbWUgPSAkbmFtZTsKLSAgICAgICAgICAgICRyZWFsTmFtZSA9fiBz
L18vLS9nOwotICAgICAgICB9Ci0KICAgICAgICAgIyBUbyBnZW5lcmF0ZSBsZXNzIGNvZGUgaW4g
aW5pdCgpLCB0aGUgY29tbW9uIGNhc2Ugb2YgbnVsbEF0b20gZm9yIHRoZSBuYW1lc3BhY2UsIHdl
IGNhbGwgY3JlYXRlUXVhbGlmaWVkTmFtZSgpIHdpdGhvdXQgcGFzc2luZyAkbmFtZXNwYWNlVVJJ
LgogICAgICAgICBpZiAoJG5hbWVzcGFjZVVSSSBlcSAibnVsbEF0b20iKSB7Ci0gICAgICAgICAg
ICBwcmludCBGICIgICAgY3JlYXRlUXVhbGlmaWVkTmFtZSgodm9pZCopJiRuYW1lIiwiJHtzaG9y
dENhbWVsVHlwZX0sIFwiJHJlYWxOYW1lXCIsICIsIGxlbmd0aCAkcmVhbE5hbWUgLCIpO1xuIjsK
KyAgICAgICAgICAgIHByaW50IEYgIiAgICBjcmVhdGVRdWFsaWZpZWROYW1lKCh2b2lkKikmJG5h
bWUiLCIke3Nob3J0Q2FtZWxUeXBlfSwgJHtuYW1lfUltcGwpO1xuIjsKICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHByaW50IEYgIiAgICBjcmVhdGVRdWFsaWZpZWROYW1lKCh2b2lkKikm
JG5hbWUiLCIke3Nob3J0Q2FtZWxUeXBlfSwgXCIkcmVhbE5hbWVcIiwgIiwgbGVuZ3RoICRyZWFs
TmFtZSAsIiwgJG5hbWVzcGFjZVVSSSk7XG4iOworICAgICAgICAgICAgcHJpbnQgRiAiICAgIGNy
ZWF0ZVF1YWxpZmllZE5hbWUoKHZvaWQqKSYkbmFtZSIsIiR7c2hvcnRDYW1lbFR5cGV9LCAke25h
bWV9SW1wbCwgJG5hbWVzcGFjZVVSSSk7XG4iOwogICAgICAgICB9CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194121</attachid>
            <date>2013-03-20 14:16:53 -0700</date>
            <delta_ts>2013-03-20 14:31:50 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-112831-20130320141242.patch</filename>
            <type>text/plain</type>
            <size>26000</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIyMDNmZjgyNWJmYjQ1YjcwZmYzMjRj
NzY3ZTg2NTE4ZWZlZjIzMTAuLjBmMzQ2ZjE5NmQ0ZjZlM2Q2ZDg5NGQwMDYxNjVmM2E1NDVmYTJk
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDMtMjAgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBIVE1MTmFtZXMgc2hvdWxkIGNvbnN0cnVjdCBzdHJpbmdz
IGF0IGNvbXBpbGUgdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEyODMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAgIChTdHJpbmdJbXBsKToKKyAg
ICAgICAgKFN0YXRpY0FTQ0lJTGl0ZXJhbCk6CisgICAgICAgICAgICAtIFRoaXMgc3RydWN0IGxl
dHMgdXMgY29uc3RydWN0IFN0cmluZ0ltcGwgb2JqZWN0cyBhdCBjb21waWxlIHRpbWUuCisgICAg
ICAgIChXVEY6OlN0cmluZ0ltcGw6OmFzc2VydFZhbGlkSGFzaCk6CisgICAgICAgICAgICAtIFRo
aXMgZnVuY3Rpb24gbGV0cyB1cyBzYW5pdHkgY2hlY2sgU3RyaW5nSW1wbCBvYmplY3RzIGNyZWF0
ZWQgZnJvbSBTdGF0aWNEYXRhLgorCiAyMDEzLTAzLTIwICBKdW5nSmlrIExlZSAgPGp1bmdqaWsu
bGVlQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIERpc2FibGUgUkVRVUVTVF9BTklNQVRJ
T05fRlJBTUVfVElNRVIgdG8gcmVuZGVyIGEgbmV3IGFuaW1hdGlvbiBmcmFtZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAyZGExNWVkMmRmZGZkOWVjZGNjZjk1NzYzOGUyZWFhZmU5MDc0YjAwLi4wNGM1NWE3YjJm
NDg0OTIwMjA2NzMzN2YyMmY2YTU3MDJlN2MzMmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTMtMDMtMjAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBIVE1MTmFtZXMgc2hvdWxkIGNvbnN0cnVjdCBzdHJpbmdzIGF0IGNvbXBpbGUgdGltZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVGhpcyBwYXRjaCB0ZWFj
aGVzIG1ha2VfbmFtZXMgaG93IHRvIGNvbnN0cnVjdCBzdHJpbmdzIGF0IGNvbXBpbGUgdGltZSwK
KyAgICAgICAgZWxpbWluYXRpbmcgYSBsYXJnZSBudW1iZXIgb2Ygc3RhcnR1cCBtYWxsb2NzLgor
CisgICAgICAgICogV2ViQ29yZS5neXAvV2ViQ29yZS5neXA6CisgICAgICAgICogV2ViQ29yZS5n
eXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5OgorICAgICAgICAgICAgLSBUZWFjaCB0aGUg
Q2hyb21pdW0gYnVpbGQgaG93IHRvIGRlYWwgd2l0aCBQZXJsIG1vZHVsZXMuCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG06IEFkZGVkLgorICAgICAgICAgICAgLSBB
IFBlcmwgbW9kdWxlIGZvciBjb25zdHJ1Y3Rpbmcgc3RhdGljIHN0cmluZ3MuCisgICAgICAgIChH
ZW5lcmF0ZVN0cmluZ3MpOgorICAgICAgICAoR2VuZXJhdGVWYWxpZGF0ZVN0cmluZ3MpOgorICAg
ICAgICAqIGRvbS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVF1
YWxpZmllZE5hbWUpOgorICAgICAgICAgICAgLSBjcmVhdGVRdWFsaWZpZWROYW1lIG5vdyB0YWtl
cyBhbiBhbHJlYWR5LWNvbnN0cnVjdGVkIFN0cmluZ0ltcGwKKyAgICAgICAgICAgICAgb2JqZWN0
LgorICAgICAgICAqIGRvbS9RdWFsaWZpZWROYW1lLmg6CisgICAgICAgICogZG9tL21ha2VfbmFt
ZXMucGw6CisgICAgICAgICh2YWx1ZUZvck5hbWUpOgorICAgICAgICAobmFtZXNUb1N0cmluZ3Mp
OgorICAgICAgICAocHJpbnROYW1lc0NwcEZpbGUpOgorICAgICAgICAocHJpbnREZWZpbml0aW9u
cyk6CisgICAgICAgICAgICAtIFRlYWNoIG1ha2VfbmFtZXMgaG93IHRvIHVzZSBTdGF0aWNTdHJp
bmcucG0uCisKIDIwMTMtMDMtMjAgIE1pY2hhZWwgUHJ1ZXR0ICA8bWljaGFlbEA2OGsub3JnPgog
CiAgICAgICAgIFtWOF0gU2ltcGxpZnkgaW1wbGVtZW50YXRpb24gb2YgRW5mb3JjZVJhbmdlIGNv
bnZlcnNpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IGYxZWI2NzE3OGIyNWNkOWQ4
MWQxZjIyMGVkMzgyY2Y2M2JhOTkxOTMuLjMzM2E1NWFlOTVlZGU3NDAxM2ZlYzM4Y2I2YzcwYzgy
NDVjMTcwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC03NzIsNiArNzcyLDMyIEBA
IHByaXZhdGU6CiAjaWZkZWYgU1RSSU5HX1NUQVRTCiAgICAgV1RGX0VYUE9SVERBVEEgc3RhdGlj
IFN0cmluZ1N0YXRzIG1fc3RyaW5nU3RhdHM7CiAjZW5kaWYKKworcHVibGljOgorICAgIHN0cnVj
dCBTdGF0aWNBU0NJSUxpdGVyYWwgeworICAgICAgICAvLyBUaGVzZSBtZW1iZXIgdmFyaWFibGVz
IG11c3QgbWF0Y2ggdGhlIGxheW91dCBvZiBTdHJpbmdJbXBsLgorICAgICAgICB1bnNpZ25lZCBt
X3JlZkNvdW50OworICAgICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKKyAgICAgICAgY29uc3QgTENo
YXIqIG1fZGF0YTg7CisgICAgICAgIHZvaWQqIG1fYnVmZmVyOworICAgICAgICB1bnNpZ25lZCBt
X2hhc2hBbmRGbGFnczsKKworICAgICAgICAvLyBUaGVzZSB2YWx1ZXMgbWltaWMgQ29uc3RydWN0
RnJvbUxpdGVyYWwuCisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX2luaXRpYWxSZWZD
b3VudCA9IHNfcmVmQ291bnRJbmNyZW1lbnQ7CisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBzX2luaXRpYWxGbGFncyA9IHNfaGFzaEZsYWc4Qml0QnVmZmVyIHwgQnVmZmVySW50ZXJuYWwg
fCBzX2hhc2hGbGFnSGFzVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyOworICAgICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgc19oYXNoU2hpZnQgPSBzX2ZsYWdDb3VudDsKKyAgICB9OworCisjaWZu
ZGVmIE5ERUJVRworICAgIHZvaWQgYXNzZXJ0SGFzaElzQ29ycmVjdCgpCisgICAgeworICAgICAg
ICBBU1NFUlQoaGFzSGFzaCgpKTsKKyAgICAgICAgQVNTRVJUKGV4aXN0aW5nSGFzaCgpID09IFN0
cmluZ0hhc2hlcjo6Y29tcHV0ZUhhc2hBbmRNYXNrVG9wOEJpdHMoY2hhcmFjdGVyczgoKSwgbGVu
Z3RoKCkpKTsKKyAgICB9CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICAvLyBUaGVzZSBtZW1iZXIg
dmFyaWFibGVzIG11c3QgbWF0Y2ggdGhlIGxheW91dCBvZiBTdGF0aWNBU0NJSUxpdGVyYWwuCiAg
ICAgdW5zaWduZWQgbV9yZWZDb3VudDsKICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKICAgICB1bmlv
biB7CkBAIC03ODksNiArODE1LDggQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIHVuc2lnbmVkIG1f
aGFzaEFuZEZsYWdzOwogfTsKIAorQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFN0cmluZ0ltcGwpID09
IHNpemVvZihTdHJpbmdJbXBsOjpTdGF0aWNBU0NJSUxpdGVyYWwpLCBTdHJpbmdJbXBsX3Nob3Vs
ZF9tYXRjaF9pdHNfU3RhdGljQVNDSUlMaXRlcmFsKTsKKwogdGVtcGxhdGUgPD4KIEFMV0FZU19J
TkxJTkUgY29uc3QgTENoYXIqIFN0cmluZ0ltcGw6OmdldENoYXJhY3RlcnM8TENoYXI+KCkgY29u
c3QgeyByZXR1cm4gY2hhcmFjdGVyczgoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCA3NTliNGYwOGRmMjBlNTA0ODdmODVkNzI2NDJmMjNhY2JlMTRiMjliLi5jYzIxMmJj
MzAxYzI1NDk4MjcxNzljOWI3YzAwZmQ1ZmViNGQ1MWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTgyNiw3ICs4MjYsNyBAQCBVc2VyQWdlbnRTdHlsZVNoZWV0cy5oIDogY3Nz
L21ha2UtY3NzLWZpbGUtYXJyYXlzLnBsIGJpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2VzcwogCiAj
IC0tLS0tLS0tCiAKLVdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAgV2ViS2l0Rm9udEZhbWlseU5h
bWVzLmggOiBkb20vbWFrZV9uYW1lcy5wbCBjc3MvV2ViS2l0Rm9udEZhbWlseU5hbWVzLmluCitX
ZWJLaXRGb250RmFtaWx5TmFtZXMuY3BwIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5oIDogYmluZGlu
Z3Mvc2NyaXB0cy9IYXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmdzLnBtIGRv
bS9tYWtlX25hbWVzLnBsIGNzcy9XZWJLaXRGb250RmFtaWx5TmFtZXMuaW4KIAlwZXJsIC1JICQo
V2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWZvbnRzICQoV2ViQ29yZSkvY3NzL1dlYktp
dEZvbnRGYW1pbHlOYW1lcy5pbgogCiAjIEhUTUwgdGFnIGFuZCBhdHRyaWJ1dGUgbmFtZXMKQEAg
LTg3MywyMiArODczLDIyIEBAIGVuZGlmCiAKIGlmZGVmIEhUTUxfRkxBR1MKIAotSFRNTEVsZW1l
bnRGYWN0b3J5LmNwcCBIVE1MTmFtZXMuY3BwIDogZG9tL21ha2VfbmFtZXMucGwgaHRtbC9IVE1M
VGFnTmFtZXMuaW4gaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KK0hUTUxFbGVtZW50RmFjdG9y
eS5jcHAgSFRNTE5hbWVzLmNwcCA6IGJpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtIGJpbmRpbmdz
L3NjcmlwdHMvU3RhdGljU3RyaW5ncy5wbSBkb20vbWFrZV9uYW1lcy5wbCBodG1sL0hUTUxUYWdO
YW1lcy5pbiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgogCXBlcmwgLUkgJChXZWJDb3JlKS9i
aW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmlu
IC0tYXR0cnMgJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiAtLWZhY3Rvcnkg
LS13cmFwcGVyRmFjdG9yeSAtLWV4dHJhRGVmaW5lcyAiJChIVE1MX0ZMQUdTKSIKIAogZWxzZQog
Ci1IVE1MRWxlbWVudEZhY3RvcnkuY3BwIEhUTUxOYW1lcy5jcHAgOiBkb20vbWFrZV9uYW1lcy5w
bCBodG1sL0hUTUxUYWdOYW1lcy5pbiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgorSFRNTEVs
ZW1lbnRGYWN0b3J5LmNwcCBIVE1MTmFtZXMuY3BwIDogYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIu
cG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmdzLnBtIGRvbS9tYWtlX25hbWVzLnBsIGh0
bWwvSFRNTFRhZ05hbWVzLmluIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCiAJcGVybCAtSSAk
KFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1M
VGFnTmFtZXMuaW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmlu
IC0tZmFjdG9yeSAtLXdyYXBwZXJGYWN0b3J5CiAKIGVuZGlmCiAKIEpTSFRNTEVsZW1lbnRXcmFw
cGVyRmFjdG9yeS5jcHAgOiBIVE1MTmFtZXMuY3BwCiAKLVhNTE5TTmFtZXMuY3BwIDogZG9tL21h
a2VfbmFtZXMucGwgeG1sL3htbG5zYXR0cnMuaW4KK1hNTE5TTmFtZXMuY3BwIDogYmluZGluZ3Mv
c2NyaXB0cy9IYXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmdzLnBtIGRvbS9t
YWtlX25hbWVzLnBsIHhtbC94bWxuc2F0dHJzLmluCiAJcGVybCAtSSAkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3htbC94bWxuc2F0dHJzLmluCiAKLVhN
TE5hbWVzLmNwcCA6IGRvbS9tYWtlX25hbWVzLnBsIHhtbC94bWxhdHRycy5pbgorWE1MTmFtZXMu
Y3BwIDogYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNT
dHJpbmdzLnBtIGRvbS9tYWtlX25hbWVzLnBsIHhtbC94bWxhdHRycy5pbgogCXBlcmwgLUkgJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3JlKS94bWwveG1sYXR0
cnMuaW4KIAogIyAtLS0tLS0tLQpAQCAtOTA3LDE4ICs5MDcsMTggQEAgZW5kaWYKIAogaWZkZWYg
U1ZHX0ZMQUdTCiAKLVNWR0VsZW1lbnRGYWN0b3J5LmNwcCBTVkdOYW1lcy5jcHAgOiBkb20vbWFr
ZV9uYW1lcy5wbCBzdmcvc3ZndGFncy5pbiBzdmcvc3ZnYXR0cnMuaW4KK1NWR0VsZW1lbnRGYWN0
b3J5LmNwcCBTVkdOYW1lcy5jcHAgOiBiaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbSBiaW5kaW5n
cy9zY3JpcHRzL1N0YXRpY1N0cmluZ3MucG0gZG9tL21ha2VfbmFtZXMucGwgc3ZnL3N2Z3RhZ3Mu
aW4gc3ZnL3N2Z2F0dHJzLmluCiAJcGVybCAtSSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMg
JDwgLS10YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUpL3N2
Zy9zdmdhdHRycy5pbiAtLWV4dHJhRGVmaW5lcyAiJChTVkdfRkxBR1MpIiAtLWZhY3RvcnkgLS13
cmFwcGVyRmFjdG9yeQogZWxzZQogCi1TVkdFbGVtZW50RmFjdG9yeS5jcHAgU1ZHTmFtZXMuY3Bw
IDogZG9tL21ha2VfbmFtZXMucGwgc3ZnL3N2Z3RhZ3MuaW4gc3ZnL3N2Z2F0dHJzLmluCitTVkdF
bGVtZW50RmFjdG9yeS5jcHAgU1ZHTmFtZXMuY3BwIDogYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIu
cG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmdzLnBtIGRvbS9tYWtlX25hbWVzLnBsIHN2
Zy9zdmd0YWdzLmluIHN2Zy9zdmdhdHRycy5pbgogCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5n
cy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChX
ZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1mYWN0b3J5IC0td3JhcHBlckZhY3RvcnkKIAogZW5k
aWYKIAogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIDogU1ZHTmFtZXMuY3BwCiAKLVhM
aW5rTmFtZXMuY3BwIDogZG9tL21ha2VfbmFtZXMucGwgc3ZnL3hsaW5rYXR0cnMuaW4KK1hMaW5r
TmFtZXMuY3BwIDogYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9T
dGF0aWNTdHJpbmdzLnBtIGRvbS9tYWtlX25hbWVzLnBsIHN2Zy94bGlua2F0dHJzLmluCiAJcGVy
bCAtSSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3N2
Zy94bGlua2F0dHJzLmluCiAKICMgLS0tLS0tLS0KQEAgLTkzOCw3ICs5MzgsNyBAQCBFeGNlcHRp
b25Db2RlRGVzY3JpcHRpb24uY3BwIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbi5oIEV4Y2VwdGlv
bkhlYWRlcnMuaCBFeGNlcAogCiAjIE1hdGhNTCB0YWcgYW5kIGF0dHJpYnV0ZSBuYW1lcywgYW5k
IGVsZW1lbnQgZmFjdG9yeQogCi1NYXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgTWF0aE1MTmFtZXMu
Y3BwIDogZG9tL21ha2VfbmFtZXMucGwgbWF0aG1sL21hdGh0YWdzLmluIG1hdGhtbC9tYXRoYXR0
cnMuaW4KK01hdGhNTEVsZW1lbnRGYWN0b3J5LmNwcCBNYXRoTUxOYW1lcy5jcHAgOiBiaW5kaW5n
cy9zY3JpcHRzL0hhc2hlci5wbSBiaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZ3MucG0gZG9t
L21ha2VfbmFtZXMucGwgbWF0aG1sL21hdGh0YWdzLmluIG1hdGhtbC9tYXRoYXR0cnMuaW4KIAlw
ZXJsIC1JICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9t
YXRobWwvbWF0aHRhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUpL21hdGhtbC9tYXRoYXR0cnMuaW4g
LS1mYWN0b3J5IC0td3JhcHBlckZhY3RvcnkKIAogIyAtLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQppbmRleCAwYmE1NTdkNTg0ZTdhMzQ3YzA4NDBiOTIxOTA4MDI2MTg1MGI3NWFlLi4wN2M2NTUw
NmMyOGFiYzcwNjVmNzlhZWQ0YmE3MWJkNzQxNWJjMzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpA
QCAtMTQ1LDcgKzE0NSw3IEBAICQoR0VOU09VUkNFU19XRUJDT1JFKS9YUGF0aEdyYW1tYXIuY3Bw
OiAkKFdlYkNvcmUpL3htbC9YUGF0aEdyYW1tYXIueQogIyBNYXRoTUwgdGFnIGFuZCBhdHRyaWJ1
dGUgbmFtZXMsIGFuZCBlbGVtZW50IGZhY3RvcnkKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvTWF0
aE1MRWxlbWVudEZhY3RvcnkuaDogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9NYXRoTUxFbGVtZW50
RmFjdG9yeS5jcHAKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvTWF0aE1MTmFtZXMuaDogRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9NYXRoTUxOYW1lcy5jcHAKLURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
TWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvTWF0aE1MTmFt
ZXMuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvbWF0aG1sL21h
dGh0YWdzLmluICQoV2ViQ29yZSkvbWF0aG1sL21hdGhhdHRycy5pbgorRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9NYXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9N
YXRoTUxOYW1lcy5jcHA6ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZ3MucG0gJChXZWJDb3JlKS9kb20v
bWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL21hdGhtbC9tYXRodGFncy5pbiAkKFdlYkNvcmUpL21h
dGhtbC9tYXRoYXR0cnMuaW4KIAkkKEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvbWF0aG1sL21hdGh0YWdzLmluIC0tYXR0
cnMgJChXZWJDb3JlKS9tYXRobWwvbWF0aGF0dHJzLmluIC0tZmFjdG9yeSAtLXdyYXBwZXJGYWN0
b3J5IC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVNfV0VCQ09SRSkiCiAKICMgLS0tLQpAQCAtMTkw
LDEzICsxOTAsMTMgQEAgZW5kaWYgIyBFTkRfRU5BQkxFX1NWRwogIyBTVkcgdGFnIGFuZCBhdHRy
aWJ1dGUgbmFtZXMgKG5lZWQgdG8gcGFzcyBhbiBleHRyYSBmbGFnIGlmIHN2ZyBleHBlcmltZW50
YWwgZmVhdHVyZXMgYXJlIGVuYWJsZWQpCiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL1NWR05hbWVz
LmNwcDogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9TVkdFbGVtZW50RmFjdG9yeS5jcHAKIERlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwOiBEZXJpdmVk
U291cmNlcy9XZWJDb3JlL1NWR0VsZW1lbnRGYWN0b3J5LmNwcAotRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9TVkdFbGVtZW50RmFjdG9yeS5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwg
JChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbgorRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9TVkdFbGVtZW50RmFjdG9yeS5jcHA6ICQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL1N0YXRp
Y1N0cmluZ3MucG0gJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3N2Zy9z
dmd0YWdzLmluICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluCiAJJChBTV9WX0dFTikkKFBFUkwp
IC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9z
dmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1leHRyYURlZmlu
ZXMgIiQoZmVhdHVyZV9kZWZpbmVzKSIgLS1mYWN0b3J5IC0td3JhcHBlckZhY3RvcnkgLS1vdXRw
dXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAogIyBlbmQgU1ZHIEZlYXR1cmVzCiAKIERl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvWExpbmtOYW1lcy5oOiBEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L1hMaW5rTmFtZXMuY3BwCi1EZXJpdmVkU291cmNlcy9XZWJDb3JlL1hMaW5rTmFtZXMuY3BwIDog
JChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmlu
CitEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hMaW5rTmFtZXMuY3BwIDogJChXZWJDb3JlKS9iaW5k
aW5ncy9zY3JpcHRzL0hhc2hlci5wbSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGlj
U3RyaW5ncy5wbSAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3hs
aW5rYXR0cnMuaW4KIAkkKEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3Nj
cmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIC0tb3V0cHV0RGly
ICIkKEdFTlNPVVJDRVNfV0VCQ09SRSkiCiAKIGlmIFVTRV9URVhUVVJFX01BUFBFUl9DQUlSTwpA
QCAtMjkzLDcgKzI5Myw3IEBAIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvVXNlckFnZW50U3R5bGVT
aGVldHMuaDogJChXZWJDb3JlKS9jc3MvbWFrZS1jc3MtZmlsZS1hcnJhCiAJJChBTV9WX0dFTikk
KFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8ICAtLWRlZmluZXMgIiQoZmVh
dHVyZV9kZWZpbmVzKSIgJEAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2VyQWdlbnRTdHlsZVNo
ZWV0c0RhdGEuY3BwICQoVVNFUl9BR0VOVF9TVFlMRV9TSEVFVFMpCiAKIERlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvV2ViS2l0Rm9udEZhbWlseU5hbWVzLmNwcDogRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9XZWJLaXRGb250RmFtaWx5TmFtZXMuaAotRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9XZWJLaXRG
b250RmFtaWx5TmFtZXMuaDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUp
L2Nzcy9XZWJLaXRGb250RmFtaWx5TmFtZXMuaW4KK0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvV2Vi
S2l0Rm9udEZhbWlseU5hbWVzLmg6ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIu
cG0gJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZ3MucG0gJChXZWJDb3Jl
KS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRGb250RmFtaWx5TmFtZXMu
aW4KIAkkKEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwg
LS1mb250cyAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRGb250RmFtaWx5TmFtZXMuaW4gLS1vdXRwdXRE
aXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAogCkBAIC0zMDIsMTQgKzMwMiwxNCBAQCBEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6IERlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSAogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MRWxlbWVudEZh
Y3RvcnkuY3BwOiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxFbGVtZW50RmFjdG9yeS5oCiBE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxFbGVtZW50RmFjdG9yeS5oOiBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0hUTUxOYW1lcy5jcHAKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTE5hbWVz
LmNwcDogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MTmFtZXMuaAotRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9IVE1MTmFtZXMuaDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNv
cmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFt
ZXMuaW4KK0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTE5hbWVzLmg6ICQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL1N0YXRp
Y1N0cmluZ3MucG0gJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL2h0bWwv
SFRNTFRhZ05hbWVzLmluICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KIAkk
KEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdz
ICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwv
SFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0tZXh0cmFEZWZpbmVzICIkKGZlYXR1cmVfZGVmaW5lcyki
IC0tZmFjdG9yeSAtLXdyYXBwZXJGYWN0b3J5IC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVNfV0VC
Q09SRSkiCiAKIAotRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOU05hbWVzLmNwcCBEZXJpdmVk
U291cmNlcy9XZWJDb3JlL1hNTE5TTmFtZXMuaDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5w
bCAkKFdlYkNvcmUpL3htbC94bWxuc2F0dHJzLmluCitEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hN
TE5TTmFtZXMuY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTlNOYW1lcy5oOiAkKFdlYkNv
cmUpL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cy9TdGF0aWNTdHJpbmdzLnBtICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3Jl
KS94bWwveG1sbnNhdHRycy5pbgogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkveG1sL3htbG5zYXR0cnMuaW4gLS1v
dXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAotRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9YTUxOYW1lcy5jcHAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOYW1lcy5oOiAkKFdlYkNv
cmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmluCitEZXJpdmVk
U291cmNlcy9XZWJDb3JlL1hNTE5hbWVzLmNwcCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTE5h
bWVzLmg6ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gJChXZWJDb3JlKS9i
aW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZ3MucG0gJChXZWJDb3JlKS9kb20vbWFrZV9uYW1l
cy5wbCAkKFdlYkNvcmUpL3htbC94bWxhdHRycy5pbgogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQo
V2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkveG1sL3htbGF0
dHJzLmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVNfV0VCQ09SRSkiCiAKIERlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvRXZlbnRGYWN0b3J5LmNwcCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0V2ZW50
SGVhZGVycy5oIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXZlbnRJbnRlcmZhY2VzLmg6ICQoV2Vi
Q29yZSkvZG9tL21ha2VfZXZlbnRfZmFjdG9yeS5wbCAkKFdlYkNvcmUpL2RvbS9FdmVudE5hbWVz
LmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cCBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCmluZGV4IGQzZTkxODI2OTEy
ZTQyNmQ0MTA0NzZiMTgwODQyMmMyNjc2OWJkZDkuLmU2MmU2MzNmYmI1N2ZmZGEzYjMzOWI1M2Ew
YzEzM2FjMDkzYTk1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dl
YkNvcmUuZ3lwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCkBA
IC03NDYsNiArNzQ2LDggQEAKICAgICAgICAgewogICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdI
VE1MTmFtZXMnLAogICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAnLi4vYmluZGlu
Z3Mvc2NyaXB0cy9IYXNoZXIucG0nLAorICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMv
U3RhdGljU3RyaW5nLnBtJywKICAgICAgICAgICAgICcuLi9kb20vbWFrZV9uYW1lcy5wbCcsCiAg
ICAgICAgICAgICAnLi4vaHRtbC9IVE1MVGFnTmFtZXMuaW4nLAogICAgICAgICAgICAgJy4uL2h0
bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluJywKQEAgLTc3Myw2ICs3NzUsOCBAQAogICAgICAgICB7
CiAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ1dlYktpdEZvbnRGYW1pbHlOYW1lcycsCiAgICAg
ICAgICAgJ2lucHV0cyc6IFsKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL0hhc2hl
ci5wbScsCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0n
LAogICAgICAgICAgICAgJy4uL2RvbS9tYWtlX25hbWVzLnBsJywKICAgICAgICAgICAgICcuLi9j
c3MvV2ViS2l0Rm9udEZhbWlseU5hbWVzLmluJywKICAgICAgICAgICBdLApAQCAtNzk0LDYgKzc5
OCw4IEBACiAgICAgICAgIHsKICAgICAgICAgICAnYWN0aW9uX25hbWUnOiAnU1ZHTmFtZXMnLAog
ICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9I
YXNoZXIucG0nLAorICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5n
LnBtJywKICAgICAgICAgICAgICcuLi9kb20vbWFrZV9uYW1lcy5wbCcsCiAgICAgICAgICAgICAn
Li4vc3ZnL3N2Z3RhZ3MuaW4nLAogICAgICAgICAgICAgJy4uL3N2Zy9zdmdhdHRycy5pbicsCkBA
IC04ODIsNiArODg4LDggQEAKICAgICAgICAgewogICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdN
YXRoTUxOYW1lcycsCiAgICAgICAgICAgJ2lucHV0cyc6IFsKKyAgICAgICAgICAgICcuLi9iaW5k
aW5ncy9zY3JpcHRzL0hhc2hlci5wbScsCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0
cy9TdGF0aWNTdHJpbmcucG0nLAogICAgICAgICAgICAgJy4uL2RvbS9tYWtlX25hbWVzLnBsJywK
ICAgICAgICAgICAgICcuLi9tYXRobWwvbWF0aHRhZ3MuaW4nLAogICAgICAgICAgICAgJy4uL21h
dGhtbC9tYXRoYXR0cnMuaW4nLApAQCAtMTAxNiw2ICsxMDI0LDggQEAKICAgICAgICAgewogICAg
ICAgICAgICdhY3Rpb25fbmFtZSc6ICdYTGlua05hbWVzJywKICAgICAgICAgICAnaW5wdXRzJzog
WworICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtJywKKyAgICAgICAg
ICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbScsCiAgICAgICAgICAgICAn
Li4vZG9tL21ha2VfbmFtZXMucGwnLAogICAgICAgICAgICAgJy4uL3N2Zy94bGlua2F0dHJzLmlu
JywKICAgICAgICAgICBdLApAQCAtMTAzNyw2ICsxMDQ3LDggQEAKICAgICAgICAgewogICAgICAg
ICAgICdhY3Rpb25fbmFtZSc6ICdYTUxOU05hbWVzJywKICAgICAgICAgICAnaW5wdXRzJzogWwor
ICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtJywKKyAgICAgICAgICAg
ICcuLi9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbScsCiAgICAgICAgICAgICAnLi4v
ZG9tL21ha2VfbmFtZXMucGwnLAogICAgICAgICAgICAgJy4uL3htbC94bWxuc2F0dHJzLmluJywK
ICAgICAgICAgICBdLApAQCAtMTA1OCw2ICsxMDcwLDggQEAKICAgICAgICAgewogICAgICAgICAg
ICdhY3Rpb25fbmFtZSc6ICdYTUxOYW1lcycsCiAgICAgICAgICAgJ2lucHV0cyc6IFsKKyAgICAg
ICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbScsCisgICAgICAgICAgICAnLi4v
YmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0nLAogICAgICAgICAgICAgJy4uL2RvbS9t
YWtlX25hbWVzLnBsJywKICAgICAgICAgICAgICcuLi94bWwveG1sYXR0cnMuaW4nLAogICAgICAg
ICAgIF0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2Fj
dGlvbl9tYWtlbmFtZXMucHkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2Fj
dGlvbl9tYWtlbmFtZXMucHkKaW5kZXggYTFhNDEwZjFlYTUwYzMxNTQyZWFkNTFiZDNhZTA0NmUx
YzVlYzE5My4uODEzYjg2NDE5NjM2NjZlNjJiZGY4Mjc5ZTBhZThhZmQ1OGExMjI2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVz
LnB5CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX21ha2Vu
YW1lcy5weQpAQCAtMTMxLDYgKzEzMSw4IEBAIGRlZiBtYWluKGFyZ3MpOgogICAgICAgICAgICAg
ZXZlbnRzSW5wdXQgPSBpbnB1dEFic1Bvc2l4CiAgICAgICAgIGVsaWYgaW5wdXRCYXNlbmFtZS5l
bmRzd2l0aCgnTmFtZXMuaW4nKToKICAgICAgICAgICAgIG9wdGlvbnMuYXBwZW5kKGlucHV0QWJz
UG9zaXgpCisgICAgICAgIGVsaWYgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgnLnBtJyk6CisgICAg
ICAgICAgICBjb250aW51ZQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgYXNzZXJ0IEZhbHNl
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3Ry
aW5nLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTEwZTNjODJmNmFhN2VmNmU4NmY1NWE1NjIwZDQxMjViNTVjNjZkOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3Ry
aW5nLnBtCkBAIC0wLDAgKzEsODcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSwgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyMgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorIyBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisjIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisKK3BhY2thZ2UgU3RhdGlj
U3RyaW5nOworCit1c2Ugc3RyaWN0OwordXNlIEhhc2hlcjsKKworc3ViIEdlbmVyYXRlU3RyaW5n
cygkKQoreworICAgIG15ICRzdHJpbmdzUmVmID0gc2hpZnQ7CisgICAgbXkgJXN0cmluZ3MgPSAl
JHN0cmluZ3NSZWY7CisKKyAgICBteSBAcmVzdWx0ID0gKCk7CisKKyAgICB3aGlsZSAoIG15ICgk
bmFtZSwgJHZhbHVlKSA9IGVhY2ggJXN0cmluZ3MgKSB7CisgICAgICAgIHB1c2goQHJlc3VsdCwg
InN0YXRpYyBjb25zdCBMQ2hhciAke25hbWV9U3RyaW5nOFtdID0gXCIke3ZhbHVlfVwiO1xuIik7
CisgICAgfQorCisgICAgcHVzaChAcmVzdWx0LCAiXG4iKTsKKworICAgIHdoaWxlICggbXkgKCRu
YW1lLCAkdmFsdWUpID0gZWFjaCAlc3RyaW5ncyApIHsKKyAgICAgICAgbXkgJGxlbmd0aCA9IGxl
bmd0aCgkdmFsdWUpOworICAgICAgICBteSAkaGFzaCA9IEhhc2hlcjo6R2VuZXJhdGVIYXNoVmFs
dWUoJHZhbHVlKTsKKyAgICAgICAgcHVzaChAcmVzdWx0LCA8PEVORCk7CitzdGF0aWMgU3RyaW5n
SW1wbDo6U3RhdGljQVNDSUlMaXRlcmFsICR7bmFtZX1EYXRhID0geworICAgIFN0cmluZ0ltcGw6
OlN0YXRpY0FTQ0lJTGl0ZXJhbDo6c19pbml0aWFsUmVmQ291bnQsCisgICAgJGxlbmd0aCwKKyAg
ICAke25hbWV9U3RyaW5nOCwKKyAgICAwLAorICAgIFN0cmluZ0ltcGw6OlN0YXRpY0FTQ0lJTGl0
ZXJhbDo6c19pbml0aWFsRmxhZ3MgfCAoJHtoYXNofSA8PCBTdHJpbmdJbXBsOjpTdGF0aWNBU0NJ
SUxpdGVyYWw6OnNfaGFzaFNoaWZ0KQorfTsKK0VORAorICAgIH0KKworICAgIHB1c2goQHJlc3Vs
dCwgIlxuIik7CisKKyAgICB3aGlsZSAoIG15ICgkbmFtZSwgJHZhbHVlKSA9IGVhY2ggJXN0cmlu
Z3MgKSB7CisgICAgICAgIHB1c2goQHJlc3VsdCwgInN0YXRpYyBTdHJpbmdJbXBsKiAke25hbWV9
SW1wbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8U3RyaW5nSW1wbCo+KCYke25hbWV9RGF0YSk7XG4iKTsK
KyAgICB9CisKKyAgICBwdXNoKEByZXN1bHQsICJcbiIpOworCisgICAgcmV0dXJuIGpvaW4gIiIs
IEByZXN1bHQ7Cit9CisKK3N1YiBHZW5lcmF0ZVN0cmluZ0Fzc2VydHMoJCkKK3sKKyAgICBteSAk
c3RyaW5nc1JlZiA9IHNoaWZ0OworICAgIG15ICVzdHJpbmdzID0gJSRzdHJpbmdzUmVmOworCisg
ICAgbXkgQHJlc3VsdCA9ICgpOworCisgICAgcHVzaChAcmVzdWx0LCAiI2lmbmRlZiBOREVCVUdc
biIpOworCisgICAgd2hpbGUgKCBteSAoJG5hbWUsICR2YWx1ZSkgPSBlYWNoICVzdHJpbmdzICkg
eworICAgICAgICBwdXNoKEByZXN1bHQsICIgICAgJHtuYW1lfUltcGwtPmFzc2VydEhhc2hJc0Nv
cnJlY3QoKTtcbiIpOworICAgIH0KKworICAgIHB1c2goQHJlc3VsdCwgIiNlbmRpZiAvLyBOREVC
VUdcbiIpOworCisgICAgcHVzaChAcmVzdWx0LCAiXG4iKTsKKworICAgIHJldHVybiBqb2luICIi
LCBAcmVzdWx0OworfQorCisxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxp
ZmllZE5hbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwCmluZGV4
IGRlNjBiZmIwN2UxMjI5OGRiYWZmMWZhYzc3OGQ0ZWE1ZDNiYmQ1ODEuLmI5ZDUxZWI0NTdkN2Y5
YTRjYWZmNjRhYTgzNjk3MTRhZDQ5Yjg0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9RdWFsaWZpZWROYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFt
ZS5jcHAKQEAgLTE3MiwxNiArMTcyLDE0IEBAIHVuc2lnbmVkIFF1YWxpZmllZE5hbWU6OlF1YWxp
ZmllZE5hbWVJbXBsOjpjb21wdXRlSGFzaCgpIGNvbnN0CiAgICAgcmV0dXJuIGhhc2hDb21wb25l
bnRzKGNvbXBvbmVudHMpOwogfQogCi12b2lkIGNyZWF0ZVF1YWxpZmllZE5hbWUodm9pZCogdGFy
Z2V0QWRkcmVzcywgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbmFtZUxlbmd0aCwgY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lTmFtZXNwYWNlKQordm9pZCBjcmVhdGVRdWFsaWZpZWROYW1lKHZv
aWQqIHRhcmdldEFkZHJlc3MsIFN0cmluZ0ltcGwqIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZU5hbWVzcGFjZSkKIHsKLSAgICBBdG9taWNTdHJpbmcgYXRvbWljTmFtZShuYW1lLCBuYW1l
TGVuZ3RoLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBuZXcgKHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHRhcmdldEFkZHJlc3MpKSBRdWFsaWZpZWROYW1lKG51bGxB
dG9tLCBhdG9taWNOYW1lLCBuYW1lTmFtZXNwYWNlKTsKKyAgICBuZXcgKHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCo+KHRhcmdldEFkZHJlc3MpKSBRdWFsaWZpZWROYW1lKG51bGxBdG9tLCBBdG9taWNT
dHJpbmcobmFtZSksIG5hbWVOYW1lc3BhY2UpOwogfQogCi12b2lkIGNyZWF0ZVF1YWxpZmllZE5h
bWUodm9pZCogdGFyZ2V0QWRkcmVzcywgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbmFtZUxl
bmd0aCkKK3ZvaWQgY3JlYXRlUXVhbGlmaWVkTmFtZSh2b2lkKiB0YXJnZXRBZGRyZXNzLCBTdHJp
bmdJbXBsKiBuYW1lKQogewotICAgIEF0b21pY1N0cmluZyBhdG9taWNOYW1lKG5hbWUsIG5hbWVM
ZW5ndGgsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIG5ldyAocmVp
bnRlcnByZXRfY2FzdDx2b2lkKj4odGFyZ2V0QWRkcmVzcykpIFF1YWxpZmllZE5hbWUobnVsbEF0
b20sIGF0b21pY05hbWUsIG51bGxBdG9tKTsKKyAgICBuZXcgKHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCo+KHRhcmdldEFkZHJlc3MpKSBRdWFsaWZpZWROYW1lKG51bGxBdG9tLCBBdG9taWNTdHJpbmco
bmFtZSksIG51bGxBdG9tKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1F1YWxpZmllZE5hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmgKaW5k
ZXggYzNjZDI5ZmRlY2FiY2FkNzIwMzczYzU3NTBhOTQ4NmQzZjlmMTAyZC4uMzg2NzMxNTRhNjdm
MTY2ODRkM2I0NGY1ZDU5OWU2OTdkZTg2ZDhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1F1YWxpZmllZE5hbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFt
ZS5oCkBAIC0xNDQsOCArMTQ0LDggQEAgc3RydWN0IFF1YWxpZmllZE5hbWVIYXNoIHsKICAgICBz
dGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwog
fTsKIAotdm9pZCBjcmVhdGVRdWFsaWZpZWROYW1lKHZvaWQqIHRhcmdldEFkZHJlc3MsIGNvbnN0
IGNoYXIqIG5hbWUsIHVuc2lnbmVkIG5hbWVMZW5ndGgpOwotdm9pZCBjcmVhdGVRdWFsaWZpZWRO
YW1lKHZvaWQqIHRhcmdldEFkZHJlc3MsIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIG5hbWVM
ZW5ndGgsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZU5hbWVzcGFjZSk7Cit2b2lkIGNyZWF0ZVF1
YWxpZmllZE5hbWUodm9pZCogdGFyZ2V0QWRkcmVzcywgU3RyaW5nSW1wbCogbmFtZSk7Cit2b2lk
IGNyZWF0ZVF1YWxpZmllZE5hbWUodm9pZCogdGFyZ2V0QWRkcmVzcywgU3RyaW5nSW1wbCogbmFt
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lTmFtZXNwYWNlKTsKIAogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9t
YWtlX25hbWVzLnBsCmluZGV4IGI5MTAzZTU0ZmUxNzdmZjNjMTU4OGMyMTNkMGEzMTk3ZmUzOGYw
MGYuLjAxNzAyNzUyN2YzYjI3ZjVlMTYyMTg4MGIyMTVjZmVhZjZmM2E3MjcgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9tYWtlX25hbWVzLnBsCkBAIC0zMSw2ICszMSw3IEBACiAKIHVzZSBzdHJpY3Q7CiAKK3VzZSBT
dGF0aWNTdHJpbmc7CiB1c2UgQ29uZmlnOwogdXNlIEdldG9wdDo6TG9uZzsKIHVzZSBGaWxlOjpQ
YXRoOwpAQCAtNTQsNiArNTUsNyBAQCBteSAlZW5hYmxlZFRhZ3MgPSAoKTsKIG15ICVlbmFibGVk
QXR0cnMgPSAoKTsKIG15ICVhbGxUYWdzID0gKCk7CiBteSAlYWxsQXR0cnMgPSAoKTsKK215ICVh
bGxTdHJpbmdzID0gKCk7CiBteSAlcGFyYW1ldGVycyA9ICgpOwogbXkgJGV4dHJhRGVmaW5lcyA9
IDA7CiBteSAkaW5pdERlZmF1bHRzID0gMTsKQEAgLTExNSwxNCArMTE3LDE5IEBAIGlmIChsZW5n
dGgoJGZvbnROYW1lc0luKSkgewogICAgIHByaW50TGljZW5zZUhlYWRlcigkRik7CiAgICAgcHJp
bnRDcHBIZWFkKCRGLCAiQ1NTIiwgJGZhbWlseU5hbWVzRmlsZUJhc2UsICJXVEYiKTsKIAorICAg
IHByaW50IEYgU3RhdGljU3RyaW5nOjpHZW5lcmF0ZVN0cmluZ3MoXCVwYXJhbWV0ZXJzKTsKKwog
ICAgIHdoaWxlICggbXkgKCRuYW1lLCAkaWRlbnRpZmllcikgPSBlYWNoICVwYXJhbWV0ZXJzICkg
ewogICAgICAgICBwcmludCBGICJERUZJTkVfR0xPQkFMKEF0b21pY1N0cmluZywgJG5hbWUpXG4i
OwogICAgIH0KIAogICAgIHByaW50SW5pdCgkRiwgMCk7CiAKKyAgICBwcmludCBGICJcbiI7Cisg
ICAgcHJpbnQgRiBTdGF0aWNTdHJpbmc6OkdlbmVyYXRlU3RyaW5nQXNzZXJ0cyhcJXBhcmFtZXRl
cnMpOworCiAgICAgd2hpbGUgKCBteSAoJG5hbWUsICRpZGVudGlmaWVyKSA9IGVhY2ggJXBhcmFt
ZXRlcnMgKSB7Ci0gICAgICAgIHByaW50IEYgIiAgICBuZXcgKCh2b2lkKikmJG5hbWUpIEF0b21p
Y1N0cmluZyhcIiRpZGVudGlmaWVyXCIpO1xuIjsKKyAgICAgICAgcHJpbnQgRiAiICAgIG5ldyAo
KHZvaWQqKSYkbmFtZSkgQXRvbWljU3RyaW5nKCR7bmFtZX1JbXBsKTtcbiI7CiAgICAgfQogCiAg
ICAgcHJpbnQgRiAifVxufVxufVxuIjsKQEAgLTEzNSwxMSArMTQyLDEzIEBAIGRpZSAiWW91IG11
c3Qgc3BlY2lmeSBhdCBsZWFzdCBvbmUgb2YgLS10YWdzIDxmaWxlPiBvciAtLWF0dHJzIDxmaWxl
PiIgdW5sZXNzIChsCiBpZiAobGVuZ3RoKCR0YWdzRmlsZSkpIHsKICAgICAlYWxsVGFncyA9ICV7
cmVhZFRhZ3MoJHRhZ3NGaWxlLCAwKX07CiAgICAgJWVuYWJsZWRUYWdzID0gJXtyZWFkVGFncygk
dGFnc0ZpbGUsIDEpfTsKKyAgICBuYW1lc1RvU3RyaW5ncyhcJWFsbFRhZ3MsIFwlYWxsU3RyaW5n
cyk7CiB9CiAKIGlmIChsZW5ndGgoJGF0dHJzRmlsZSkpIHsKICAgICAlYWxsQXR0cnMgPSAle3Jl
YWRBdHRycygkYXR0cnNGaWxlLCAwKX07CiAgICAgJWVuYWJsZWRBdHRycyA9ICV7cmVhZEF0dHJz
KCRhdHRyc0ZpbGUsIDEpfTsKKyAgICBuYW1lc1RvU3RyaW5ncyhcJWFsbEF0dHJzLCBcJWFsbFN0
cmluZ3MpOwogfQogCiBkaWUgIllvdSBtdXN0IHNwZWNpZnkgYSBuYW1lc3BhY2UgKGUuZy4gU1ZH
KSBmb3IgPG5hbWVzcGFjZT5OYW1lcy5oIiB1bmxlc3MgJHBhcmFtZXRlcnN7bmFtZXNwYWNlfTsK
QEAgLTIxMiw2ICsyMjEsMzEgQEAgc3ViIGRlZmF1bHRJbnRlcmZhY2VOYW1lCiAKICMjIyBQYXJz
aW5nIGhhbmRsZXJzCiAKK3N1YiB2YWx1ZUZvck5hbWUKK3sKKyAgICBteSAkbmFtZSA9IHNoaWZ0
OworICAgIG15ICR2YWx1ZSA9ICRleHRlbnNpb25BdHRyc3skbmFtZX07CisKKyAgICBpZiAoISR2
YWx1ZSkgeworICAgICAgICAkdmFsdWUgPSAkbmFtZTsKKyAgICAgICAgJHZhbHVlID1+IHMvXy8t
L2c7CisgICAgfQorCisgICAgcmV0dXJuICR2YWx1ZTsKK30KKworc3ViIG5hbWVzVG9TdHJpbmdz
Cit7CisgICAgbXkgJG5hbWVzUmVmID0gc2hpZnQ7CisgICAgbXkgJHN0cmluZ3NSZWYgPSBzaGlm
dDsKKworICAgIG15ICVuYW1lcyA9ICUkbmFtZXNSZWY7CisKKyAgICBmb3IgbXkgJG5hbWUgKGtl
eXMgJW5hbWVzKSB7CisgICAgICAgICRzdHJpbmdzUmVmLT57JG5hbWV9ID0gdmFsdWVGb3JOYW1l
KCRuYW1lKTsKKyAgICB9Cit9CisKIHN1YiB0YWdzSGFuZGxlcgogewogICAgIG15ICgkdGFnLCAk
cHJvcGVydHksICR2YWx1ZSkgPSBAXzsKQEAgLTYzNiw2ICs2NzAsOCBAQCBzdWIgcHJpbnROYW1l
c0NwcEZpbGUKIAogICAgIHByaW50IEYgIkRFRklORV9HTE9CQUwoQXRvbWljU3RyaW5nLCAke2xv
d2VyTmFtZXNwYWNlfU5hbWVzcGFjZVVSSSlcblxuIjsKIAorICAgIHByaW50IEYgU3RhdGljU3Ry
aW5nOjpHZW5lcmF0ZVN0cmluZ3MoXCVhbGxTdHJpbmdzKTsKKwogICAgIGlmIChrZXlzICVhbGxU
YWdzKSB7CiAgICAgICAgIHByaW50IEYgIi8vIFRhZ3NcbiI7CiAgICAgICAgIGZvciBteSAkbmFt
ZSAoc29ydCBrZXlzICVhbGxUYWdzKSB7CkBAIC02NzIsNyArNzA4LDEwIEBAIHN1YiBwcmludE5h
bWVzQ3BwRmlsZQogICAgIHByaW50KEYgIiAgICBBdG9taWNTdHJpbmcgJHtsb3dlck5hbWVzcGFj
ZX1OUyhcIiRwYXJhbWV0ZXJze25hbWVzcGFjZVVSSX1cIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7XG5cbiIpOwogCiAgICAgcHJpbnQoRiAiICAgIC8vIE5hbWVzcGFjZVxu
Iik7Ci0gICAgcHJpbnQoRiAiICAgIG5ldyAoKHZvaWQqKSYke2xvd2VyTmFtZXNwYWNlfU5hbWVz
cGFjZVVSSSkgQXRvbWljU3RyaW5nKCR7bG93ZXJOYW1lc3BhY2V9TlMpO1xuXG4iKTsKKyAgICBw
cmludChGICIgICAgbmV3ICgodm9pZCopJiR7bG93ZXJOYW1lc3BhY2V9TmFtZXNwYWNlVVJJKSBB
dG9taWNTdHJpbmcoJHtsb3dlck5hbWVzcGFjZX1OUyk7XG4iKTsKKyAgICBwcmludChGICJcbiIp
OworICAgIHByaW50IEYgU3RhdGljU3RyaW5nOjpHZW5lcmF0ZVN0cmluZ0Fzc2VydHMoXCVhbGxT
dHJpbmdzKTsKKwogICAgIGlmIChrZXlzICVhbGxUYWdzKSB7CiAgICAgICAgIG15ICR0YWdzTmFt
ZXNwYWNlID0gJHBhcmFtZXRlcnN7dGFnc051bGxOYW1lc3BhY2V9ID8gIm51bGxBdG9tIiA6ICIk
e2xvd2VyTmFtZXNwYWNlfU5TIjsKICAgICAgICAgcHJpbnREZWZpbml0aW9ucygkRiwgXCVhbGxU
YWdzLCAidGFncyIsICR0YWdzTmFtZXNwYWNlKTsKQEAgLTc3NCwxNyArODEzLDExIEBAIHN1YiBw
cmludERlZmluaXRpb25zCiAgICAgcHJpbnQgRiAiICAgIC8vICIgLiB1Y2ZpcnN0KCR0eXBlKSAu
ICJcbiI7CiAKICAgICBmb3IgbXkgJG5hbWUgKHNvcnQga2V5cyAlJG5hbWVzUmVmKSB7Ci0gICAg
ICAgIG15ICRyZWFsTmFtZSA9ICRleHRlbnNpb25BdHRyc3skbmFtZX07Ci0gICAgICAgIGlmICgh
JHJlYWxOYW1lKSB7Ci0gICAgICAgICAgICAkcmVhbE5hbWUgPSAkbmFtZTsKLSAgICAgICAgICAg
ICRyZWFsTmFtZSA9fiBzL18vLS9nOwotICAgICAgICB9Ci0KICAgICAgICAgIyBUbyBnZW5lcmF0
ZSBsZXNzIGNvZGUgaW4gaW5pdCgpLCB0aGUgY29tbW9uIGNhc2Ugb2YgbnVsbEF0b20gZm9yIHRo
ZSBuYW1lc3BhY2UsIHdlIGNhbGwgY3JlYXRlUXVhbGlmaWVkTmFtZSgpIHdpdGhvdXQgcGFzc2lu
ZyAkbmFtZXNwYWNlVVJJLgogICAgICAgICBpZiAoJG5hbWVzcGFjZVVSSSBlcSAibnVsbEF0b20i
KSB7Ci0gICAgICAgICAgICBwcmludCBGICIgICAgY3JlYXRlUXVhbGlmaWVkTmFtZSgodm9pZCop
JiRuYW1lIiwiJHtzaG9ydENhbWVsVHlwZX0sIFwiJHJlYWxOYW1lXCIsICIsIGxlbmd0aCAkcmVh
bE5hbWUgLCIpO1xuIjsKKyAgICAgICAgICAgIHByaW50IEYgIiAgICBjcmVhdGVRdWFsaWZpZWRO
YW1lKCh2b2lkKikmJG5hbWUiLCIke3Nob3J0Q2FtZWxUeXBlfSwgJHtuYW1lfUltcGwpO1xuIjsK
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHByaW50IEYgIiAgICBjcmVhdGVRdWFsaWZp
ZWROYW1lKCh2b2lkKikmJG5hbWUiLCIke3Nob3J0Q2FtZWxUeXBlfSwgXCIkcmVhbE5hbWVcIiwg
IiwgbGVuZ3RoICRyZWFsTmFtZSAsIiwgJG5hbWVzcGFjZVVSSSk7XG4iOworICAgICAgICAgICAg
cHJpbnQgRiAiICAgIGNyZWF0ZVF1YWxpZmllZE5hbWUoKHZvaWQqKSYkbmFtZSIsIiR7c2hvcnRD
YW1lbFR5cGV9LCAke25hbWV9SW1wbCwgJG5hbWVzcGFjZVVSSSk7XG4iOwogICAgICAgICB9CiAg
ICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194125</attachid>
            <date>2013-03-20 14:31:54 -0700</date>
            <delta_ts>2013-03-20 15:30:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-112831-20130320142743.patch</filename>
            <type>text/plain</type>
            <size>25984</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIyMDNmZjgyNWJmYjQ1YjcwZmYzMjRj
NzY3ZTg2NTE4ZWZlZjIzMTAuLjBmMzQ2ZjE5NmQ0ZjZlM2Q2ZDg5NGQwMDYxNjVmM2E1NDVmYTJk
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDMtMjAgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBIVE1MTmFtZXMgc2hvdWxkIGNvbnN0cnVjdCBzdHJpbmdz
IGF0IGNvbXBpbGUgdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEyODMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAgIChTdHJpbmdJbXBsKToKKyAg
ICAgICAgKFN0YXRpY0FTQ0lJTGl0ZXJhbCk6CisgICAgICAgICAgICAtIFRoaXMgc3RydWN0IGxl
dHMgdXMgY29uc3RydWN0IFN0cmluZ0ltcGwgb2JqZWN0cyBhdCBjb21waWxlIHRpbWUuCisgICAg
ICAgIChXVEY6OlN0cmluZ0ltcGw6OmFzc2VydFZhbGlkSGFzaCk6CisgICAgICAgICAgICAtIFRo
aXMgZnVuY3Rpb24gbGV0cyB1cyBzYW5pdHkgY2hlY2sgU3RyaW5nSW1wbCBvYmplY3RzIGNyZWF0
ZWQgZnJvbSBTdGF0aWNEYXRhLgorCiAyMDEzLTAzLTIwICBKdW5nSmlrIExlZSAgPGp1bmdqaWsu
bGVlQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIERpc2FibGUgUkVRVUVTVF9BTklNQVRJ
T05fRlJBTUVfVElNRVIgdG8gcmVuZGVyIGEgbmV3IGFuaW1hdGlvbiBmcmFtZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAyZGExNWVkMmRmZGZkOWVjZGNjZjk1NzYzOGUyZWFhZmU5MDc0YjAwLi4wNGM1NWE3YjJm
NDg0OTIwMjA2NzMzN2YyMmY2YTU3MDJlN2MzMmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTMtMDMtMjAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBIVE1MTmFtZXMgc2hvdWxkIGNvbnN0cnVjdCBzdHJpbmdzIGF0IGNvbXBpbGUgdGltZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVGhpcyBwYXRjaCB0ZWFj
aGVzIG1ha2VfbmFtZXMgaG93IHRvIGNvbnN0cnVjdCBzdHJpbmdzIGF0IGNvbXBpbGUgdGltZSwK
KyAgICAgICAgZWxpbWluYXRpbmcgYSBsYXJnZSBudW1iZXIgb2Ygc3RhcnR1cCBtYWxsb2NzLgor
CisgICAgICAgICogV2ViQ29yZS5neXAvV2ViQ29yZS5neXA6CisgICAgICAgICogV2ViQ29yZS5n
eXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5OgorICAgICAgICAgICAgLSBUZWFjaCB0aGUg
Q2hyb21pdW0gYnVpbGQgaG93IHRvIGRlYWwgd2l0aCBQZXJsIG1vZHVsZXMuCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG06IEFkZGVkLgorICAgICAgICAgICAgLSBB
IFBlcmwgbW9kdWxlIGZvciBjb25zdHJ1Y3Rpbmcgc3RhdGljIHN0cmluZ3MuCisgICAgICAgIChH
ZW5lcmF0ZVN0cmluZ3MpOgorICAgICAgICAoR2VuZXJhdGVWYWxpZGF0ZVN0cmluZ3MpOgorICAg
ICAgICAqIGRvbS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVF1
YWxpZmllZE5hbWUpOgorICAgICAgICAgICAgLSBjcmVhdGVRdWFsaWZpZWROYW1lIG5vdyB0YWtl
cyBhbiBhbHJlYWR5LWNvbnN0cnVjdGVkIFN0cmluZ0ltcGwKKyAgICAgICAgICAgICAgb2JqZWN0
LgorICAgICAgICAqIGRvbS9RdWFsaWZpZWROYW1lLmg6CisgICAgICAgICogZG9tL21ha2VfbmFt
ZXMucGw6CisgICAgICAgICh2YWx1ZUZvck5hbWUpOgorICAgICAgICAobmFtZXNUb1N0cmluZ3Mp
OgorICAgICAgICAocHJpbnROYW1lc0NwcEZpbGUpOgorICAgICAgICAocHJpbnREZWZpbml0aW9u
cyk6CisgICAgICAgICAgICAtIFRlYWNoIG1ha2VfbmFtZXMgaG93IHRvIHVzZSBTdGF0aWNTdHJp
bmcucG0uCisKIDIwMTMtMDMtMjAgIE1pY2hhZWwgUHJ1ZXR0ICA8bWljaGFlbEA2OGsub3JnPgog
CiAgICAgICAgIFtWOF0gU2ltcGxpZnkgaW1wbGVtZW50YXRpb24gb2YgRW5mb3JjZVJhbmdlIGNv
bnZlcnNpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IGYxZWI2NzE3OGIyNWNkOWQ4
MWQxZjIyMGVkMzgyY2Y2M2JhOTkxOTMuLjMzM2E1NWFlOTVlZGU3NDAxM2ZlYzM4Y2I2YzcwYzgy
NDVjMTcwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC03NzIsNiArNzcyLDMyIEBA
IHByaXZhdGU6CiAjaWZkZWYgU1RSSU5HX1NUQVRTCiAgICAgV1RGX0VYUE9SVERBVEEgc3RhdGlj
IFN0cmluZ1N0YXRzIG1fc3RyaW5nU3RhdHM7CiAjZW5kaWYKKworcHVibGljOgorICAgIHN0cnVj
dCBTdGF0aWNBU0NJSUxpdGVyYWwgeworICAgICAgICAvLyBUaGVzZSBtZW1iZXIgdmFyaWFibGVz
IG11c3QgbWF0Y2ggdGhlIGxheW91dCBvZiBTdHJpbmdJbXBsLgorICAgICAgICB1bnNpZ25lZCBt
X3JlZkNvdW50OworICAgICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKKyAgICAgICAgY29uc3QgTENo
YXIqIG1fZGF0YTg7CisgICAgICAgIHZvaWQqIG1fYnVmZmVyOworICAgICAgICB1bnNpZ25lZCBt
X2hhc2hBbmRGbGFnczsKKworICAgICAgICAvLyBUaGVzZSB2YWx1ZXMgbWltaWMgQ29uc3RydWN0
RnJvbUxpdGVyYWwuCisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX2luaXRpYWxSZWZD
b3VudCA9IHNfcmVmQ291bnRJbmNyZW1lbnQ7CisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBzX2luaXRpYWxGbGFncyA9IHNfaGFzaEZsYWc4Qml0QnVmZmVyIHwgQnVmZmVySW50ZXJuYWwg
fCBzX2hhc2hGbGFnSGFzVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyOworICAgICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgc19oYXNoU2hpZnQgPSBzX2ZsYWdDb3VudDsKKyAgICB9OworCisjaWZu
ZGVmIE5ERUJVRworICAgIHZvaWQgYXNzZXJ0SGFzaElzQ29ycmVjdCgpCisgICAgeworICAgICAg
ICBBU1NFUlQoaGFzSGFzaCgpKTsKKyAgICAgICAgQVNTRVJUKGV4aXN0aW5nSGFzaCgpID09IFN0
cmluZ0hhc2hlcjo6Y29tcHV0ZUhhc2hBbmRNYXNrVG9wOEJpdHMoY2hhcmFjdGVyczgoKSwgbGVu
Z3RoKCkpKTsKKyAgICB9CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICAvLyBUaGVzZSBtZW1iZXIg
dmFyaWFibGVzIG11c3QgbWF0Y2ggdGhlIGxheW91dCBvZiBTdGF0aWNBU0NJSUxpdGVyYWwuCiAg
ICAgdW5zaWduZWQgbV9yZWZDb3VudDsKICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKICAgICB1bmlv
biB7CkBAIC03ODksNiArODE1LDggQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIHVuc2lnbmVkIG1f
aGFzaEFuZEZsYWdzOwogfTsKIAorQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFN0cmluZ0ltcGwpID09
IHNpemVvZihTdHJpbmdJbXBsOjpTdGF0aWNBU0NJSUxpdGVyYWwpLCBTdHJpbmdJbXBsX3Nob3Vs
ZF9tYXRjaF9pdHNfU3RhdGljQVNDSUlMaXRlcmFsKTsKKwogdGVtcGxhdGUgPD4KIEFMV0FZU19J
TkxJTkUgY29uc3QgTENoYXIqIFN0cmluZ0ltcGw6OmdldENoYXJhY3RlcnM8TENoYXI+KCkgY29u
c3QgeyByZXR1cm4gY2hhcmFjdGVyczgoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCA3NTliNGYwOGRmMjBlNTA0ODdmODVkNzI2NDJmMjNhY2JlMTRiMjliLi4wZTFkZTcz
ZmIxMWNjMmVlYzAwMTdlYzIyNWQxZTljYWM1ZTI3Yzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTgyNiw3ICs4MjYsNyBAQCBVc2VyQWdlbnRTdHlsZVNoZWV0cy5oIDogY3Nz
L21ha2UtY3NzLWZpbGUtYXJyYXlzLnBsIGJpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2VzcwogCiAj
IC0tLS0tLS0tCiAKLVdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAgV2ViS2l0Rm9udEZhbWlseU5h
bWVzLmggOiBkb20vbWFrZV9uYW1lcy5wbCBjc3MvV2ViS2l0Rm9udEZhbWlseU5hbWVzLmluCitX
ZWJLaXRGb250RmFtaWx5TmFtZXMuY3BwIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5oIDogYmluZGlu
Z3Mvc2NyaXB0cy9IYXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gZG9t
L21ha2VfbmFtZXMucGwgY3NzL1dlYktpdEZvbnRGYW1pbHlOYW1lcy5pbgogCXBlcmwgLUkgJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tZm9udHMgJChXZWJDb3JlKS9jc3MvV2ViS2l0
Rm9udEZhbWlseU5hbWVzLmluCiAKICMgSFRNTCB0YWcgYW5kIGF0dHJpYnV0ZSBuYW1lcwpAQCAt
ODczLDIyICs4NzMsMjIgQEAgZW5kaWYKIAogaWZkZWYgSFRNTF9GTEFHUwogCi1IVE1MRWxlbWVu
dEZhY3RvcnkuY3BwIEhUTUxOYW1lcy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCBodG1sL0hUTUxU
YWdOYW1lcy5pbiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgorSFRNTEVsZW1lbnRGYWN0b3J5
LmNwcCBIVE1MTmFtZXMuY3BwIDogYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gYmluZGluZ3Mv
c2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gZG9tL21ha2VfbmFtZXMucGwgaHRtbC9IVE1MVGFnTmFt
ZXMuaW4gaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KIAlwZXJsIC1JICQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAt
LWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gLS1mYWN0b3J5IC0t
d3JhcHBlckZhY3RvcnkgLS1leHRyYURlZmluZXMgIiQoSFRNTF9GTEFHUykiCiAKIGVsc2UKIAot
SFRNTEVsZW1lbnRGYWN0b3J5LmNwcCBIVE1MTmFtZXMuY3BwIDogZG9tL21ha2VfbmFtZXMucGwg
aHRtbC9IVE1MVGFnTmFtZXMuaW4gaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KK0hUTUxFbGVt
ZW50RmFjdG9yeS5jcHAgSFRNTE5hbWVzLmNwcCA6IGJpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBt
IGJpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtIGRvbS9tYWtlX25hbWVzLnBsIGh0bWwv
SFRNTFRhZ05hbWVzLmluIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCiAJcGVybCAtSSAkKFdl
YkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFn
TmFtZXMuaW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0t
ZmFjdG9yeSAtLXdyYXBwZXJGYWN0b3J5CiAKIGVuZGlmCiAKIEpTSFRNTEVsZW1lbnRXcmFwcGVy
RmFjdG9yeS5jcHAgOiBIVE1MTmFtZXMuY3BwCiAKLVhNTE5TTmFtZXMuY3BwIDogZG9tL21ha2Vf
bmFtZXMucGwgeG1sL3htbG5zYXR0cnMuaW4KK1hNTE5TTmFtZXMuY3BwIDogYmluZGluZ3Mvc2Ny
aXB0cy9IYXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gZG9tL21ha2Vf
bmFtZXMucGwgeG1sL3htbG5zYXR0cnMuaW4KIAlwZXJsIC1JICQoV2ViQ29yZSkvYmluZGluZ3Mv
c2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkveG1sL3htbG5zYXR0cnMuaW4KIAotWE1MTmFt
ZXMuY3BwIDogZG9tL21ha2VfbmFtZXMucGwgeG1sL3htbGF0dHJzLmluCitYTUxOYW1lcy5jcHAg
OiBiaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbSBiaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmlu
Zy5wbSBkb20vbWFrZV9uYW1lcy5wbCB4bWwveG1sYXR0cnMuaW4KIAlwZXJsIC1JICQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmlu
CiAKICMgLS0tLS0tLS0KQEAgLTkwNywxOCArOTA3LDE4IEBAIGVuZGlmCiAKIGlmZGVmIFNWR19G
TEFHUwogCi1TVkdFbGVtZW50RmFjdG9yeS5jcHAgU1ZHTmFtZXMuY3BwIDogZG9tL21ha2VfbmFt
ZXMucGwgc3ZnL3N2Z3RhZ3MuaW4gc3ZnL3N2Z2F0dHJzLmluCitTVkdFbGVtZW50RmFjdG9yeS5j
cHAgU1ZHTmFtZXMuY3BwIDogYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gYmluZGluZ3Mvc2Ny
aXB0cy9TdGF0aWNTdHJpbmcucG0gZG9tL21ha2VfbmFtZXMucGwgc3ZnL3N2Z3RhZ3MuaW4gc3Zn
L3N2Z2F0dHJzLmluCiAJcGVybCAtSSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10
YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy9zdmdh
dHRycy5pbiAtLWV4dHJhRGVmaW5lcyAiJChTVkdfRkxBR1MpIiAtLWZhY3RvcnkgLS13cmFwcGVy
RmFjdG9yeQogZWxzZQogCi1TVkdFbGVtZW50RmFjdG9yeS5jcHAgU1ZHTmFtZXMuY3BwIDogZG9t
L21ha2VfbmFtZXMucGwgc3ZnL3N2Z3RhZ3MuaW4gc3ZnL3N2Z2F0dHJzLmluCitTVkdFbGVtZW50
RmFjdG9yeS5jcHAgU1ZHTmFtZXMuY3BwIDogYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gYmlu
ZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gZG9tL21ha2VfbmFtZXMucGwgc3ZnL3N2Z3Rh
Z3MuaW4gc3ZnL3N2Z2F0dHJzLmluCiAJcGVybCAtSSAkKFdlYkNvcmUpL2JpbmRpbmdzL3Njcmlw
dHMgJDwgLS10YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUp
L3N2Zy9zdmdhdHRycy5pbiAtLWZhY3RvcnkgLS13cmFwcGVyRmFjdG9yeQogCiBlbmRpZgogCiBK
U1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgOiBTVkdOYW1lcy5jcHAKIAotWExpbmtOYW1l
cy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCBzdmcveGxpbmthdHRycy5pbgorWExpbmtOYW1lcy5j
cHAgOiBiaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbSBiaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0
cmluZy5wbSBkb20vbWFrZV9uYW1lcy5wbCBzdmcveGxpbmthdHRycy5pbgogCXBlcmwgLUkgJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3JlKS9zdmcveGxpbmth
dHRycy5pbgogCiAjIC0tLS0tLS0tCkBAIC05MzgsNyArOTM4LDcgQEAgRXhjZXB0aW9uQ29kZURl
c2NyaXB0aW9uLmNwcCBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24uaCBFeGNlcHRpb25IZWFkZXJz
LmggRXhjZXAKIAogIyBNYXRoTUwgdGFnIGFuZCBhdHRyaWJ1dGUgbmFtZXMsIGFuZCBlbGVtZW50
IGZhY3RvcnkKIAotTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwIE1hdGhNTE5hbWVzLmNwcCA6IGRv
bS9tYWtlX25hbWVzLnBsIG1hdGhtbC9tYXRodGFncy5pbiBtYXRobWwvbWF0aGF0dHJzLmluCitN
YXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgTWF0aE1MTmFtZXMuY3BwIDogYmluZGluZ3Mvc2NyaXB0
cy9IYXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gZG9tL21ha2VfbmFt
ZXMucGwgbWF0aG1sL21hdGh0YWdzLmluIG1hdGhtbC9tYXRoYXR0cnMuaW4KIAlwZXJsIC1JICQo
V2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9tYXRobWwvbWF0
aHRhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUpL21hdGhtbC9tYXRoYXR0cnMuaW4gLS1mYWN0b3J5
IC0td3JhcHBlckZhY3RvcnkKIAogIyAtLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAw
YmE1NTdkNTg0ZTdhMzQ3YzA4NDBiOTIxOTA4MDI2MTg1MGI3NWFlLi42NzE0NDg1MTAwMDgzYjJk
ZTEyMzUxM2E4ZDk1MDY4Yzc1MmFjMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTQ1LDcg
KzE0NSw3IEBAICQoR0VOU09VUkNFU19XRUJDT1JFKS9YUGF0aEdyYW1tYXIuY3BwOiAkKFdlYkNv
cmUpL3htbC9YUGF0aEdyYW1tYXIueQogIyBNYXRoTUwgdGFnIGFuZCBhdHRyaWJ1dGUgbmFtZXMs
IGFuZCBlbGVtZW50IGZhY3RvcnkKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvTWF0aE1MRWxlbWVu
dEZhY3RvcnkuaDogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9NYXRoTUxFbGVtZW50RmFjdG9yeS5j
cHAKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvTWF0aE1MTmFtZXMuaDogRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9NYXRoTUxOYW1lcy5jcHAKLURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvTWF0aE1MRWxl
bWVudEZhY3RvcnkuY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvTWF0aE1MTmFtZXMuY3BwOiAk
KFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvbWF0aG1sL21hdGh0YWdzLmlu
ICQoV2ViQ29yZSkvbWF0aG1sL21hdGhhdHRycy5pbgorRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9N
YXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9NYXRoTUxOYW1l
cy5jcHA6ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gJChXZWJDb3JlKS9i
aW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbSAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVz
LnBsICQoV2ViQ29yZSkvbWF0aG1sL21hdGh0YWdzLmluICQoV2ViQ29yZSkvbWF0aG1sL21hdGhh
dHRycy5pbgogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9tYXRobWwvbWF0aHRhZ3MuaW4gLS1hdHRycyAkKFdlYkNv
cmUpL21hdGhtbC9tYXRoYXR0cnMuaW4gLS1mYWN0b3J5IC0td3JhcHBlckZhY3RvcnkgLS1vdXRw
dXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAogIyAtLS0tCkBAIC0xOTAsMTMgKzE5MCwx
MyBAQCBlbmRpZiAjIEVORF9FTkFCTEVfU1ZHCiAjIFNWRyB0YWcgYW5kIGF0dHJpYnV0ZSBuYW1l
cyAobmVlZCB0byBwYXNzIGFuIGV4dHJhIGZsYWcgaWYgc3ZnIGV4cGVyaW1lbnRhbCBmZWF0dXJl
cyBhcmUgZW5hYmxlZCkKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvU1ZHTmFtZXMuY3BwOiBEZXJp
dmVkU291cmNlcy9XZWJDb3JlL1NWR0VsZW1lbnRGYWN0b3J5LmNwcAogRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6IERlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvU1ZHRWxlbWVudEZhY3RvcnkuY3BwCi1EZXJpdmVkU291cmNlcy9XZWJDb3JlL1NWR0Vs
ZW1lbnRGYWN0b3J5LmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUp
L3N2Zy9zdmd0YWdzLmluICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluCitEZXJpdmVkU291cmNl
cy9XZWJDb3JlL1NWR0VsZW1lbnRGYWN0b3J5LmNwcDogJChXZWJDb3JlKS9iaW5kaW5ncy9zY3Jp
cHRzL0hhc2hlci5wbSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBt
ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAk
KFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbgogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAt
LWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0tZXh0cmFEZWZpbmVzICIkKGZlYXR1
cmVfZGVmaW5lcykiIC0tZmFjdG9yeSAtLXdyYXBwZXJGYWN0b3J5IC0tb3V0cHV0RGlyICIkKEdF
TlNPVVJDRVNfV0VCQ09SRSkiCiAKICMgZW5kIFNWRyBGZWF0dXJlcwogCiBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL1hMaW5rTmFtZXMuaDogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTGlua05hbWVz
LmNwcAotRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTGlua05hbWVzLmNwcCA6ICQoV2ViQ29yZSkv
ZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9zdmcveGxpbmthdHRycy5pbgorRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9YTGlua05hbWVzLmNwcCA6ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cy9IYXNoZXIucG0gJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbSAk
KFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3hsaW5rYXR0cnMuaW4K
IAkkKEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1h
dHRycyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJD
RVNfV0VCQ09SRSkiCiAKIGlmIFVTRV9URVhUVVJFX01BUFBFUl9DQUlSTwpAQCAtMjkzLDcgKzI5
Myw3IEBAIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvVXNlckFnZW50U3R5bGVTaGVldHMuaDogJChX
ZWJDb3JlKS9jc3MvbWFrZS1jc3MtZmlsZS1hcnJhCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8ICAtLWRlZmluZXMgIiQoZmVhdHVyZV9kZWZpbmVz
KSIgJEAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2VyQWdlbnRTdHlsZVNoZWV0c0RhdGEuY3Bw
ICQoVVNFUl9BR0VOVF9TVFlMRV9TSEVFVFMpCiAKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvV2Vi
S2l0Rm9udEZhbWlseU5hbWVzLmNwcDogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9XZWJLaXRGb250
RmFtaWx5TmFtZXMuaAotRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9XZWJLaXRGb250RmFtaWx5TmFt
ZXMuaDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRG
b250RmFtaWx5TmFtZXMuaW4KK0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvV2ViS2l0Rm9udEZhbWls
eU5hbWVzLmg6ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gJChXZWJDb3Jl
KS9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbSAkKFdlYkNvcmUpL2RvbS9tYWtlX25h
bWVzLnBsICQoV2ViQ29yZSkvY3NzL1dlYktpdEZvbnRGYW1pbHlOYW1lcy5pbgogCSQoQU1fVl9H
RU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWZvbnRzICQoV2Vi
Q29yZSkvY3NzL1dlYktpdEZvbnRGYW1pbHlOYW1lcy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VS
Q0VTX1dFQkNPUkUpIgogCiAKQEAgLTMwMiwxNCArMzAyLDE0IEBAIERlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9ICiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxFbGVtZW50RmFjdG9yeS5jcHA6IERl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTEVsZW1lbnRGYWN0b3J5LmgKIERlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSFRNTEVsZW1lbnRGYWN0b3J5Lmg6IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRN
TE5hbWVzLmNwcAogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MTmFtZXMuY3BwOiBEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0hUTUxOYW1lcy5oCi1EZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxO
YW1lcy5oOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvaHRtbC9IVE1M
VGFnTmFtZXMuaW4gJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgorRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9IVE1MTmFtZXMuaDogJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRz
L0hhc2hlci5wbSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtICQo
V2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5p
biAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCiAJJChBTV9WX0dFTikkKFBF
UkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL2h0
bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVO
YW1lcy5pbiAtLWV4dHJhRGVmaW5lcyAiJChmZWF0dXJlX2RlZmluZXMpIiAtLWZhY3RvcnkgLS13
cmFwcGVyRmFjdG9yeSAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTX1dFQkNPUkUpIgogCiAKLURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTlNOYW1lcy5jcHAgRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9YTUxOU05hbWVzLmg6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS94
bWwveG1sbnNhdHRycy5pbgorRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOU05hbWVzLmNwcCBE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTE5TTmFtZXMuaDogJChXZWJDb3JlKS9iaW5kaW5ncy9z
Y3JpcHRzL0hhc2hlci5wbSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5n
LnBtICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS94bWwveG1sbnNhdHRy
cy5pbgogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAk
PCAtLWF0dHJzICQoV2ViQ29yZSkveG1sL3htbG5zYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VO
U09VUkNFU19XRUJDT1JFKSIKIAotRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOYW1lcy5jcHAg
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOYW1lcy5oOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25h
bWVzLnBsICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmluCitEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L1hNTE5hbWVzLmNwcCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTE5hbWVzLmg6ICQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRz
L1N0YXRpY1N0cmluZy5wbSAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkv
eG1sL3htbGF0dHJzLmluCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5n
cy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3JlKS94bWwveG1sYXR0cnMuaW4gLS1vdXRwdXRE
aXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FdmVu
dEZhY3RvcnkuY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXZlbnRIZWFkZXJzLmggRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9FdmVudEludGVyZmFjZXMuaDogJChXZWJDb3JlKS9kb20vbWFrZV9l
dmVudF9mYWN0b3J5LnBsICQoV2ViQ29yZSkvZG9tL0V2ZW50TmFtZXMuaW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggZDNlOTE4MjY5MTJlNDI2ZDQxMDQ3NmIxODA4
NDIyYzI2NzY5YmRkOS4uZTYyZTYzM2ZiYjU3ZmZkYTNiMzM5YjUzYTBjMTMzYWMwOTNhOTUwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAgLTc0Niw2ICs3NDYsOCBA
QAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ0hUTUxOYW1lcycsCiAgICAg
ICAgICAgJ2lucHV0cyc6IFsKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL0hhc2hl
ci5wbScsCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0n
LAogICAgICAgICAgICAgJy4uL2RvbS9tYWtlX25hbWVzLnBsJywKICAgICAgICAgICAgICcuLi9o
dG1sL0hUTUxUYWdOYW1lcy5pbicsCiAgICAgICAgICAgICAnLi4vaHRtbC9IVE1MQXR0cmlidXRl
TmFtZXMuaW4nLApAQCAtNzczLDYgKzc3NSw4IEBACiAgICAgICAgIHsKICAgICAgICAgICAnYWN0
aW9uX25hbWUnOiAnV2ViS2l0Rm9udEZhbWlseU5hbWVzJywKICAgICAgICAgICAnaW5wdXRzJzog
WworICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtJywKKyAgICAgICAg
ICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbScsCiAgICAgICAgICAgICAn
Li4vZG9tL21ha2VfbmFtZXMucGwnLAogICAgICAgICAgICAgJy4uL2Nzcy9XZWJLaXRGb250RmFt
aWx5TmFtZXMuaW4nLAogICAgICAgICAgIF0sCkBAIC03OTQsNiArNzk4LDggQEAKICAgICAgICAg
ewogICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdTVkdOYW1lcycsCiAgICAgICAgICAgJ2lucHV0
cyc6IFsKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbScsCisgICAg
ICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0nLAogICAgICAgICAg
ICAgJy4uL2RvbS9tYWtlX25hbWVzLnBsJywKICAgICAgICAgICAgICcuLi9zdmcvc3ZndGFncy5p
bicsCiAgICAgICAgICAgICAnLi4vc3ZnL3N2Z2F0dHJzLmluJywKQEAgLTg4Miw2ICs4ODgsOCBA
QAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ01hdGhNTE5hbWVzJywKICAg
ICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvSGFz
aGVyLnBtJywKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5w
bScsCiAgICAgICAgICAgICAnLi4vZG9tL21ha2VfbmFtZXMucGwnLAogICAgICAgICAgICAgJy4u
L21hdGhtbC9tYXRodGFncy5pbicsCiAgICAgICAgICAgICAnLi4vbWF0aG1sL21hdGhhdHRycy5p
bicsCkBAIC0xMDE2LDYgKzEwMjQsOCBAQAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9u
YW1lJzogJ1hMaW5rTmFtZXMnLAogICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAn
Li4vYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0nLAorICAgICAgICAgICAgJy4uL2JpbmRpbmdz
L3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtJywKICAgICAgICAgICAgICcuLi9kb20vbWFrZV9uYW1l
cy5wbCcsCiAgICAgICAgICAgICAnLi4vc3ZnL3hsaW5rYXR0cnMuaW4nLAogICAgICAgICAgIF0s
CkBAIC0xMDM3LDYgKzEwNDcsOCBAQAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9uYW1l
JzogJ1hNTE5TTmFtZXMnLAogICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAnLi4v
YmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0nLAorICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3Nj
cmlwdHMvU3RhdGljU3RyaW5nLnBtJywKICAgICAgICAgICAgICcuLi9kb20vbWFrZV9uYW1lcy5w
bCcsCiAgICAgICAgICAgICAnLi4veG1sL3htbG5zYXR0cnMuaW4nLAogICAgICAgICAgIF0sCkBA
IC0xMDU4LDYgKzEwNzAsOCBAQAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzog
J1hNTE5hbWVzJywKICAgICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAgJy4uL2JpbmRp
bmdzL3NjcmlwdHMvSGFzaGVyLnBtJywKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRz
L1N0YXRpY1N0cmluZy5wbScsCiAgICAgICAgICAgICAnLi4vZG9tL21ha2VfbmFtZXMucGwnLAog
ICAgICAgICAgICAgJy4uL3htbC94bWxhdHRycy5pbicsCiAgICAgICAgICAgXSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX21ha2VuYW1lcy5w
eSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX21ha2VuYW1lcy5w
eQppbmRleCBhMWE0MTBmMWVhNTBjMzE1NDJlYWQ1MWJkM2FlMDQ2ZTFjNWVjMTkzLi44MTNiODY0
MTk2MzY2NmU2MmJkZjgyNzllMGFlOGFmZDU4YTEyMjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHkKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5CkBAIC0xMzEs
NiArMTMxLDggQEAgZGVmIG1haW4oYXJncyk6CiAgICAgICAgICAgICBldmVudHNJbnB1dCA9IGlu
cHV0QWJzUG9zaXgKICAgICAgICAgZWxpZiBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdOYW1lcy5p
bicpOgogICAgICAgICAgICAgb3B0aW9ucy5hcHBlbmQoaW5wdXRBYnNQb3NpeCkKKyAgICAgICAg
ZWxpZiBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCcucG0nKToKKyAgICAgICAgICAgIGNvbnRpbnVl
CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBhc3NlcnQgRmFsc2UKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTBl
M2M4MmY2YWE3ZWY2ZTg2ZjU1YTU2MjBkNDEyNWI1NWM2NmQ4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0KQEAgLTAsMCAr
MSw4NyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisjIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyMgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKworcGFja2FnZSBTdGF0aWNTdHJpbmc7CisKK3VzZSBz
dHJpY3Q7Cit1c2UgSGFzaGVyOworCitzdWIgR2VuZXJhdGVTdHJpbmdzKCQpCit7CisgICAgbXkg
JHN0cmluZ3NSZWYgPSBzaGlmdDsKKyAgICBteSAlc3RyaW5ncyA9ICUkc3RyaW5nc1JlZjsKKwor
ICAgIG15IEByZXN1bHQgPSAoKTsKKworICAgIHdoaWxlICggbXkgKCRuYW1lLCAkdmFsdWUpID0g
ZWFjaCAlc3RyaW5ncyApIHsKKyAgICAgICAgcHVzaChAcmVzdWx0LCAic3RhdGljIGNvbnN0IExD
aGFyICR7bmFtZX1TdHJpbmc4W10gPSBcIiR7dmFsdWV9XCI7XG4iKTsKKyAgICB9CisKKyAgICBw
dXNoKEByZXN1bHQsICJcbiIpOworCisgICAgd2hpbGUgKCBteSAoJG5hbWUsICR2YWx1ZSkgPSBl
YWNoICVzdHJpbmdzICkgeworICAgICAgICBteSAkbGVuZ3RoID0gbGVuZ3RoKCR2YWx1ZSk7Cisg
ICAgICAgIG15ICRoYXNoID0gSGFzaGVyOjpHZW5lcmF0ZUhhc2hWYWx1ZSgkdmFsdWUpOworICAg
ICAgICBwdXNoKEByZXN1bHQsIDw8RU5EKTsKK3N0YXRpYyBTdHJpbmdJbXBsOjpTdGF0aWNBU0NJ
SUxpdGVyYWwgJHtuYW1lfURhdGEgPSB7CisgICAgU3RyaW5nSW1wbDo6U3RhdGljQVNDSUlMaXRl
cmFsOjpzX2luaXRpYWxSZWZDb3VudCwKKyAgICAkbGVuZ3RoLAorICAgICR7bmFtZX1TdHJpbmc4
LAorICAgIDAsCisgICAgU3RyaW5nSW1wbDo6U3RhdGljQVNDSUlMaXRlcmFsOjpzX2luaXRpYWxG
bGFncyB8ICgke2hhc2h9IDw8IFN0cmluZ0ltcGw6OlN0YXRpY0FTQ0lJTGl0ZXJhbDo6c19oYXNo
U2hpZnQpCit9OworRU5ECisgICAgfQorCisgICAgcHVzaChAcmVzdWx0LCAiXG4iKTsKKworICAg
IHdoaWxlICggbXkgKCRuYW1lLCAkdmFsdWUpID0gZWFjaCAlc3RyaW5ncyApIHsKKyAgICAgICAg
cHVzaChAcmVzdWx0LCAic3RhdGljIFN0cmluZ0ltcGwqICR7bmFtZX1JbXBsID0gcmVpbnRlcnBy
ZXRfY2FzdDxTdHJpbmdJbXBsKj4oJiR7bmFtZX1EYXRhKTtcbiIpOworICAgIH0KKworICAgIHB1
c2goQHJlc3VsdCwgIlxuIik7CisKKyAgICByZXR1cm4gam9pbiAiIiwgQHJlc3VsdDsKK30KKwor
c3ViIEdlbmVyYXRlU3RyaW5nQXNzZXJ0cygkKQoreworICAgIG15ICRzdHJpbmdzUmVmID0gc2hp
ZnQ7CisgICAgbXkgJXN0cmluZ3MgPSAlJHN0cmluZ3NSZWY7CisKKyAgICBteSBAcmVzdWx0ID0g
KCk7CisKKyAgICBwdXNoKEByZXN1bHQsICIjaWZuZGVmIE5ERUJVR1xuIik7CisKKyAgICB3aGls
ZSAoIG15ICgkbmFtZSwgJHZhbHVlKSA9IGVhY2ggJXN0cmluZ3MgKSB7CisgICAgICAgIHB1c2go
QHJlc3VsdCwgIiAgICAke25hbWV9SW1wbC0+YXNzZXJ0SGFzaElzQ29ycmVjdCgpO1xuIik7Cisg
ICAgfQorCisgICAgcHVzaChAcmVzdWx0LCAiI2VuZGlmIC8vIE5ERUJVR1xuIik7CisKKyAgICBw
dXNoKEByZXN1bHQsICJcbiIpOworCisgICAgcmV0dXJuIGpvaW4gIiIsIEByZXN1bHQ7Cit9CisK
KzE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKaW5kZXggZGU2MGJmYjA3ZTEyMjk4
ZGJhZmYxZmFjNzc4ZDRlYTVkM2JiZDU4MS4uYjlkNTFlYjQ1N2Q3ZjlhNGNhZmY2NGFhODM2OTcx
NGFkNDliODQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcApAQCAtMTcyLDE2
ICsxNzIsMTQgQEAgdW5zaWduZWQgUXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGw6OmNv
bXB1dGVIYXNoKCkgY29uc3QKICAgICByZXR1cm4gaGFzaENvbXBvbmVudHMoY29tcG9uZW50cyk7
CiB9CiAKLXZvaWQgY3JlYXRlUXVhbGlmaWVkTmFtZSh2b2lkKiB0YXJnZXRBZGRyZXNzLCBjb25z
dCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBuYW1lTGVuZ3RoLCBjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWVOYW1lc3BhY2UpCit2b2lkIGNyZWF0ZVF1YWxpZmllZE5hbWUodm9pZCogdGFyZ2V0QWRkcmVz
cywgU3RyaW5nSW1wbCogbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lTmFtZXNwYWNlKQog
ewotICAgIEF0b21pY1N0cmluZyBhdG9taWNOYW1lKG5hbWUsIG5hbWVMZW5ndGgsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIG5ldyAocmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4odGFyZ2V0QWRkcmVzcykpIFF1YWxpZmllZE5hbWUobnVsbEF0b20sIGF0b21pY05hbWUs
IG5hbWVOYW1lc3BhY2UpOworICAgIG5ldyAocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odGFyZ2V0
QWRkcmVzcykpIFF1YWxpZmllZE5hbWUobnVsbEF0b20sIEF0b21pY1N0cmluZyhuYW1lKSwgbmFt
ZU5hbWVzcGFjZSk7CiB9CiAKLXZvaWQgY3JlYXRlUXVhbGlmaWVkTmFtZSh2b2lkKiB0YXJnZXRB
ZGRyZXNzLCBjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBuYW1lTGVuZ3RoKQordm9pZCBjcmVh
dGVRdWFsaWZpZWROYW1lKHZvaWQqIHRhcmdldEFkZHJlc3MsIFN0cmluZ0ltcGwqIG5hbWUpCiB7
Ci0gICAgQXRvbWljU3RyaW5nIGF0b21pY05hbWUobmFtZSwgbmFtZUxlbmd0aCwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgbmV3IChyZWludGVycHJldF9jYXN0PHZv
aWQqPih0YXJnZXRBZGRyZXNzKSkgUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgYXRvbWljTmFtZSwg
bnVsbEF0b20pOworICAgIG5ldyAocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odGFyZ2V0QWRkcmVz
cykpIFF1YWxpZmllZE5hbWUobnVsbEF0b20sIEF0b21pY1N0cmluZyhuYW1lKSwgbnVsbEF0b20p
OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaAppbmRleCBjM2NkMjlmZGVjYWJj
YWQ3MjAzNzNjNTc1MGE5NDg2ZDNmOWYxMDJkLi4zODY3MzE1NGE2N2YxNjY4NGQzYjQ0ZjVkNTk5
ZTY5N2RlODZkOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFt
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmgKQEAgLTE0NCw4ICsx
NDQsOCBAQCBzdHJ1Y3QgUXVhbGlmaWVkTmFtZUhhc2ggewogICAgIHN0YXRpYyBjb25zdCBib29s
IHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CiB9OwogCi12b2lkIGNyZWF0
ZVF1YWxpZmllZE5hbWUodm9pZCogdGFyZ2V0QWRkcmVzcywgY29uc3QgY2hhciogbmFtZSwgdW5z
aWduZWQgbmFtZUxlbmd0aCk7Ci12b2lkIGNyZWF0ZVF1YWxpZmllZE5hbWUodm9pZCogdGFyZ2V0
QWRkcmVzcywgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbmFtZUxlbmd0aCwgY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lTmFtZXNwYWNlKTsKK3ZvaWQgY3JlYXRlUXVhbGlmaWVkTmFtZSh2b2lk
KiB0YXJnZXRBZGRyZXNzLCBTdHJpbmdJbXBsKiBuYW1lKTsKK3ZvaWQgY3JlYXRlUXVhbGlmaWVk
TmFtZSh2b2lkKiB0YXJnZXRBZGRyZXNzLCBTdHJpbmdJbXBsKiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWVOYW1lc3BhY2UpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKaW5k
ZXggYjkxMDNlNTRmZTE3N2ZmM2MxNTg4YzIxM2QwYTMxOTdmZTM4ZjAwZi4uMDE3MDI3NTI3ZjNi
MjdmNWUxNjIxODgwYjIxNWNmZWFmNmYzYTcyNyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL21ha2VfbmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwK
QEAgLTMxLDYgKzMxLDcgQEAKIAogdXNlIHN0cmljdDsKIAordXNlIFN0YXRpY1N0cmluZzsKIHVz
ZSBDb25maWc7CiB1c2UgR2V0b3B0OjpMb25nOwogdXNlIEZpbGU6OlBhdGg7CkBAIC01NCw2ICs1
NSw3IEBAIG15ICVlbmFibGVkVGFncyA9ICgpOwogbXkgJWVuYWJsZWRBdHRycyA9ICgpOwogbXkg
JWFsbFRhZ3MgPSAoKTsKIG15ICVhbGxBdHRycyA9ICgpOworbXkgJWFsbFN0cmluZ3MgPSAoKTsK
IG15ICVwYXJhbWV0ZXJzID0gKCk7CiBteSAkZXh0cmFEZWZpbmVzID0gMDsKIG15ICRpbml0RGVm
YXVsdHMgPSAxOwpAQCAtMTE1LDE0ICsxMTcsMTkgQEAgaWYgKGxlbmd0aCgkZm9udE5hbWVzSW4p
KSB7CiAgICAgcHJpbnRMaWNlbnNlSGVhZGVyKCRGKTsKICAgICBwcmludENwcEhlYWQoJEYsICJD
U1MiLCAkZmFtaWx5TmFtZXNGaWxlQmFzZSwgIldURiIpOwogCisgICAgcHJpbnQgRiBTdGF0aWNT
dHJpbmc6OkdlbmVyYXRlU3RyaW5ncyhcJXBhcmFtZXRlcnMpOworCiAgICAgd2hpbGUgKCBteSAo
JG5hbWUsICRpZGVudGlmaWVyKSA9IGVhY2ggJXBhcmFtZXRlcnMgKSB7CiAgICAgICAgIHByaW50
IEYgIkRFRklORV9HTE9CQUwoQXRvbWljU3RyaW5nLCAkbmFtZSlcbiI7CiAgICAgfQogCiAgICAg
cHJpbnRJbml0KCRGLCAwKTsKIAorICAgIHByaW50IEYgIlxuIjsKKyAgICBwcmludCBGIFN0YXRp
Y1N0cmluZzo6R2VuZXJhdGVTdHJpbmdBc3NlcnRzKFwlcGFyYW1ldGVycyk7CisKICAgICB3aGls
ZSAoIG15ICgkbmFtZSwgJGlkZW50aWZpZXIpID0gZWFjaCAlcGFyYW1ldGVycyApIHsKLSAgICAg
ICAgcHJpbnQgRiAiICAgIG5ldyAoKHZvaWQqKSYkbmFtZSkgQXRvbWljU3RyaW5nKFwiJGlkZW50
aWZpZXJcIik7XG4iOworICAgICAgICBwcmludCBGICIgICAgbmV3ICgodm9pZCopJiRuYW1lKSBB
dG9taWNTdHJpbmcoJHtuYW1lfUltcGwpO1xuIjsKICAgICB9CiAKICAgICBwcmludCBGICJ9XG59
XG59XG4iOwpAQCAtMTM1LDExICsxNDIsMTMgQEAgZGllICJZb3UgbXVzdCBzcGVjaWZ5IGF0IGxl
YXN0IG9uZSBvZiAtLXRhZ3MgPGZpbGU+IG9yIC0tYXR0cnMgPGZpbGU+IiB1bmxlc3MgKGwKIGlm
IChsZW5ndGgoJHRhZ3NGaWxlKSkgewogICAgICVhbGxUYWdzID0gJXtyZWFkVGFncygkdGFnc0Zp
bGUsIDApfTsKICAgICAlZW5hYmxlZFRhZ3MgPSAle3JlYWRUYWdzKCR0YWdzRmlsZSwgMSl9Owor
ICAgIG5hbWVzVG9TdHJpbmdzKFwlYWxsVGFncywgXCVhbGxTdHJpbmdzKTsKIH0KIAogaWYgKGxl
bmd0aCgkYXR0cnNGaWxlKSkgewogICAgICVhbGxBdHRycyA9ICV7cmVhZEF0dHJzKCRhdHRyc0Zp
bGUsIDApfTsKICAgICAlZW5hYmxlZEF0dHJzID0gJXtyZWFkQXR0cnMoJGF0dHJzRmlsZSwgMSl9
OworICAgIG5hbWVzVG9TdHJpbmdzKFwlYWxsQXR0cnMsIFwlYWxsU3RyaW5ncyk7CiB9CiAKIGRp
ZSAiWW91IG11c3Qgc3BlY2lmeSBhIG5hbWVzcGFjZSAoZS5nLiBTVkcpIGZvciA8bmFtZXNwYWNl
Pk5hbWVzLmgiIHVubGVzcyAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9OwpAQCAtMjEyLDYgKzIyMSwz
MSBAQCBzdWIgZGVmYXVsdEludGVyZmFjZU5hbWUKIAogIyMjIFBhcnNpbmcgaGFuZGxlcnMKIAor
c3ViIHZhbHVlRm9yTmFtZQoreworICAgIG15ICRuYW1lID0gc2hpZnQ7CisgICAgbXkgJHZhbHVl
ID0gJGV4dGVuc2lvbkF0dHJzeyRuYW1lfTsKKworICAgIGlmICghJHZhbHVlKSB7CisgICAgICAg
ICR2YWx1ZSA9ICRuYW1lOworICAgICAgICAkdmFsdWUgPX4gcy9fLy0vZzsKKyAgICB9CisKKyAg
ICByZXR1cm4gJHZhbHVlOworfQorCitzdWIgbmFtZXNUb1N0cmluZ3MKK3sKKyAgICBteSAkbmFt
ZXNSZWYgPSBzaGlmdDsKKyAgICBteSAkc3RyaW5nc1JlZiA9IHNoaWZ0OworCisgICAgbXkgJW5h
bWVzID0gJSRuYW1lc1JlZjsKKworICAgIGZvciBteSAkbmFtZSAoa2V5cyAlbmFtZXMpIHsKKyAg
ICAgICAgJHN0cmluZ3NSZWYtPnskbmFtZX0gPSB2YWx1ZUZvck5hbWUoJG5hbWUpOworICAgIH0K
K30KKwogc3ViIHRhZ3NIYW5kbGVyCiB7CiAgICAgbXkgKCR0YWcsICRwcm9wZXJ0eSwgJHZhbHVl
KSA9IEBfOwpAQCAtNjM2LDYgKzY3MCw4IEBAIHN1YiBwcmludE5hbWVzQ3BwRmlsZQogCiAgICAg
cHJpbnQgRiAiREVGSU5FX0dMT0JBTChBdG9taWNTdHJpbmcsICR7bG93ZXJOYW1lc3BhY2V9TmFt
ZXNwYWNlVVJJKVxuXG4iOwogCisgICAgcHJpbnQgRiBTdGF0aWNTdHJpbmc6OkdlbmVyYXRlU3Ry
aW5ncyhcJWFsbFN0cmluZ3MpOworCiAgICAgaWYgKGtleXMgJWFsbFRhZ3MpIHsKICAgICAgICAg
cHJpbnQgRiAiLy8gVGFnc1xuIjsKICAgICAgICAgZm9yIG15ICRuYW1lIChzb3J0IGtleXMgJWFs
bFRhZ3MpIHsKQEAgLTY3Miw3ICs3MDgsMTAgQEAgc3ViIHByaW50TmFtZXNDcHBGaWxlCiAgICAg
cHJpbnQoRiAiICAgIEF0b21pY1N0cmluZyAke2xvd2VyTmFtZXNwYWNlfU5TKFwiJHBhcmFtZXRl
cnN7bmFtZXNwYWNlVVJJfVwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTtc
blxuIik7CiAKICAgICBwcmludChGICIgICAgLy8gTmFtZXNwYWNlXG4iKTsKLSAgICBwcmludChG
ICIgICAgbmV3ICgodm9pZCopJiR7bG93ZXJOYW1lc3BhY2V9TmFtZXNwYWNlVVJJKSBBdG9taWNT
dHJpbmcoJHtsb3dlck5hbWVzcGFjZX1OUyk7XG5cbiIpOworICAgIHByaW50KEYgIiAgICBuZXcg
KCh2b2lkKikmJHtsb3dlck5hbWVzcGFjZX1OYW1lc3BhY2VVUkkpIEF0b21pY1N0cmluZygke2xv
d2VyTmFtZXNwYWNlfU5TKTtcbiIpOworICAgIHByaW50KEYgIlxuIik7CisgICAgcHJpbnQgRiBT
dGF0aWNTdHJpbmc6OkdlbmVyYXRlU3RyaW5nQXNzZXJ0cyhcJWFsbFN0cmluZ3MpOworCiAgICAg
aWYgKGtleXMgJWFsbFRhZ3MpIHsKICAgICAgICAgbXkgJHRhZ3NOYW1lc3BhY2UgPSAkcGFyYW1l
dGVyc3t0YWdzTnVsbE5hbWVzcGFjZX0gPyAibnVsbEF0b20iIDogIiR7bG93ZXJOYW1lc3BhY2V9
TlMiOwogICAgICAgICBwcmludERlZmluaXRpb25zKCRGLCBcJWFsbFRhZ3MsICJ0YWdzIiwgJHRh
Z3NOYW1lc3BhY2UpOwpAQCAtNzc0LDE3ICs4MTMsMTEgQEAgc3ViIHByaW50RGVmaW5pdGlvbnMK
ICAgICBwcmludCBGICIgICAgLy8gIiAuIHVjZmlyc3QoJHR5cGUpIC4gIlxuIjsKIAogICAgIGZv
ciBteSAkbmFtZSAoc29ydCBrZXlzICUkbmFtZXNSZWYpIHsKLSAgICAgICAgbXkgJHJlYWxOYW1l
ID0gJGV4dGVuc2lvbkF0dHJzeyRuYW1lfTsKLSAgICAgICAgaWYgKCEkcmVhbE5hbWUpIHsKLSAg
ICAgICAgICAgICRyZWFsTmFtZSA9ICRuYW1lOwotICAgICAgICAgICAgJHJlYWxOYW1lID1+IHMv
Xy8tL2c7Ci0gICAgICAgIH0KLQogICAgICAgICAjIFRvIGdlbmVyYXRlIGxlc3MgY29kZSBpbiBp
bml0KCksIHRoZSBjb21tb24gY2FzZSBvZiBudWxsQXRvbSBmb3IgdGhlIG5hbWVzcGFjZSwgd2Ug
Y2FsbCBjcmVhdGVRdWFsaWZpZWROYW1lKCkgd2l0aG91dCBwYXNzaW5nICRuYW1lc3BhY2VVUkku
CiAgICAgICAgIGlmICgkbmFtZXNwYWNlVVJJIGVxICJudWxsQXRvbSIpIHsKLSAgICAgICAgICAg
IHByaW50IEYgIiAgICBjcmVhdGVRdWFsaWZpZWROYW1lKCh2b2lkKikmJG5hbWUiLCIke3Nob3J0
Q2FtZWxUeXBlfSwgXCIkcmVhbE5hbWVcIiwgIiwgbGVuZ3RoICRyZWFsTmFtZSAsIik7XG4iOwor
ICAgICAgICAgICAgcHJpbnQgRiAiICAgIGNyZWF0ZVF1YWxpZmllZE5hbWUoKHZvaWQqKSYkbmFt
ZSIsIiR7c2hvcnRDYW1lbFR5cGV9LCAke25hbWV9SW1wbCk7XG4iOwogICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgcHJpbnQgRiAiICAgIGNyZWF0ZVF1YWxpZmllZE5hbWUoKHZvaWQqKSYk
bmFtZSIsIiR7c2hvcnRDYW1lbFR5cGV9LCBcIiRyZWFsTmFtZVwiLCAiLCBsZW5ndGggJHJlYWxO
YW1lICwiLCAkbmFtZXNwYWNlVVJJKTtcbiI7CisgICAgICAgICAgICBwcmludCBGICIgICAgY3Jl
YXRlUXVhbGlmaWVkTmFtZSgodm9pZCopJiRuYW1lIiwiJHtzaG9ydENhbWVsVHlwZX0sICR7bmFt
ZX1JbXBsLCAkbmFtZXNwYWNlVVJJKTtcbiI7CiAgICAgICAgIH0KICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194134</attachid>
            <date>2013-03-20 15:30:21 -0700</date>
            <delta_ts>2013-03-21 01:55:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112831-20130320152610.patch</filename>
            <type>text/plain</type>
            <size>25984</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIyMDNmZjgyNWJmYjQ1YjcwZmYzMjRj
NzY3ZTg2NTE4ZWZlZjIzMTAuLjBmMzQ2ZjE5NmQ0ZjZlM2Q2ZDg5NGQwMDYxNjVmM2E1NDVmYTJk
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDMtMjAgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBIVE1MTmFtZXMgc2hvdWxkIGNvbnN0cnVjdCBzdHJpbmdz
IGF0IGNvbXBpbGUgdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEyODMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAgIChTdHJpbmdJbXBsKToKKyAg
ICAgICAgKFN0YXRpY0FTQ0lJTGl0ZXJhbCk6CisgICAgICAgICAgICAtIFRoaXMgc3RydWN0IGxl
dHMgdXMgY29uc3RydWN0IFN0cmluZ0ltcGwgb2JqZWN0cyBhdCBjb21waWxlIHRpbWUuCisgICAg
ICAgIChXVEY6OlN0cmluZ0ltcGw6OmFzc2VydFZhbGlkSGFzaCk6CisgICAgICAgICAgICAtIFRo
aXMgZnVuY3Rpb24gbGV0cyB1cyBzYW5pdHkgY2hlY2sgU3RyaW5nSW1wbCBvYmplY3RzIGNyZWF0
ZWQgZnJvbSBTdGF0aWNEYXRhLgorCiAyMDEzLTAzLTIwICBKdW5nSmlrIExlZSAgPGp1bmdqaWsu
bGVlQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIERpc2FibGUgUkVRVUVTVF9BTklNQVRJ
T05fRlJBTUVfVElNRVIgdG8gcmVuZGVyIGEgbmV3IGFuaW1hdGlvbiBmcmFtZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAyZGExNWVkMmRmZGZkOWVjZGNjZjk1NzYzOGUyZWFhZmU5MDc0YjAwLi4wNGM1NWE3YjJm
NDg0OTIwMjA2NzMzN2YyMmY2YTU3MDJlN2MzMmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTMtMDMtMjAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBIVE1MTmFtZXMgc2hvdWxkIGNvbnN0cnVjdCBzdHJpbmdzIGF0IGNvbXBpbGUgdGltZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVGhpcyBwYXRjaCB0ZWFj
aGVzIG1ha2VfbmFtZXMgaG93IHRvIGNvbnN0cnVjdCBzdHJpbmdzIGF0IGNvbXBpbGUgdGltZSwK
KyAgICAgICAgZWxpbWluYXRpbmcgYSBsYXJnZSBudW1iZXIgb2Ygc3RhcnR1cCBtYWxsb2NzLgor
CisgICAgICAgICogV2ViQ29yZS5neXAvV2ViQ29yZS5neXA6CisgICAgICAgICogV2ViQ29yZS5n
eXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5OgorICAgICAgICAgICAgLSBUZWFjaCB0aGUg
Q2hyb21pdW0gYnVpbGQgaG93IHRvIGRlYWwgd2l0aCBQZXJsIG1vZHVsZXMuCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG06IEFkZGVkLgorICAgICAgICAgICAgLSBB
IFBlcmwgbW9kdWxlIGZvciBjb25zdHJ1Y3Rpbmcgc3RhdGljIHN0cmluZ3MuCisgICAgICAgIChH
ZW5lcmF0ZVN0cmluZ3MpOgorICAgICAgICAoR2VuZXJhdGVWYWxpZGF0ZVN0cmluZ3MpOgorICAg
ICAgICAqIGRvbS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVF1
YWxpZmllZE5hbWUpOgorICAgICAgICAgICAgLSBjcmVhdGVRdWFsaWZpZWROYW1lIG5vdyB0YWtl
cyBhbiBhbHJlYWR5LWNvbnN0cnVjdGVkIFN0cmluZ0ltcGwKKyAgICAgICAgICAgICAgb2JqZWN0
LgorICAgICAgICAqIGRvbS9RdWFsaWZpZWROYW1lLmg6CisgICAgICAgICogZG9tL21ha2VfbmFt
ZXMucGw6CisgICAgICAgICh2YWx1ZUZvck5hbWUpOgorICAgICAgICAobmFtZXNUb1N0cmluZ3Mp
OgorICAgICAgICAocHJpbnROYW1lc0NwcEZpbGUpOgorICAgICAgICAocHJpbnREZWZpbml0aW9u
cyk6CisgICAgICAgICAgICAtIFRlYWNoIG1ha2VfbmFtZXMgaG93IHRvIHVzZSBTdGF0aWNTdHJp
bmcucG0uCisKIDIwMTMtMDMtMjAgIE1pY2hhZWwgUHJ1ZXR0ICA8bWljaGFlbEA2OGsub3JnPgog
CiAgICAgICAgIFtWOF0gU2ltcGxpZnkgaW1wbGVtZW50YXRpb24gb2YgRW5mb3JjZVJhbmdlIGNv
bnZlcnNpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IGYxZWI2NzE3OGIyNWNkOWQ4
MWQxZjIyMGVkMzgyY2Y2M2JhOTkxOTMuLjMzM2E1NWFlOTVlZGU3NDAxM2ZlYzM4Y2I2YzcwYzgy
NDVjMTcwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC03NzIsNiArNzcyLDMyIEBA
IHByaXZhdGU6CiAjaWZkZWYgU1RSSU5HX1NUQVRTCiAgICAgV1RGX0VYUE9SVERBVEEgc3RhdGlj
IFN0cmluZ1N0YXRzIG1fc3RyaW5nU3RhdHM7CiAjZW5kaWYKKworcHVibGljOgorICAgIHN0cnVj
dCBTdGF0aWNBU0NJSUxpdGVyYWwgeworICAgICAgICAvLyBUaGVzZSBtZW1iZXIgdmFyaWFibGVz
IG11c3QgbWF0Y2ggdGhlIGxheW91dCBvZiBTdHJpbmdJbXBsLgorICAgICAgICB1bnNpZ25lZCBt
X3JlZkNvdW50OworICAgICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKKyAgICAgICAgY29uc3QgTENo
YXIqIG1fZGF0YTg7CisgICAgICAgIHZvaWQqIG1fYnVmZmVyOworICAgICAgICB1bnNpZ25lZCBt
X2hhc2hBbmRGbGFnczsKKworICAgICAgICAvLyBUaGVzZSB2YWx1ZXMgbWltaWMgQ29uc3RydWN0
RnJvbUxpdGVyYWwuCisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX2luaXRpYWxSZWZD
b3VudCA9IHNfcmVmQ291bnRJbmNyZW1lbnQ7CisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBzX2luaXRpYWxGbGFncyA9IHNfaGFzaEZsYWc4Qml0QnVmZmVyIHwgQnVmZmVySW50ZXJuYWwg
fCBzX2hhc2hGbGFnSGFzVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyOworICAgICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgc19oYXNoU2hpZnQgPSBzX2ZsYWdDb3VudDsKKyAgICB9OworCisjaWZu
ZGVmIE5ERUJVRworICAgIHZvaWQgYXNzZXJ0SGFzaElzQ29ycmVjdCgpCisgICAgeworICAgICAg
ICBBU1NFUlQoaGFzSGFzaCgpKTsKKyAgICAgICAgQVNTRVJUKGV4aXN0aW5nSGFzaCgpID09IFN0
cmluZ0hhc2hlcjo6Y29tcHV0ZUhhc2hBbmRNYXNrVG9wOEJpdHMoY2hhcmFjdGVyczgoKSwgbGVu
Z3RoKCkpKTsKKyAgICB9CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICAvLyBUaGVzZSBtZW1iZXIg
dmFyaWFibGVzIG11c3QgbWF0Y2ggdGhlIGxheW91dCBvZiBTdGF0aWNBU0NJSUxpdGVyYWwuCiAg
ICAgdW5zaWduZWQgbV9yZWZDb3VudDsKICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKICAgICB1bmlv
biB7CkBAIC03ODksNiArODE1LDggQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIHVuc2lnbmVkIG1f
aGFzaEFuZEZsYWdzOwogfTsKIAorQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFN0cmluZ0ltcGwpID09
IHNpemVvZihTdHJpbmdJbXBsOjpTdGF0aWNBU0NJSUxpdGVyYWwpLCBTdHJpbmdJbXBsX3Nob3Vs
ZF9tYXRjaF9pdHNfU3RhdGljQVNDSUlMaXRlcmFsKTsKKwogdGVtcGxhdGUgPD4KIEFMV0FZU19J
TkxJTkUgY29uc3QgTENoYXIqIFN0cmluZ0ltcGw6OmdldENoYXJhY3RlcnM8TENoYXI+KCkgY29u
c3QgeyByZXR1cm4gY2hhcmFjdGVyczgoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCA3NTliNGYwOGRmMjBlNTA0ODdmODVkNzI2NDJmMjNhY2JlMTRiMjliLi5mMDQyZGM0
MjE4NTRiYzVhNjhiMjliYmIwYzJjYThkNTQxNTMxOTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTgyNiw3ICs4MjYsNyBAQCBVc2VyQWdlbnRTdHlsZVNoZWV0cy5oIDogY3Nz
L21ha2UtY3NzLWZpbGUtYXJyYXlzLnBsIGJpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2VzcwogCiAj
IC0tLS0tLS0tCiAKLVdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAgV2ViS2l0Rm9udEZhbWlseU5h
bWVzLmggOiBkb20vbWFrZV9uYW1lcy5wbCBjc3MvV2ViS2l0Rm9udEZhbWlseU5hbWVzLmluCitX
ZWJLaXRGb250RmFtaWx5TmFtZXMuY3BwIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5oIDogZG9tL21h
a2VfbmFtZXMucGwgYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9T
dGF0aWNTdHJpbmcucG0gY3NzL1dlYktpdEZvbnRGYW1pbHlOYW1lcy5pbgogCXBlcmwgLUkgJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tZm9udHMgJChXZWJDb3JlKS9jc3MvV2ViS2l0
Rm9udEZhbWlseU5hbWVzLmluCiAKICMgSFRNTCB0YWcgYW5kIGF0dHJpYnV0ZSBuYW1lcwpAQCAt
ODczLDIyICs4NzMsMjIgQEAgZW5kaWYKIAogaWZkZWYgSFRNTF9GTEFHUwogCi1IVE1MRWxlbWVu
dEZhY3RvcnkuY3BwIEhUTUxOYW1lcy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCBodG1sL0hUTUxU
YWdOYW1lcy5pbiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgorSFRNTEVsZW1lbnRGYWN0b3J5
LmNwcCBIVE1MTmFtZXMuY3BwIDogZG9tL21ha2VfbmFtZXMucGwgYmluZGluZ3Mvc2NyaXB0cy9I
YXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gaHRtbC9IVE1MVGFnTmFt
ZXMuaW4gaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KIAlwZXJsIC1JICQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAt
LWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gLS1mYWN0b3J5IC0t
d3JhcHBlckZhY3RvcnkgLS1leHRyYURlZmluZXMgIiQoSFRNTF9GTEFHUykiCiAKIGVsc2UKIAot
SFRNTEVsZW1lbnRGYWN0b3J5LmNwcCBIVE1MTmFtZXMuY3BwIDogZG9tL21ha2VfbmFtZXMucGwg
aHRtbC9IVE1MVGFnTmFtZXMuaW4gaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KK0hUTUxFbGVt
ZW50RmFjdG9yeS5jcHAgSFRNTE5hbWVzLmNwcCA6IGRvbS9tYWtlX25hbWVzLnBsIGJpbmRpbmdz
L3NjcmlwdHMvSGFzaGVyLnBtIGJpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtIGh0bWwv
SFRNTFRhZ05hbWVzLmluIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCiAJcGVybCAtSSAkKFdl
YkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFn
TmFtZXMuaW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0t
ZmFjdG9yeSAtLXdyYXBwZXJGYWN0b3J5CiAKIGVuZGlmCiAKIEpTSFRNTEVsZW1lbnRXcmFwcGVy
RmFjdG9yeS5jcHAgOiBIVE1MTmFtZXMuY3BwCiAKLVhNTE5TTmFtZXMuY3BwIDogZG9tL21ha2Vf
bmFtZXMucGwgeG1sL3htbG5zYXR0cnMuaW4KK1hNTE5TTmFtZXMuY3BwIDogZG9tL21ha2VfbmFt
ZXMucGwgYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNT
dHJpbmcucG0geG1sL3htbG5zYXR0cnMuaW4KIAlwZXJsIC1JICQoV2ViQ29yZSkvYmluZGluZ3Mv
c2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkveG1sL3htbG5zYXR0cnMuaW4KIAotWE1MTmFt
ZXMuY3BwIDogZG9tL21ha2VfbmFtZXMucGwgeG1sL3htbGF0dHJzLmluCitYTUxOYW1lcy5jcHAg
OiBkb20vbWFrZV9uYW1lcy5wbCBiaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbSBiaW5kaW5ncy9z
Y3JpcHRzL1N0YXRpY1N0cmluZy5wbSB4bWwveG1sYXR0cnMuaW4KIAlwZXJsIC1JICQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmlu
CiAKICMgLS0tLS0tLS0KQEAgLTkwNywxOCArOTA3LDE4IEBAIGVuZGlmCiAKIGlmZGVmIFNWR19G
TEFHUwogCi1TVkdFbGVtZW50RmFjdG9yeS5jcHAgU1ZHTmFtZXMuY3BwIDogZG9tL21ha2VfbmFt
ZXMucGwgc3ZnL3N2Z3RhZ3MuaW4gc3ZnL3N2Z2F0dHJzLmluCitTVkdFbGVtZW50RmFjdG9yeS5j
cHAgU1ZHTmFtZXMuY3BwIDogZG9tL21ha2VfbmFtZXMucGwgYmluZGluZ3Mvc2NyaXB0cy9IYXNo
ZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gc3ZnL3N2Z3RhZ3MuaW4gc3Zn
L3N2Z2F0dHJzLmluCiAJcGVybCAtSSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10
YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy9zdmdh
dHRycy5pbiAtLWV4dHJhRGVmaW5lcyAiJChTVkdfRkxBR1MpIiAtLWZhY3RvcnkgLS13cmFwcGVy
RmFjdG9yeQogZWxzZQogCi1TVkdFbGVtZW50RmFjdG9yeS5jcHAgU1ZHTmFtZXMuY3BwIDogZG9t
L21ha2VfbmFtZXMucGwgc3ZnL3N2Z3RhZ3MuaW4gc3ZnL3N2Z2F0dHJzLmluCitTVkdFbGVtZW50
RmFjdG9yeS5jcHAgU1ZHTmFtZXMuY3BwIDogZG9tL21ha2VfbmFtZXMucGwgYmluZGluZ3Mvc2Ny
aXB0cy9IYXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gc3ZnL3N2Z3Rh
Z3MuaW4gc3ZnL3N2Z2F0dHJzLmluCiAJcGVybCAtSSAkKFdlYkNvcmUpL2JpbmRpbmdzL3Njcmlw
dHMgJDwgLS10YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUp
L3N2Zy9zdmdhdHRycy5pbiAtLWZhY3RvcnkgLS13cmFwcGVyRmFjdG9yeQogCiBlbmRpZgogCiBK
U1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgOiBTVkdOYW1lcy5jcHAKIAotWExpbmtOYW1l
cy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCBzdmcveGxpbmthdHRycy5pbgorWExpbmtOYW1lcy5j
cHAgOiBkb20vbWFrZV9uYW1lcy5wbCBiaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbSBiaW5kaW5n
cy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbSBzdmcveGxpbmthdHRycy5pbgogCXBlcmwgLUkgJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3JlKS9zdmcveGxpbmth
dHRycy5pbgogCiAjIC0tLS0tLS0tCkBAIC05MzgsNyArOTM4LDcgQEAgRXhjZXB0aW9uQ29kZURl
c2NyaXB0aW9uLmNwcCBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24uaCBFeGNlcHRpb25IZWFkZXJz
LmggRXhjZXAKIAogIyBNYXRoTUwgdGFnIGFuZCBhdHRyaWJ1dGUgbmFtZXMsIGFuZCBlbGVtZW50
IGZhY3RvcnkKIAotTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwIE1hdGhNTE5hbWVzLmNwcCA6IGRv
bS9tYWtlX25hbWVzLnBsIG1hdGhtbC9tYXRodGFncy5pbiBtYXRobWwvbWF0aGF0dHJzLmluCitN
YXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgTWF0aE1MTmFtZXMuY3BwIDogZG9tL21ha2VfbmFtZXMu
cGwgYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJp
bmcucG0gbWF0aG1sL21hdGh0YWdzLmluIG1hdGhtbC9tYXRoYXR0cnMuaW4KIAlwZXJsIC1JICQo
V2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9tYXRobWwvbWF0
aHRhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUpL21hdGhtbC9tYXRoYXR0cnMuaW4gLS1mYWN0b3J5
IC0td3JhcHBlckZhY3RvcnkKIAogIyAtLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAw
YmE1NTdkNTg0ZTdhMzQ3YzA4NDBiOTIxOTA4MDI2MTg1MGI3NWFlLi4zNTJjZGNhYmJjZTMxYjc0
N2ZhMDcyYmNhMTNkOGY3ODYyODAwZjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTQ1LDcg
KzE0NSw3IEBAICQoR0VOU09VUkNFU19XRUJDT1JFKS9YUGF0aEdyYW1tYXIuY3BwOiAkKFdlYkNv
cmUpL3htbC9YUGF0aEdyYW1tYXIueQogIyBNYXRoTUwgdGFnIGFuZCBhdHRyaWJ1dGUgbmFtZXMs
IGFuZCBlbGVtZW50IGZhY3RvcnkKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvTWF0aE1MRWxlbWVu
dEZhY3RvcnkuaDogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9NYXRoTUxFbGVtZW50RmFjdG9yeS5j
cHAKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvTWF0aE1MTmFtZXMuaDogRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9NYXRoTUxOYW1lcy5jcHAKLURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvTWF0aE1MRWxl
bWVudEZhY3RvcnkuY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvTWF0aE1MTmFtZXMuY3BwOiAk
KFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvbWF0aG1sL21hdGh0YWdzLmlu
ICQoV2ViQ29yZSkvbWF0aG1sL21hdGhhdHRycy5pbgorRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9N
YXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9NYXRoTUxOYW1l
cy5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9iaW5kaW5ncy9z
Y3JpcHRzL0hhc2hlci5wbSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5n
LnBtICQoV2ViQ29yZSkvbWF0aG1sL21hdGh0YWdzLmluICQoV2ViQ29yZSkvbWF0aG1sL21hdGhh
dHRycy5pbgogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9tYXRobWwvbWF0aHRhZ3MuaW4gLS1hdHRycyAkKFdlYkNv
cmUpL21hdGhtbC9tYXRoYXR0cnMuaW4gLS1mYWN0b3J5IC0td3JhcHBlckZhY3RvcnkgLS1vdXRw
dXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAogIyAtLS0tCkBAIC0xOTAsMTMgKzE5MCwx
MyBAQCBlbmRpZiAjIEVORF9FTkFCTEVfU1ZHCiAjIFNWRyB0YWcgYW5kIGF0dHJpYnV0ZSBuYW1l
cyAobmVlZCB0byBwYXNzIGFuIGV4dHJhIGZsYWcgaWYgc3ZnIGV4cGVyaW1lbnRhbCBmZWF0dXJl
cyBhcmUgZW5hYmxlZCkKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvU1ZHTmFtZXMuY3BwOiBEZXJp
dmVkU291cmNlcy9XZWJDb3JlL1NWR0VsZW1lbnRGYWN0b3J5LmNwcAogRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6IERlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvU1ZHRWxlbWVudEZhY3RvcnkuY3BwCi1EZXJpdmVkU291cmNlcy9XZWJDb3JlL1NWR0Vs
ZW1lbnRGYWN0b3J5LmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUp
L3N2Zy9zdmd0YWdzLmluICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluCitEZXJpdmVkU291cmNl
cy9XZWJDb3JlL1NWR0VsZW1lbnRGYWN0b3J5LmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1l
cy5wbCAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtICQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAk
KFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbgogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAt
LWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0tZXh0cmFEZWZpbmVzICIkKGZlYXR1
cmVfZGVmaW5lcykiIC0tZmFjdG9yeSAtLXdyYXBwZXJGYWN0b3J5IC0tb3V0cHV0RGlyICIkKEdF
TlNPVVJDRVNfV0VCQ09SRSkiCiAKICMgZW5kIFNWRyBGZWF0dXJlcwogCiBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL1hMaW5rTmFtZXMuaDogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTGlua05hbWVz
LmNwcAotRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTGlua05hbWVzLmNwcCA6ICQoV2ViQ29yZSkv
ZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9zdmcveGxpbmthdHRycy5pbgorRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9YTGlua05hbWVzLmNwcCA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMu
cGwgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbSAkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtICQoV2ViQ29yZSkvc3ZnL3hsaW5rYXR0cnMuaW4K
IAkkKEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1h
dHRycyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJD
RVNfV0VCQ09SRSkiCiAKIGlmIFVTRV9URVhUVVJFX01BUFBFUl9DQUlSTwpAQCAtMjkzLDcgKzI5
Myw3IEBAIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvVXNlckFnZW50U3R5bGVTaGVldHMuaDogJChX
ZWJDb3JlKS9jc3MvbWFrZS1jc3MtZmlsZS1hcnJhCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8ICAtLWRlZmluZXMgIiQoZmVhdHVyZV9kZWZpbmVz
KSIgJEAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2VyQWdlbnRTdHlsZVNoZWV0c0RhdGEuY3Bw
ICQoVVNFUl9BR0VOVF9TVFlMRV9TSEVFVFMpCiAKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvV2Vi
S2l0Rm9udEZhbWlseU5hbWVzLmNwcDogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9XZWJLaXRGb250
RmFtaWx5TmFtZXMuaAotRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9XZWJLaXRGb250RmFtaWx5TmFt
ZXMuaDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRG
b250RmFtaWx5TmFtZXMuaW4KK0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvV2ViS2l0Rm9udEZhbWls
eU5hbWVzLmg6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9iaW5kaW5n
cy9zY3JpcHRzL0hhc2hlci5wbSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3Ry
aW5nLnBtICQoV2ViQ29yZSkvY3NzL1dlYktpdEZvbnRGYW1pbHlOYW1lcy5pbgogCSQoQU1fVl9H
RU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWZvbnRzICQoV2Vi
Q29yZSkvY3NzL1dlYktpdEZvbnRGYW1pbHlOYW1lcy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VS
Q0VTX1dFQkNPUkUpIgogCiAKQEAgLTMwMiwxNCArMzAyLDE0IEBAIERlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9ICiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxFbGVtZW50RmFjdG9yeS5jcHA6IERl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTEVsZW1lbnRGYWN0b3J5LmgKIERlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSFRNTEVsZW1lbnRGYWN0b3J5Lmg6IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRN
TE5hbWVzLmNwcAogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MTmFtZXMuY3BwOiBEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0hUTUxOYW1lcy5oCi1EZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxO
YW1lcy5oOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvaHRtbC9IVE1M
VGFnTmFtZXMuaW4gJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgorRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9IVE1MTmFtZXMuaDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5w
bCAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtICQoV2ViQ29yZSkvYmluZGlu
Z3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5p
biAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCiAJJChBTV9WX0dFTikkKFBF
UkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL2h0
bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVO
YW1lcy5pbiAtLWV4dHJhRGVmaW5lcyAiJChmZWF0dXJlX2RlZmluZXMpIiAtLWZhY3RvcnkgLS13
cmFwcGVyRmFjdG9yeSAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTX1dFQkNPUkUpIgogCiAKLURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTlNOYW1lcy5jcHAgRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9YTUxOU05hbWVzLmg6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS94
bWwveG1sbnNhdHRycy5pbgorRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOU05hbWVzLmNwcCBE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTE5TTmFtZXMuaDogJChXZWJDb3JlKS9kb20vbWFrZV9u
YW1lcy5wbCAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtICQoV2ViQ29yZSkv
YmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gJChXZWJDb3JlKS94bWwveG1sbnNhdHRy
cy5pbgogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAk
PCAtLWF0dHJzICQoV2ViQ29yZSkveG1sL3htbG5zYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VO
U09VUkNFU19XRUJDT1JFKSIKIAotRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOYW1lcy5jcHAg
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOYW1lcy5oOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25h
bWVzLnBsICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmluCitEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L1hNTE5hbWVzLmNwcCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTE5hbWVzLmg6ICQoV2ViQ29y
ZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5w
bSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtICQoV2ViQ29yZSkv
eG1sL3htbGF0dHJzLmluCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5n
cy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3JlKS94bWwveG1sYXR0cnMuaW4gLS1vdXRwdXRE
aXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FdmVu
dEZhY3RvcnkuY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXZlbnRIZWFkZXJzLmggRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9FdmVudEludGVyZmFjZXMuaDogJChXZWJDb3JlKS9kb20vbWFrZV9l
dmVudF9mYWN0b3J5LnBsICQoV2ViQ29yZSkvZG9tL0V2ZW50TmFtZXMuaW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggZDNlOTE4MjY5MTJlNDI2ZDQxMDQ3NmIxODA4
NDIyYzI2NzY5YmRkOS4uZTYyZTYzM2ZiYjU3ZmZkYTNiMzM5YjUzYTBjMTMzYWMwOTNhOTUwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAgLTc0Niw2ICs3NDYsOCBA
QAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ0hUTUxOYW1lcycsCiAgICAg
ICAgICAgJ2lucHV0cyc6IFsKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL0hhc2hl
ci5wbScsCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0n
LAogICAgICAgICAgICAgJy4uL2RvbS9tYWtlX25hbWVzLnBsJywKICAgICAgICAgICAgICcuLi9o
dG1sL0hUTUxUYWdOYW1lcy5pbicsCiAgICAgICAgICAgICAnLi4vaHRtbC9IVE1MQXR0cmlidXRl
TmFtZXMuaW4nLApAQCAtNzczLDYgKzc3NSw4IEBACiAgICAgICAgIHsKICAgICAgICAgICAnYWN0
aW9uX25hbWUnOiAnV2ViS2l0Rm9udEZhbWlseU5hbWVzJywKICAgICAgICAgICAnaW5wdXRzJzog
WworICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtJywKKyAgICAgICAg
ICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbScsCiAgICAgICAgICAgICAn
Li4vZG9tL21ha2VfbmFtZXMucGwnLAogICAgICAgICAgICAgJy4uL2Nzcy9XZWJLaXRGb250RmFt
aWx5TmFtZXMuaW4nLAogICAgICAgICAgIF0sCkBAIC03OTQsNiArNzk4LDggQEAKICAgICAgICAg
ewogICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdTVkdOYW1lcycsCiAgICAgICAgICAgJ2lucHV0
cyc6IFsKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbScsCisgICAg
ICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0nLAogICAgICAgICAg
ICAgJy4uL2RvbS9tYWtlX25hbWVzLnBsJywKICAgICAgICAgICAgICcuLi9zdmcvc3ZndGFncy5p
bicsCiAgICAgICAgICAgICAnLi4vc3ZnL3N2Z2F0dHJzLmluJywKQEAgLTg4Miw2ICs4ODgsOCBA
QAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ01hdGhNTE5hbWVzJywKICAg
ICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvSGFz
aGVyLnBtJywKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5w
bScsCiAgICAgICAgICAgICAnLi4vZG9tL21ha2VfbmFtZXMucGwnLAogICAgICAgICAgICAgJy4u
L21hdGhtbC9tYXRodGFncy5pbicsCiAgICAgICAgICAgICAnLi4vbWF0aG1sL21hdGhhdHRycy5p
bicsCkBAIC0xMDE2LDYgKzEwMjQsOCBAQAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9u
YW1lJzogJ1hMaW5rTmFtZXMnLAogICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAn
Li4vYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0nLAorICAgICAgICAgICAgJy4uL2JpbmRpbmdz
L3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtJywKICAgICAgICAgICAgICcuLi9kb20vbWFrZV9uYW1l
cy5wbCcsCiAgICAgICAgICAgICAnLi4vc3ZnL3hsaW5rYXR0cnMuaW4nLAogICAgICAgICAgIF0s
CkBAIC0xMDM3LDYgKzEwNDcsOCBAQAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9uYW1l
JzogJ1hNTE5TTmFtZXMnLAogICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAnLi4v
YmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0nLAorICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3Nj
cmlwdHMvU3RhdGljU3RyaW5nLnBtJywKICAgICAgICAgICAgICcuLi9kb20vbWFrZV9uYW1lcy5w
bCcsCiAgICAgICAgICAgICAnLi4veG1sL3htbG5zYXR0cnMuaW4nLAogICAgICAgICAgIF0sCkBA
IC0xMDU4LDYgKzEwNzAsOCBAQAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzog
J1hNTE5hbWVzJywKICAgICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAgJy4uL2JpbmRp
bmdzL3NjcmlwdHMvSGFzaGVyLnBtJywKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRz
L1N0YXRpY1N0cmluZy5wbScsCiAgICAgICAgICAgICAnLi4vZG9tL21ha2VfbmFtZXMucGwnLAog
ICAgICAgICAgICAgJy4uL3htbC94bWxhdHRycy5pbicsCiAgICAgICAgICAgXSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX21ha2VuYW1lcy5w
eSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX21ha2VuYW1lcy5w
eQppbmRleCBhMWE0MTBmMWVhNTBjMzE1NDJlYWQ1MWJkM2FlMDQ2ZTFjNWVjMTkzLi44MTNiODY0
MTk2MzY2NmU2MmJkZjgyNzllMGFlOGFmZDU4YTEyMjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHkKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5CkBAIC0xMzEs
NiArMTMxLDggQEAgZGVmIG1haW4oYXJncyk6CiAgICAgICAgICAgICBldmVudHNJbnB1dCA9IGlu
cHV0QWJzUG9zaXgKICAgICAgICAgZWxpZiBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdOYW1lcy5p
bicpOgogICAgICAgICAgICAgb3B0aW9ucy5hcHBlbmQoaW5wdXRBYnNQb3NpeCkKKyAgICAgICAg
ZWxpZiBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCcucG0nKToKKyAgICAgICAgICAgIGNvbnRpbnVl
CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBhc3NlcnQgRmFsc2UKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTBl
M2M4MmY2YWE3ZWY2ZTg2ZjU1YTU2MjBkNDEyNWI1NWM2NmQ4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0KQEAgLTAsMCAr
MSw4NyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisjIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyMgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKworcGFja2FnZSBTdGF0aWNTdHJpbmc7CisKK3VzZSBz
dHJpY3Q7Cit1c2UgSGFzaGVyOworCitzdWIgR2VuZXJhdGVTdHJpbmdzKCQpCit7CisgICAgbXkg
JHN0cmluZ3NSZWYgPSBzaGlmdDsKKyAgICBteSAlc3RyaW5ncyA9ICUkc3RyaW5nc1JlZjsKKwor
ICAgIG15IEByZXN1bHQgPSAoKTsKKworICAgIHdoaWxlICggbXkgKCRuYW1lLCAkdmFsdWUpID0g
ZWFjaCAlc3RyaW5ncyApIHsKKyAgICAgICAgcHVzaChAcmVzdWx0LCAic3RhdGljIGNvbnN0IExD
aGFyICR7bmFtZX1TdHJpbmc4W10gPSBcIiR7dmFsdWV9XCI7XG4iKTsKKyAgICB9CisKKyAgICBw
dXNoKEByZXN1bHQsICJcbiIpOworCisgICAgd2hpbGUgKCBteSAoJG5hbWUsICR2YWx1ZSkgPSBl
YWNoICVzdHJpbmdzICkgeworICAgICAgICBteSAkbGVuZ3RoID0gbGVuZ3RoKCR2YWx1ZSk7Cisg
ICAgICAgIG15ICRoYXNoID0gSGFzaGVyOjpHZW5lcmF0ZUhhc2hWYWx1ZSgkdmFsdWUpOworICAg
ICAgICBwdXNoKEByZXN1bHQsIDw8RU5EKTsKK3N0YXRpYyBTdHJpbmdJbXBsOjpTdGF0aWNBU0NJ
SUxpdGVyYWwgJHtuYW1lfURhdGEgPSB7CisgICAgU3RyaW5nSW1wbDo6U3RhdGljQVNDSUlMaXRl
cmFsOjpzX2luaXRpYWxSZWZDb3VudCwKKyAgICAkbGVuZ3RoLAorICAgICR7bmFtZX1TdHJpbmc4
LAorICAgIDAsCisgICAgU3RyaW5nSW1wbDo6U3RhdGljQVNDSUlMaXRlcmFsOjpzX2luaXRpYWxG
bGFncyB8ICgke2hhc2h9IDw8IFN0cmluZ0ltcGw6OlN0YXRpY0FTQ0lJTGl0ZXJhbDo6c19oYXNo
U2hpZnQpCit9OworRU5ECisgICAgfQorCisgICAgcHVzaChAcmVzdWx0LCAiXG4iKTsKKworICAg
IHdoaWxlICggbXkgKCRuYW1lLCAkdmFsdWUpID0gZWFjaCAlc3RyaW5ncyApIHsKKyAgICAgICAg
cHVzaChAcmVzdWx0LCAic3RhdGljIFN0cmluZ0ltcGwqICR7bmFtZX1JbXBsID0gcmVpbnRlcnBy
ZXRfY2FzdDxTdHJpbmdJbXBsKj4oJiR7bmFtZX1EYXRhKTtcbiIpOworICAgIH0KKworICAgIHB1
c2goQHJlc3VsdCwgIlxuIik7CisKKyAgICByZXR1cm4gam9pbiAiIiwgQHJlc3VsdDsKK30KKwor
c3ViIEdlbmVyYXRlU3RyaW5nQXNzZXJ0cygkKQoreworICAgIG15ICRzdHJpbmdzUmVmID0gc2hp
ZnQ7CisgICAgbXkgJXN0cmluZ3MgPSAlJHN0cmluZ3NSZWY7CisKKyAgICBteSBAcmVzdWx0ID0g
KCk7CisKKyAgICBwdXNoKEByZXN1bHQsICIjaWZuZGVmIE5ERUJVR1xuIik7CisKKyAgICB3aGls
ZSAoIG15ICgkbmFtZSwgJHZhbHVlKSA9IGVhY2ggJXN0cmluZ3MgKSB7CisgICAgICAgIHB1c2go
QHJlc3VsdCwgIiAgICAke25hbWV9SW1wbC0+YXNzZXJ0SGFzaElzQ29ycmVjdCgpO1xuIik7Cisg
ICAgfQorCisgICAgcHVzaChAcmVzdWx0LCAiI2VuZGlmIC8vIE5ERUJVR1xuIik7CisKKyAgICBw
dXNoKEByZXN1bHQsICJcbiIpOworCisgICAgcmV0dXJuIGpvaW4gIiIsIEByZXN1bHQ7Cit9CisK
KzE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKaW5kZXggZGU2MGJmYjA3ZTEyMjk4
ZGJhZmYxZmFjNzc4ZDRlYTVkM2JiZDU4MS4uYjlkNTFlYjQ1N2Q3ZjlhNGNhZmY2NGFhODM2OTcx
NGFkNDliODQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcApAQCAtMTcyLDE2
ICsxNzIsMTQgQEAgdW5zaWduZWQgUXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGw6OmNv
bXB1dGVIYXNoKCkgY29uc3QKICAgICByZXR1cm4gaGFzaENvbXBvbmVudHMoY29tcG9uZW50cyk7
CiB9CiAKLXZvaWQgY3JlYXRlUXVhbGlmaWVkTmFtZSh2b2lkKiB0YXJnZXRBZGRyZXNzLCBjb25z
dCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBuYW1lTGVuZ3RoLCBjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWVOYW1lc3BhY2UpCit2b2lkIGNyZWF0ZVF1YWxpZmllZE5hbWUodm9pZCogdGFyZ2V0QWRkcmVz
cywgU3RyaW5nSW1wbCogbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lTmFtZXNwYWNlKQog
ewotICAgIEF0b21pY1N0cmluZyBhdG9taWNOYW1lKG5hbWUsIG5hbWVMZW5ndGgsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIG5ldyAocmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4odGFyZ2V0QWRkcmVzcykpIFF1YWxpZmllZE5hbWUobnVsbEF0b20sIGF0b21pY05hbWUs
IG5hbWVOYW1lc3BhY2UpOworICAgIG5ldyAocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odGFyZ2V0
QWRkcmVzcykpIFF1YWxpZmllZE5hbWUobnVsbEF0b20sIEF0b21pY1N0cmluZyhuYW1lKSwgbmFt
ZU5hbWVzcGFjZSk7CiB9CiAKLXZvaWQgY3JlYXRlUXVhbGlmaWVkTmFtZSh2b2lkKiB0YXJnZXRB
ZGRyZXNzLCBjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBuYW1lTGVuZ3RoKQordm9pZCBjcmVh
dGVRdWFsaWZpZWROYW1lKHZvaWQqIHRhcmdldEFkZHJlc3MsIFN0cmluZ0ltcGwqIG5hbWUpCiB7
Ci0gICAgQXRvbWljU3RyaW5nIGF0b21pY05hbWUobmFtZSwgbmFtZUxlbmd0aCwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgbmV3IChyZWludGVycHJldF9jYXN0PHZv
aWQqPih0YXJnZXRBZGRyZXNzKSkgUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgYXRvbWljTmFtZSwg
bnVsbEF0b20pOworICAgIG5ldyAocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odGFyZ2V0QWRkcmVz
cykpIFF1YWxpZmllZE5hbWUobnVsbEF0b20sIEF0b21pY1N0cmluZyhuYW1lKSwgbnVsbEF0b20p
OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaAppbmRleCBjM2NkMjlmZGVjYWJj
YWQ3MjAzNzNjNTc1MGE5NDg2ZDNmOWYxMDJkLi4zODY3MzE1NGE2N2YxNjY4NGQzYjQ0ZjVkNTk5
ZTY5N2RlODZkOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFt
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmgKQEAgLTE0NCw4ICsx
NDQsOCBAQCBzdHJ1Y3QgUXVhbGlmaWVkTmFtZUhhc2ggewogICAgIHN0YXRpYyBjb25zdCBib29s
IHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CiB9OwogCi12b2lkIGNyZWF0
ZVF1YWxpZmllZE5hbWUodm9pZCogdGFyZ2V0QWRkcmVzcywgY29uc3QgY2hhciogbmFtZSwgdW5z
aWduZWQgbmFtZUxlbmd0aCk7Ci12b2lkIGNyZWF0ZVF1YWxpZmllZE5hbWUodm9pZCogdGFyZ2V0
QWRkcmVzcywgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbmFtZUxlbmd0aCwgY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lTmFtZXNwYWNlKTsKK3ZvaWQgY3JlYXRlUXVhbGlmaWVkTmFtZSh2b2lk
KiB0YXJnZXRBZGRyZXNzLCBTdHJpbmdJbXBsKiBuYW1lKTsKK3ZvaWQgY3JlYXRlUXVhbGlmaWVk
TmFtZSh2b2lkKiB0YXJnZXRBZGRyZXNzLCBTdHJpbmdJbXBsKiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWVOYW1lc3BhY2UpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKaW5k
ZXggYjkxMDNlNTRmZTE3N2ZmM2MxNTg4YzIxM2QwYTMxOTdmZTM4ZjAwZi4uMDE3MDI3NTI3ZjNi
MjdmNWUxNjIxODgwYjIxNWNmZWFmNmYzYTcyNyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL21ha2VfbmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwK
QEAgLTMxLDYgKzMxLDcgQEAKIAogdXNlIHN0cmljdDsKIAordXNlIFN0YXRpY1N0cmluZzsKIHVz
ZSBDb25maWc7CiB1c2UgR2V0b3B0OjpMb25nOwogdXNlIEZpbGU6OlBhdGg7CkBAIC01NCw2ICs1
NSw3IEBAIG15ICVlbmFibGVkVGFncyA9ICgpOwogbXkgJWVuYWJsZWRBdHRycyA9ICgpOwogbXkg
JWFsbFRhZ3MgPSAoKTsKIG15ICVhbGxBdHRycyA9ICgpOworbXkgJWFsbFN0cmluZ3MgPSAoKTsK
IG15ICVwYXJhbWV0ZXJzID0gKCk7CiBteSAkZXh0cmFEZWZpbmVzID0gMDsKIG15ICRpbml0RGVm
YXVsdHMgPSAxOwpAQCAtMTE1LDE0ICsxMTcsMTkgQEAgaWYgKGxlbmd0aCgkZm9udE5hbWVzSW4p
KSB7CiAgICAgcHJpbnRMaWNlbnNlSGVhZGVyKCRGKTsKICAgICBwcmludENwcEhlYWQoJEYsICJD
U1MiLCAkZmFtaWx5TmFtZXNGaWxlQmFzZSwgIldURiIpOwogCisgICAgcHJpbnQgRiBTdGF0aWNT
dHJpbmc6OkdlbmVyYXRlU3RyaW5ncyhcJXBhcmFtZXRlcnMpOworCiAgICAgd2hpbGUgKCBteSAo
JG5hbWUsICRpZGVudGlmaWVyKSA9IGVhY2ggJXBhcmFtZXRlcnMgKSB7CiAgICAgICAgIHByaW50
IEYgIkRFRklORV9HTE9CQUwoQXRvbWljU3RyaW5nLCAkbmFtZSlcbiI7CiAgICAgfQogCiAgICAg
cHJpbnRJbml0KCRGLCAwKTsKIAorICAgIHByaW50IEYgIlxuIjsKKyAgICBwcmludCBGIFN0YXRp
Y1N0cmluZzo6R2VuZXJhdGVTdHJpbmdBc3NlcnRzKFwlcGFyYW1ldGVycyk7CisKICAgICB3aGls
ZSAoIG15ICgkbmFtZSwgJGlkZW50aWZpZXIpID0gZWFjaCAlcGFyYW1ldGVycyApIHsKLSAgICAg
ICAgcHJpbnQgRiAiICAgIG5ldyAoKHZvaWQqKSYkbmFtZSkgQXRvbWljU3RyaW5nKFwiJGlkZW50
aWZpZXJcIik7XG4iOworICAgICAgICBwcmludCBGICIgICAgbmV3ICgodm9pZCopJiRuYW1lKSBB
dG9taWNTdHJpbmcoJHtuYW1lfUltcGwpO1xuIjsKICAgICB9CiAKICAgICBwcmludCBGICJ9XG59
XG59XG4iOwpAQCAtMTM1LDExICsxNDIsMTMgQEAgZGllICJZb3UgbXVzdCBzcGVjaWZ5IGF0IGxl
YXN0IG9uZSBvZiAtLXRhZ3MgPGZpbGU+IG9yIC0tYXR0cnMgPGZpbGU+IiB1bmxlc3MgKGwKIGlm
IChsZW5ndGgoJHRhZ3NGaWxlKSkgewogICAgICVhbGxUYWdzID0gJXtyZWFkVGFncygkdGFnc0Zp
bGUsIDApfTsKICAgICAlZW5hYmxlZFRhZ3MgPSAle3JlYWRUYWdzKCR0YWdzRmlsZSwgMSl9Owor
ICAgIG5hbWVzVG9TdHJpbmdzKFwlYWxsVGFncywgXCVhbGxTdHJpbmdzKTsKIH0KIAogaWYgKGxl
bmd0aCgkYXR0cnNGaWxlKSkgewogICAgICVhbGxBdHRycyA9ICV7cmVhZEF0dHJzKCRhdHRyc0Zp
bGUsIDApfTsKICAgICAlZW5hYmxlZEF0dHJzID0gJXtyZWFkQXR0cnMoJGF0dHJzRmlsZSwgMSl9
OworICAgIG5hbWVzVG9TdHJpbmdzKFwlYWxsQXR0cnMsIFwlYWxsU3RyaW5ncyk7CiB9CiAKIGRp
ZSAiWW91IG11c3Qgc3BlY2lmeSBhIG5hbWVzcGFjZSAoZS5nLiBTVkcpIGZvciA8bmFtZXNwYWNl
Pk5hbWVzLmgiIHVubGVzcyAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9OwpAQCAtMjEyLDYgKzIyMSwz
MSBAQCBzdWIgZGVmYXVsdEludGVyZmFjZU5hbWUKIAogIyMjIFBhcnNpbmcgaGFuZGxlcnMKIAor
c3ViIHZhbHVlRm9yTmFtZQoreworICAgIG15ICRuYW1lID0gc2hpZnQ7CisgICAgbXkgJHZhbHVl
ID0gJGV4dGVuc2lvbkF0dHJzeyRuYW1lfTsKKworICAgIGlmICghJHZhbHVlKSB7CisgICAgICAg
ICR2YWx1ZSA9ICRuYW1lOworICAgICAgICAkdmFsdWUgPX4gcy9fLy0vZzsKKyAgICB9CisKKyAg
ICByZXR1cm4gJHZhbHVlOworfQorCitzdWIgbmFtZXNUb1N0cmluZ3MKK3sKKyAgICBteSAkbmFt
ZXNSZWYgPSBzaGlmdDsKKyAgICBteSAkc3RyaW5nc1JlZiA9IHNoaWZ0OworCisgICAgbXkgJW5h
bWVzID0gJSRuYW1lc1JlZjsKKworICAgIGZvciBteSAkbmFtZSAoa2V5cyAlbmFtZXMpIHsKKyAg
ICAgICAgJHN0cmluZ3NSZWYtPnskbmFtZX0gPSB2YWx1ZUZvck5hbWUoJG5hbWUpOworICAgIH0K
K30KKwogc3ViIHRhZ3NIYW5kbGVyCiB7CiAgICAgbXkgKCR0YWcsICRwcm9wZXJ0eSwgJHZhbHVl
KSA9IEBfOwpAQCAtNjM2LDYgKzY3MCw4IEBAIHN1YiBwcmludE5hbWVzQ3BwRmlsZQogCiAgICAg
cHJpbnQgRiAiREVGSU5FX0dMT0JBTChBdG9taWNTdHJpbmcsICR7bG93ZXJOYW1lc3BhY2V9TmFt
ZXNwYWNlVVJJKVxuXG4iOwogCisgICAgcHJpbnQgRiBTdGF0aWNTdHJpbmc6OkdlbmVyYXRlU3Ry
aW5ncyhcJWFsbFN0cmluZ3MpOworCiAgICAgaWYgKGtleXMgJWFsbFRhZ3MpIHsKICAgICAgICAg
cHJpbnQgRiAiLy8gVGFnc1xuIjsKICAgICAgICAgZm9yIG15ICRuYW1lIChzb3J0IGtleXMgJWFs
bFRhZ3MpIHsKQEAgLTY3Miw3ICs3MDgsMTAgQEAgc3ViIHByaW50TmFtZXNDcHBGaWxlCiAgICAg
cHJpbnQoRiAiICAgIEF0b21pY1N0cmluZyAke2xvd2VyTmFtZXNwYWNlfU5TKFwiJHBhcmFtZXRl
cnN7bmFtZXNwYWNlVVJJfVwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTtc
blxuIik7CiAKICAgICBwcmludChGICIgICAgLy8gTmFtZXNwYWNlXG4iKTsKLSAgICBwcmludChG
ICIgICAgbmV3ICgodm9pZCopJiR7bG93ZXJOYW1lc3BhY2V9TmFtZXNwYWNlVVJJKSBBdG9taWNT
dHJpbmcoJHtsb3dlck5hbWVzcGFjZX1OUyk7XG5cbiIpOworICAgIHByaW50KEYgIiAgICBuZXcg
KCh2b2lkKikmJHtsb3dlck5hbWVzcGFjZX1OYW1lc3BhY2VVUkkpIEF0b21pY1N0cmluZygke2xv
d2VyTmFtZXNwYWNlfU5TKTtcbiIpOworICAgIHByaW50KEYgIlxuIik7CisgICAgcHJpbnQgRiBT
dGF0aWNTdHJpbmc6OkdlbmVyYXRlU3RyaW5nQXNzZXJ0cyhcJWFsbFN0cmluZ3MpOworCiAgICAg
aWYgKGtleXMgJWFsbFRhZ3MpIHsKICAgICAgICAgbXkgJHRhZ3NOYW1lc3BhY2UgPSAkcGFyYW1l
dGVyc3t0YWdzTnVsbE5hbWVzcGFjZX0gPyAibnVsbEF0b20iIDogIiR7bG93ZXJOYW1lc3BhY2V9
TlMiOwogICAgICAgICBwcmludERlZmluaXRpb25zKCRGLCBcJWFsbFRhZ3MsICJ0YWdzIiwgJHRh
Z3NOYW1lc3BhY2UpOwpAQCAtNzc0LDE3ICs4MTMsMTEgQEAgc3ViIHByaW50RGVmaW5pdGlvbnMK
ICAgICBwcmludCBGICIgICAgLy8gIiAuIHVjZmlyc3QoJHR5cGUpIC4gIlxuIjsKIAogICAgIGZv
ciBteSAkbmFtZSAoc29ydCBrZXlzICUkbmFtZXNSZWYpIHsKLSAgICAgICAgbXkgJHJlYWxOYW1l
ID0gJGV4dGVuc2lvbkF0dHJzeyRuYW1lfTsKLSAgICAgICAgaWYgKCEkcmVhbE5hbWUpIHsKLSAg
ICAgICAgICAgICRyZWFsTmFtZSA9ICRuYW1lOwotICAgICAgICAgICAgJHJlYWxOYW1lID1+IHMv
Xy8tL2c7Ci0gICAgICAgIH0KLQogICAgICAgICAjIFRvIGdlbmVyYXRlIGxlc3MgY29kZSBpbiBp
bml0KCksIHRoZSBjb21tb24gY2FzZSBvZiBudWxsQXRvbSBmb3IgdGhlIG5hbWVzcGFjZSwgd2Ug
Y2FsbCBjcmVhdGVRdWFsaWZpZWROYW1lKCkgd2l0aG91dCBwYXNzaW5nICRuYW1lc3BhY2VVUkku
CiAgICAgICAgIGlmICgkbmFtZXNwYWNlVVJJIGVxICJudWxsQXRvbSIpIHsKLSAgICAgICAgICAg
IHByaW50IEYgIiAgICBjcmVhdGVRdWFsaWZpZWROYW1lKCh2b2lkKikmJG5hbWUiLCIke3Nob3J0
Q2FtZWxUeXBlfSwgXCIkcmVhbE5hbWVcIiwgIiwgbGVuZ3RoICRyZWFsTmFtZSAsIik7XG4iOwor
ICAgICAgICAgICAgcHJpbnQgRiAiICAgIGNyZWF0ZVF1YWxpZmllZE5hbWUoKHZvaWQqKSYkbmFt
ZSIsIiR7c2hvcnRDYW1lbFR5cGV9LCAke25hbWV9SW1wbCk7XG4iOwogICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgcHJpbnQgRiAiICAgIGNyZWF0ZVF1YWxpZmllZE5hbWUoKHZvaWQqKSYk
bmFtZSIsIiR7c2hvcnRDYW1lbFR5cGV9LCBcIiRyZWFsTmFtZVwiLCAiLCBsZW5ndGggJHJlYWxO
YW1lICwiLCAkbmFtZXNwYWNlVVJJKTtcbiI7CisgICAgICAgICAgICBwcmludCBGICIgICAgY3Jl
YXRlUXVhbGlmaWVkTmFtZSgodm9pZCopJiRuYW1lIiwiJHtzaG9ydENhbWVsVHlwZX0sICR7bmFt
ZX1JbXBsLCAkbmFtZXNwYWNlVVJJKTtcbiI7CiAgICAgICAgIH0KICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194202</attachid>
            <date>2013-03-21 01:55:40 -0700</date>
            <delta_ts>2013-03-21 02:37:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112831-20130321015129.patch</filename>
            <type>text/plain</type>
            <size>29023</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU0YTdjYmYwNzExZDA5MDU5YzJkZjJm
YmVmYmY0ZTU2MTI0ZDYzZDkuLmM0YTgwODI5ZDcwMTBiMjAxMzZlMTE5MjM1NjI4Yjg4YWZlZTYw
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMtMDMtMjEgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBIVE1MTmFtZXMgc2hvdWxkIGNvbnN0cnVjdCBzdHJpbmdz
IGF0IGNvbXBpbGUgdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEyODMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAgIChTdHJpbmdJbXBsKToKKyAg
ICAgICAgKFN0YXRpY0FTQ0lJTGl0ZXJhbCk6CisgICAgICAgICAgICAtIFRoaXMgc3RydWN0IGxl
dHMgdXMgY29uc3RydWN0IFN0cmluZ0ltcGwgb2JqZWN0cyBhdCBjb21waWxlIHRpbWUuCisgICAg
ICAgIChXVEY6OlN0cmluZ0ltcGw6OmFzc2VydFZhbGlkSGFzaCk6CisgICAgICAgICAgICAtIFRo
aXMgZnVuY3Rpb24gbGV0cyB1cyBzYW5pdHkgY2hlY2sgU3RyaW5nSW1wbCBvYmplY3RzIGNyZWF0
ZWQgZnJvbSBTdGF0aWNEYXRhLgorCisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgor
ICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpmaW5kKTogUmVtb3ZlIGEgc3RyYXkgOworICAgICAg
ICAoV1RGOjpTdHJpbmdJbXBsOjpmaW5kSWdub3JpbmdDYXNlKTogZGl0dG8KKyAgICAgICAgKFdU
Rjo6U3RyaW5nSW1wbDo6c3RhcnRzV2l0aCk6IGRpdHRvCisgICAgICAgIChTdHJpbmdJbXBsKToK
KyAgICAgICAgKFN0YXRpY0FTQ0lJTGl0ZXJhbCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6
OmFzc2VydEhhc2hJc0NvcnJlY3QpOgorICAgICAgICAoV1RGOjpWYWx1ZUNoZWNrPFN0cmluZ0lt
cGwqPik6CisKIDIwMTMtMDMtMjAgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21h
aWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDY0MTkuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggNmVmMmNlMTA1YWJlMmNlZDc2ZTRiYTE1MTBmNGEwZTlmYmEzN2JiNy4uOTFiY2M1
MmU2ZmE4ZWRhNGE2NjQzMzJiZmMyNmFlMGI3NDliOTgyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDUwIEBACisyMDEzLTAzLTIxICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgSFRNTE5hbWVzIHNob3VsZCBjb25zdHJ1Y3Qgc3RyaW5ncyBhdCBjb21waWxlIHRpbWUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjgzMQor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
dGVhY2hlcyBtYWtlX25hbWVzIGhvdyB0byBjb25zdHJ1Y3Qgc3RyaW5ncyBhdCBjb21waWxlIHRp
bWUsCisgICAgICAgIGVsaW1pbmF0aW5nIGEgbGFyZ2UgbnVtYmVyIG9mIHN0YXJ0dXAgbWFsbG9j
cy4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwL3NjcmlwdHMvYWN0aW9uX21ha2VuYW1lcy5weToKKyAgICAgICAgICAgIC0gVGVhY2gg
dGhlIENocm9taXVtIGJ1aWxkIGhvdyB0byBkZWFsIHdpdGggUGVybCBtb2R1bGVzLgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtOiBBZGRlZC4KKyAgICAgICAgICAg
IC0gQSBQZXJsIG1vZHVsZSBmb3IgY29uc3RydWN0aW5nIHN0YXRpYyBzdHJpbmdzLgorICAgICAg
ICAoR2VuZXJhdGVTdHJpbmdzKToKKyAgICAgICAgKEdlbmVyYXRlVmFsaWRhdGVTdHJpbmdzKToK
KyAgICAgICAgKiBkb20vUXVhbGlmaWVkTmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVRdWFsaWZpZWROYW1lKToKKyAgICAgICAgICAgIC0gY3JlYXRlUXVhbGlmaWVkTmFtZSBub3cg
dGFrZXMgYW4gYWxyZWFkeS1jb25zdHJ1Y3RlZCBTdHJpbmdJbXBsCisgICAgICAgICAgICAgIG9i
amVjdC4KKyAgICAgICAgKiBkb20vUXVhbGlmaWVkTmFtZS5oOgorICAgICAgICAqIGRvbS9tYWtl
X25hbWVzLnBsOgorICAgICAgICAodmFsdWVGb3JOYW1lKToKKyAgICAgICAgKG5hbWVzVG9TdHJp
bmdzKToKKyAgICAgICAgKHByaW50TmFtZXNDcHBGaWxlKToKKyAgICAgICAgKHByaW50RGVmaW5p
dGlvbnMpOgorICAgICAgICAgICAgLSBUZWFjaCBtYWtlX25hbWVzIGhvdyB0byB1c2UgU3RhdGlj
U3RyaW5nLnBtLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHk6CisgICAgICAgICht
YWluKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbTogQWRkZWQu
CisgICAgICAgIChHZW5lcmF0ZVN0cmluZ3MpOgorICAgICAgICAoR2VuZXJhdGVTdHJpbmdBc3Nl
cnRzKToKKyAgICAgICAgKiBkb20vUXVhbGlmaWVkTmFtZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVRdWFsaWZpZWROYW1lKToKKyAgICAgICAgKiBkb20vUXVhbGlmaWVkTmFtZS5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL21ha2VfbmFtZXMucGw6CisgICAgICAg
ICh2YWx1ZUZvck5hbWUpOgorICAgICAgICAobmFtZXNUb1N0cmluZ3MpOgorICAgICAgICAocHJp
bnROYW1lc0NwcEZpbGUpOgorICAgICAgICAocHJpbnREZWZpbml0aW9ucyk6CisKIDIwMTMtMDMt
MjAgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDY0MTkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5o
CmluZGV4IGYxZWI2NzE3OGIyNWNkOWQ4MWQxZjIyMGVkMzgyY2Y2M2JhOTkxOTMuLjI4ZDMzYmQy
N2U2OTFlMGY1YzFlMWQ5YTljOWMyNzI5MjhiZTNiZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1w
bC5oCkBAIC02OTAsMTEgKzY5MCwxMSBAQCBwdWJsaWM6CiAgICAgc2l6ZV90IGZpbmQoVUNoYXIg
Y2hhcmFjdGVyLCB1bnNpZ25lZCBzdGFydCA9IDApOwogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQ
SSBzaXplX3QgZmluZChDaGFyYWN0ZXJNYXRjaEZ1bmN0aW9uUHRyLCB1bnNpZ25lZCBpbmRleCA9
IDApOwogICAgIHNpemVfdCBmaW5kKGNvbnN0IExDaGFyKiwgdW5zaWduZWQgaW5kZXggPSAwKTsK
LSAgICBBTFdBWVNfSU5MSU5FIHNpemVfdCBmaW5kKGNvbnN0IGNoYXIqIHMsIHVuc2lnbmVkIGlu
ZGV4ID0gMCkgeyByZXR1cm4gZmluZChyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4ocyks
IGluZGV4KTsgfTsKKyAgICBBTFdBWVNfSU5MSU5FIHNpemVfdCBmaW5kKGNvbnN0IGNoYXIqIHMs
IHVuc2lnbmVkIGluZGV4ID0gMCkgeyByZXR1cm4gZmluZChyZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4ocyksIGluZGV4KTsgfQogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBzaXplX3Qg
ZmluZChTdHJpbmdJbXBsKik7CiAgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIHNpemVfdCBmaW5k
KFN0cmluZ0ltcGwqLCB1bnNpZ25lZCBpbmRleCk7CiAgICAgc2l6ZV90IGZpbmRJZ25vcmluZ0Nh
c2UoY29uc3QgTENoYXIqLCB1bnNpZ25lZCBpbmRleCA9IDApOwotICAgIEFMV0FZU19JTkxJTkUg
c2l6ZV90IGZpbmRJZ25vcmluZ0Nhc2UoY29uc3QgY2hhciogcywgdW5zaWduZWQgaW5kZXggPSAw
KSB7IHJldHVybiBmaW5kSWdub3JpbmdDYXNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PihzKSwgaW5kZXgpOyB9OworICAgIEFMV0FZU19JTkxJTkUgc2l6ZV90IGZpbmRJZ25vcmluZ0Nh
c2UoY29uc3QgY2hhciogcywgdW5zaWduZWQgaW5kZXggPSAwKSB7IHJldHVybiBmaW5kSWdub3Jp
bmdDYXNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihzKSwgaW5kZXgpOyB9CiAgICAg
V1RGX0VYUE9SVF9TVFJJTkdfQVBJIHNpemVfdCBmaW5kSWdub3JpbmdDYXNlKFN0cmluZ0ltcGwq
LCB1bnNpZ25lZCBpbmRleCA9IDApOwogCiAgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIHNpemVf
dCByZXZlcnNlRmluZExpbmVUZXJtaW5hdG9yKHVuc2lnbmVkIGluZGV4ID0gVUlOVF9NQVgpOwpA
QCAtNzA2LDcgKzcwNiw3IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkgYm9v
bCBzdGFydHNXaXRoKFVDaGFyKSBjb25zdDsKICAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkgYm9v
bCBzdGFydHNXaXRoKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCBtYXRjaExlbmd0aCwgYm9vbCBjYXNl
U2Vuc2l0aXZlKSBjb25zdDsKICAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBtYXRjaExlbmd0aD4KLSAg
ICBib29sIHN0YXJ0c1dpdGgoY29uc3QgY2hhciAoJnByZWZpeClbbWF0Y2hMZW5ndGhdLCBib29s
IGNhc2VTZW5zaXRpdmUgPSB0cnVlKSBjb25zdCB7IHJldHVybiBzdGFydHNXaXRoKHByZWZpeCwg
bWF0Y2hMZW5ndGggLSAxLCBjYXNlU2Vuc2l0aXZlKTsgfTsKKyAgICBib29sIHN0YXJ0c1dpdGgo
Y29uc3QgY2hhciAoJnByZWZpeClbbWF0Y2hMZW5ndGhdLCBib29sIGNhc2VTZW5zaXRpdmUgPSB0
cnVlKSBjb25zdCB7IHJldHVybiBzdGFydHNXaXRoKHByZWZpeCwgbWF0Y2hMZW5ndGggLSAxLCBj
YXNlU2Vuc2l0aXZlKTsgfQogCiAgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIGJvb2wgZW5kc1dp
dGgoU3RyaW5nSW1wbCosIGJvb2wgY2FzZVNlbnNpdGl2ZSA9IHRydWUpOwogICAgIFdURl9FWFBP
UlRfU1RSSU5HX0FQSSBib29sIGVuZHNXaXRoKFVDaGFyKSBjb25zdDsKQEAgLTc3Miw2ICs3NzIs
MzIgQEAgcHJpdmF0ZToKICNpZmRlZiBTVFJJTkdfU1RBVFMKICAgICBXVEZfRVhQT1JUREFUQSBz
dGF0aWMgU3RyaW5nU3RhdHMgbV9zdHJpbmdTdGF0czsKICNlbmRpZgorCitwdWJsaWM6CisgICAg
c3RydWN0IFN0YXRpY0FTQ0lJTGl0ZXJhbCB7CisgICAgICAgIC8vIFRoZXNlIG1lbWJlciB2YXJp
YWJsZXMgbXVzdCBtYXRjaCB0aGUgbGF5b3V0IG9mIFN0cmluZ0ltcGwuCisgICAgICAgIHVuc2ln
bmVkIG1fcmVmQ291bnQ7CisgICAgICAgIHVuc2lnbmVkIG1fbGVuZ3RoOworICAgICAgICBjb25z
dCBMQ2hhciogbV9kYXRhODsKKyAgICAgICAgdm9pZCogbV9idWZmZXI7CisgICAgICAgIHVuc2ln
bmVkIG1faGFzaEFuZEZsYWdzOworCisgICAgICAgIC8vIFRoZXNlIHZhbHVlcyBtaW1pYyBDb25z
dHJ1Y3RGcm9tTGl0ZXJhbC4KKyAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfaW5pdGlh
bFJlZkNvdW50ID0gc19yZWZDb3VudEluY3JlbWVudDsKKyAgICAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIHNfaW5pdGlhbEZsYWdzID0gc19oYXNoRmxhZzhCaXRCdWZmZXIgfCBCdWZmZXJJbnRl
cm5hbCB8IHNfaGFzaEZsYWdIYXNUZXJtaW5hdGluZ051bGxDaGFyYWN0ZXI7CisgICAgICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBzX2hhc2hTaGlmdCA9IHNfZmxhZ0NvdW50OworICAgIH07CisK
KyNpZm5kZWYgTkRFQlVHCisgICAgdm9pZCBhc3NlcnRIYXNoSXNDb3JyZWN0KCkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChoYXNIYXNoKCkpOworICAgICAgICBBU1NFUlQoZXhpc3RpbmdIYXNoKCkg
PT0gU3RyaW5nSGFzaGVyOjpjb21wdXRlSGFzaEFuZE1hc2tUb3A4Qml0cyhjaGFyYWN0ZXJzOCgp
LCBsZW5ndGgoKSkpOworICAgIH0KKyNlbmRpZgorCitwcml2YXRlOgorICAgIC8vIFRoZXNlIG1l
bWJlciB2YXJpYWJsZXMgbXVzdCBtYXRjaCB0aGUgbGF5b3V0IG9mIFN0YXRpY0FTQ0lJTGl0ZXJh
bC4KICAgICB1bnNpZ25lZCBtX3JlZkNvdW50OwogICAgIHVuc2lnbmVkIG1fbGVuZ3RoOwogICAg
IHVuaW9uIHsKQEAgLTc4OSw2ICs4MTUsMjAgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIHVuc2ln
bmVkIG1faGFzaEFuZEZsYWdzOwogfTsKIAorQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFN0cmluZ0lt
cGwpID09IHNpemVvZihTdHJpbmdJbXBsOjpTdGF0aWNBU0NJSUxpdGVyYWwpLCBTdHJpbmdJbXBs
X3Nob3VsZF9tYXRjaF9pdHNfU3RhdGljQVNDSUlMaXRlcmFsKTsKKworI2lmICFBU1NFUlRfRElT
QUJMRUQKKy8vIFN0cmluZ0ltcGxzIGNyZWF0ZWQgZnJvbSBTdGF0aWNBU0NJSUxpdGVyYWwgd2ls
bCBBU1NFUlQKKy8vIGluIHRoZSBnZW5lcmljIFZhbHVlQ2hlY2s8VD46OmNoZWNrQ29uc2lzdGVu
Y3kKKy8vIGFzIHRoZXkgYXJlIG5vdCBhbGxvY2F0ZWQgYnkgZmFzdE1hbGxvYy4KKy8vIFdlIGRv
bid0IGN1cnJlbnRseSBoYXZlIGFueSB3YXkgdG8gZGV0ZWN0IHRoYXQgY2FzZQorLy8gc28gd2Ug
aWdub3JlIHRoZSBjb25zaXN0ZW5jeSBjaGVjayBmb3IgYWxsIFN0cmluZ0ltcGwqLgordGVtcGxh
dGU8PiBzdHJ1Y3QKK1ZhbHVlQ2hlY2s8U3RyaW5nSW1wbCo+IHsKKyAgICBzdGF0aWMgdm9pZCBj
aGVja0NvbnNpc3RlbmN5KGNvbnN0IFN0cmluZ0ltcGwqKSB7IH0KK307CisjZW5kaWYKKwogdGVt
cGxhdGUgPD4KIEFMV0FZU19JTkxJTkUgY29uc3QgTENoYXIqIFN0cmluZ0ltcGw6OmdldENoYXJh
Y3RlcnM8TENoYXI+KCkgY29uc3QgeyByZXR1cm4gY2hhcmFjdGVyczgoKTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA3NTliNGYwOGRmMjBlNTA0ODdmODVkNzI2NDJmMjNh
Y2JlMTRiMjliLi5mMDQyZGM0MjE4NTRiYzVhNjhiMjliYmIwYzJjYThkNTQxNTMxOTIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTgyNiw3ICs4MjYsNyBAQCBVc2VyQWdlbnRT
dHlsZVNoZWV0cy5oIDogY3NzL21ha2UtY3NzLWZpbGUtYXJyYXlzLnBsIGJpbmRpbmdzL3Njcmlw
dHMvcHJlcHJvY2VzcwogCiAjIC0tLS0tLS0tCiAKLVdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAg
V2ViS2l0Rm9udEZhbWlseU5hbWVzLmggOiBkb20vbWFrZV9uYW1lcy5wbCBjc3MvV2ViS2l0Rm9u
dEZhbWlseU5hbWVzLmluCitXZWJLaXRGb250RmFtaWx5TmFtZXMuY3BwIFdlYktpdEZvbnRGYW1p
bHlOYW1lcy5oIDogZG9tL21ha2VfbmFtZXMucGwgYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0g
YmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gY3NzL1dlYktpdEZvbnRGYW1pbHlOYW1l
cy5pbgogCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tZm9udHMgJChX
ZWJDb3JlKS9jc3MvV2ViS2l0Rm9udEZhbWlseU5hbWVzLmluCiAKICMgSFRNTCB0YWcgYW5kIGF0
dHJpYnV0ZSBuYW1lcwpAQCAtODczLDIyICs4NzMsMjIgQEAgZW5kaWYKIAogaWZkZWYgSFRNTF9G
TEFHUwogCi1IVE1MRWxlbWVudEZhY3RvcnkuY3BwIEhUTUxOYW1lcy5jcHAgOiBkb20vbWFrZV9u
YW1lcy5wbCBodG1sL0hUTUxUYWdOYW1lcy5pbiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgor
SFRNTEVsZW1lbnRGYWN0b3J5LmNwcCBIVE1MTmFtZXMuY3BwIDogZG9tL21ha2VfbmFtZXMucGwg
YmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcu
cG0gaHRtbC9IVE1MVGFnTmFtZXMuaW4gaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KIAlwZXJs
IC1JICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1s
L0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFt
ZXMuaW4gLS1mYWN0b3J5IC0td3JhcHBlckZhY3RvcnkgLS1leHRyYURlZmluZXMgIiQoSFRNTF9G
TEFHUykiCiAKIGVsc2UKIAotSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCBIVE1MTmFtZXMuY3BwIDog
ZG9tL21ha2VfbmFtZXMucGwgaHRtbC9IVE1MVGFnTmFtZXMuaW4gaHRtbC9IVE1MQXR0cmlidXRl
TmFtZXMuaW4KK0hUTUxFbGVtZW50RmFjdG9yeS5jcHAgSFRNTE5hbWVzLmNwcCA6IGRvbS9tYWtl
X25hbWVzLnBsIGJpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtIGJpbmRpbmdzL3NjcmlwdHMvU3Rh
dGljU3RyaW5nLnBtIGh0bWwvSFRNTFRhZ05hbWVzLmluIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluCiAJcGVybCAtSSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2Vi
Q29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0
dHJpYnV0ZU5hbWVzLmluIC0tZmFjdG9yeSAtLXdyYXBwZXJGYWN0b3J5CiAKIGVuZGlmCiAKIEpT
SFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgOiBIVE1MTmFtZXMuY3BwCiAKLVhNTE5TTmFt
ZXMuY3BwIDogZG9tL21ha2VfbmFtZXMucGwgeG1sL3htbG5zYXR0cnMuaW4KK1hNTE5TTmFtZXMu
Y3BwIDogZG9tL21ha2VfbmFtZXMucGwgYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gYmluZGlu
Z3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0geG1sL3htbG5zYXR0cnMuaW4KIAlwZXJsIC1JICQo
V2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkveG1sL3htbG5z
YXR0cnMuaW4KIAotWE1MTmFtZXMuY3BwIDogZG9tL21ha2VfbmFtZXMucGwgeG1sL3htbGF0dHJz
LmluCitYTUxOYW1lcy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCBiaW5kaW5ncy9zY3JpcHRzL0hh
c2hlci5wbSBiaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbSB4bWwveG1sYXR0cnMuaW4K
IAlwZXJsIC1JICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29y
ZSkveG1sL3htbGF0dHJzLmluCiAKICMgLS0tLS0tLS0KQEAgLTkwNywxOCArOTA3LDE4IEBAIGVu
ZGlmCiAKIGlmZGVmIFNWR19GTEFHUwogCi1TVkdFbGVtZW50RmFjdG9yeS5jcHAgU1ZHTmFtZXMu
Y3BwIDogZG9tL21ha2VfbmFtZXMucGwgc3ZnL3N2Z3RhZ3MuaW4gc3ZnL3N2Z2F0dHJzLmluCitT
VkdFbGVtZW50RmFjdG9yeS5jcHAgU1ZHTmFtZXMuY3BwIDogZG9tL21ha2VfbmFtZXMucGwgYmlu
ZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0g
c3ZnL3N2Z3RhZ3MuaW4gc3ZnL3N2Z2F0dHJzLmluCiAJcGVybCAtSSAkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAk
KFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbiAtLWV4dHJhRGVmaW5lcyAiJChTVkdfRkxBR1MpIiAt
LWZhY3RvcnkgLS13cmFwcGVyRmFjdG9yeQogZWxzZQogCi1TVkdFbGVtZW50RmFjdG9yeS5jcHAg
U1ZHTmFtZXMuY3BwIDogZG9tL21ha2VfbmFtZXMucGwgc3ZnL3N2Z3RhZ3MuaW4gc3ZnL3N2Z2F0
dHJzLmluCitTVkdFbGVtZW50RmFjdG9yeS5jcHAgU1ZHTmFtZXMuY3BwIDogZG9tL21ha2VfbmFt
ZXMucGwgYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNT
dHJpbmcucG0gc3ZnL3N2Z3RhZ3MuaW4gc3ZnL3N2Z2F0dHJzLmluCiAJcGVybCAtSSAkKFdlYkNv
cmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4g
LS1hdHRycyAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbiAtLWZhY3RvcnkgLS13cmFwcGVyRmFj
dG9yeQogCiBlbmRpZgogCiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgOiBTVkdOYW1l
cy5jcHAKIAotWExpbmtOYW1lcy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCBzdmcveGxpbmthdHRy
cy5pbgorWExpbmtOYW1lcy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCBiaW5kaW5ncy9zY3JpcHRz
L0hhc2hlci5wbSBiaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbSBzdmcveGxpbmthdHRy
cy5pbgogCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChX
ZWJDb3JlKS9zdmcveGxpbmthdHRycy5pbgogCiAjIC0tLS0tLS0tCkBAIC05MzgsNyArOTM4LDcg
QEAgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uLmNwcCBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24u
aCBFeGNlcHRpb25IZWFkZXJzLmggRXhjZXAKIAogIyBNYXRoTUwgdGFnIGFuZCBhdHRyaWJ1dGUg
bmFtZXMsIGFuZCBlbGVtZW50IGZhY3RvcnkKIAotTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwIE1h
dGhNTE5hbWVzLmNwcCA6IGRvbS9tYWtlX25hbWVzLnBsIG1hdGhtbC9tYXRodGFncy5pbiBtYXRo
bWwvbWF0aGF0dHJzLmluCitNYXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgTWF0aE1MTmFtZXMuY3Bw
IDogZG9tL21ha2VfbmFtZXMucGwgYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gYmluZGluZ3Mv
c2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gbWF0aG1sL21hdGh0YWdzLmluIG1hdGhtbC9tYXRoYXR0
cnMuaW4KIAlwZXJsIC1JICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChX
ZWJDb3JlKS9tYXRobWwvbWF0aHRhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUpL21hdGhtbC9tYXRo
YXR0cnMuaW4gLS1mYWN0b3J5IC0td3JhcHBlckZhY3RvcnkKIAogIyAtLS0tLS0tLQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQppbmRleCAwYmE1NTdkNTg0ZTdhMzQ3YzA4NDBiOTIxOTA4MDI2MTg1MGI3NWFl
Li4zNTJjZGNhYmJjZTMxYjc0N2ZhMDcyYmNhMTNkOGY3ODYyODAwZjg3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQpAQCAtMTQ1LDcgKzE0NSw3IEBAICQoR0VOU09VUkNFU19XRUJDT1JFKS9YUGF0aEdy
YW1tYXIuY3BwOiAkKFdlYkNvcmUpL3htbC9YUGF0aEdyYW1tYXIueQogIyBNYXRoTUwgdGFnIGFu
ZCBhdHRyaWJ1dGUgbmFtZXMsIGFuZCBlbGVtZW50IGZhY3RvcnkKIERlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvTWF0aE1MRWxlbWVudEZhY3RvcnkuaDogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9NYXRo
TUxFbGVtZW50RmFjdG9yeS5jcHAKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvTWF0aE1MTmFtZXMu
aDogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9NYXRoTUxOYW1lcy5jcHAKLURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
TWF0aE1MTmFtZXMuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkv
bWF0aG1sL21hdGh0YWdzLmluICQoV2ViQ29yZSkvbWF0aG1sL21hdGhhdHRycy5pbgorRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9NYXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9NYXRoTUxOYW1lcy5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbSAkKFdlYkNvcmUpL2JpbmRpbmdzL3Nj
cmlwdHMvU3RhdGljU3RyaW5nLnBtICQoV2ViQ29yZSkvbWF0aG1sL21hdGh0YWdzLmluICQoV2Vi
Q29yZSkvbWF0aG1sL21hdGhhdHRycy5pbgogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9tYXRobWwvbWF0aHRhZ3Mu
aW4gLS1hdHRycyAkKFdlYkNvcmUpL21hdGhtbC9tYXRoYXR0cnMuaW4gLS1mYWN0b3J5IC0td3Jh
cHBlckZhY3RvcnkgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAogIyAtLS0t
CkBAIC0xOTAsMTMgKzE5MCwxMyBAQCBlbmRpZiAjIEVORF9FTkFCTEVfU1ZHCiAjIFNWRyB0YWcg
YW5kIGF0dHJpYnV0ZSBuYW1lcyAobmVlZCB0byBwYXNzIGFuIGV4dHJhIGZsYWcgaWYgc3ZnIGV4
cGVyaW1lbnRhbCBmZWF0dXJlcyBhcmUgZW5hYmxlZCkKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
U1ZHTmFtZXMuY3BwOiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL1NWR0VsZW1lbnRGYWN0b3J5LmNw
cAogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6
IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvU1ZHRWxlbWVudEZhY3RvcnkuY3BwCi1EZXJpdmVkU291
cmNlcy9XZWJDb3JlL1NWR0VsZW1lbnRGYWN0b3J5LmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9u
YW1lcy5wbCAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJz
LmluCitEZXJpdmVkU291cmNlcy9XZWJDb3JlL1NWR0VsZW1lbnRGYWN0b3J5LmNwcDogJChXZWJD
b3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVy
LnBtICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gJChXZWJDb3Jl
KS9zdmcvc3ZndGFncy5pbiAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbgogCSQoQU1fVl9HRU4p
JChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3Jl
KS9zdmcvc3ZndGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0tZXh0
cmFEZWZpbmVzICIkKGZlYXR1cmVfZGVmaW5lcykiIC0tZmFjdG9yeSAtLXdyYXBwZXJGYWN0b3J5
IC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVNfV0VCQ09SRSkiCiAKICMgZW5kIFNWRyBGZWF0dXJl
cwogCiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hMaW5rTmFtZXMuaDogRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9YTGlua05hbWVzLmNwcAotRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTGlua05hbWVz
LmNwcCA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9zdmcveGxpbmth
dHRycy5pbgorRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTGlua05hbWVzLmNwcCA6ICQoV2ViQ29y
ZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5w
bSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtICQoV2ViQ29yZSkv
c3ZnL3hsaW5rYXR0cnMuaW4KIAkkKEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIC0tb3V0
cHV0RGlyICIkKEdFTlNPVVJDRVNfV0VCQ09SRSkiCiAKIGlmIFVTRV9URVhUVVJFX01BUFBFUl9D
QUlSTwpAQCAtMjkzLDcgKzI5Myw3IEBAIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvVXNlckFnZW50
U3R5bGVTaGVldHMuaDogJChXZWJDb3JlKS9jc3MvbWFrZS1jc3MtZmlsZS1hcnJhCiAJJChBTV9W
X0dFTikkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8ICAtLWRlZmluZXMg
IiQoZmVhdHVyZV9kZWZpbmVzKSIgJEAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2VyQWdlbnRT
dHlsZVNoZWV0c0RhdGEuY3BwICQoVVNFUl9BR0VOVF9TVFlMRV9TSEVFVFMpCiAKIERlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvV2ViS2l0Rm9udEZhbWlseU5hbWVzLmNwcDogRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9XZWJLaXRGb250RmFtaWx5TmFtZXMuaAotRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9X
ZWJLaXRGb250RmFtaWx5TmFtZXMuaDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdl
YkNvcmUpL2Nzcy9XZWJLaXRGb250RmFtaWx5TmFtZXMuaW4KK0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvV2ViS2l0Rm9udEZhbWlseU5hbWVzLmg6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwg
JChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbSAkKFdlYkNvcmUpL2JpbmRpbmdz
L3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtICQoV2ViQ29yZSkvY3NzL1dlYktpdEZvbnRGYW1pbHlO
YW1lcy5pbgogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cyAkPCAtLWZvbnRzICQoV2ViQ29yZSkvY3NzL1dlYktpdEZvbnRGYW1pbHlOYW1lcy5pbiAtLW91
dHB1dERpciAiJChHRU5TT1VSQ0VTX1dFQkNPUkUpIgogCiAKQEAgLTMwMiwxNCArMzAyLDE0IEBA
IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDog
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ICiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxFbGVt
ZW50RmFjdG9yeS5jcHA6IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTEVsZW1lbnRGYWN0b3J5
LmgKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTEVsZW1lbnRGYWN0b3J5Lmg6IERlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSFRNTE5hbWVzLmNwcAogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1M
TmFtZXMuY3BwOiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxOYW1lcy5oCi1EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0hUTUxOYW1lcy5oOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQo
V2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1
dGVOYW1lcy5pbgorRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MTmFtZXMuaDogJChXZWJDb3Jl
KS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBt
ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gJChXZWJDb3JlKS9o
dG1sL0hUTUxUYWdOYW1lcy5pbiAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmlu
CiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0t
dGFncyAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9o
dG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiAtLWV4dHJhRGVmaW5lcyAiJChmZWF0dXJlX2RlZmlu
ZXMpIiAtLWZhY3RvcnkgLS13cmFwcGVyRmFjdG9yeSAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VT
X1dFQkNPUkUpIgogCiAKLURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTlNOYW1lcy5jcHAgRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOU05hbWVzLmg6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFt
ZXMucGwgJChXZWJDb3JlKS94bWwveG1sbnNhdHRycy5pbgorRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9YTUxOU05hbWVzLmNwcCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTE5TTmFtZXMuaDogJChX
ZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvSGFz
aGVyLnBtICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gJChXZWJD
b3JlKS94bWwveG1sbnNhdHRycy5pbgogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkv
YmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkveG1sL3htbG5zYXR0cnMuaW4g
LS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAotRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9YTUxOYW1lcy5jcHAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOYW1lcy5oOiAkKFdl
YkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmluCitEZXJp
dmVkU291cmNlcy9XZWJDb3JlL1hNTE5hbWVzLmNwcCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hN
TE5hbWVzLmg6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9iaW5kaW5n
cy9zY3JpcHRzL0hhc2hlci5wbSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3Ry
aW5nLnBtICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmluCiAJJChBTV9WX0dFTikkKFBFUkwpIC1J
JChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3JlKS94bWwveG1s
YXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAogRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9FdmVudEZhY3RvcnkuY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXZl
bnRIZWFkZXJzLmggRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FdmVudEludGVyZmFjZXMuaDogJChX
ZWJDb3JlKS9kb20vbWFrZV9ldmVudF9mYWN0b3J5LnBsICQoV2ViQ29yZSkvZG9tL0V2ZW50TmFt
ZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lw
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggZDNlOTE4MjY5
MTJlNDI2ZDQxMDQ3NmIxODA4NDIyYzI2NzY5YmRkOS4uZTYyZTYzM2ZiYjU3ZmZkYTNiMzM5YjUz
YTBjMTMzYWMwOTNhOTUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAv
V2ViQ29yZS5neXAKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAK
QEAgLTc0Niw2ICs3NDYsOCBAQAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzog
J0hUTUxOYW1lcycsCiAgICAgICAgICAgJ2lucHV0cyc6IFsKKyAgICAgICAgICAgICcuLi9iaW5k
aW5ncy9zY3JpcHRzL0hhc2hlci5wbScsCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0
cy9TdGF0aWNTdHJpbmcucG0nLAogICAgICAgICAgICAgJy4uL2RvbS9tYWtlX25hbWVzLnBsJywK
ICAgICAgICAgICAgICcuLi9odG1sL0hUTUxUYWdOYW1lcy5pbicsCiAgICAgICAgICAgICAnLi4v
aHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4nLApAQCAtNzczLDYgKzc3NSw4IEBACiAgICAgICAg
IHsKICAgICAgICAgICAnYWN0aW9uX25hbWUnOiAnV2ViS2l0Rm9udEZhbWlseU5hbWVzJywKICAg
ICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvSGFz
aGVyLnBtJywKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5w
bScsCiAgICAgICAgICAgICAnLi4vZG9tL21ha2VfbmFtZXMucGwnLAogICAgICAgICAgICAgJy4u
L2Nzcy9XZWJLaXRGb250RmFtaWx5TmFtZXMuaW4nLAogICAgICAgICAgIF0sCkBAIC03OTQsNiAr
Nzk4LDggQEAKICAgICAgICAgewogICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdTVkdOYW1lcycs
CiAgICAgICAgICAgJ2lucHV0cyc6IFsKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRz
L0hhc2hlci5wbScsCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJp
bmcucG0nLAogICAgICAgICAgICAgJy4uL2RvbS9tYWtlX25hbWVzLnBsJywKICAgICAgICAgICAg
ICcuLi9zdmcvc3ZndGFncy5pbicsCiAgICAgICAgICAgICAnLi4vc3ZnL3N2Z2F0dHJzLmluJywK
QEAgLTg4Miw2ICs4ODgsOCBAQAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzog
J01hdGhNTE5hbWVzJywKICAgICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAgJy4uL2Jp
bmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtJywKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3Jp
cHRzL1N0YXRpY1N0cmluZy5wbScsCiAgICAgICAgICAgICAnLi4vZG9tL21ha2VfbmFtZXMucGwn
LAogICAgICAgICAgICAgJy4uL21hdGhtbC9tYXRodGFncy5pbicsCiAgICAgICAgICAgICAnLi4v
bWF0aG1sL21hdGhhdHRycy5pbicsCkBAIC0xMDE2LDYgKzEwMjQsOCBAQAogICAgICAgICB7CiAg
ICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ1hMaW5rTmFtZXMnLAogICAgICAgICAgICdpbnB1dHMn
OiBbCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0nLAorICAgICAg
ICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtJywKICAgICAgICAgICAg
ICcuLi9kb20vbWFrZV9uYW1lcy5wbCcsCiAgICAgICAgICAgICAnLi4vc3ZnL3hsaW5rYXR0cnMu
aW4nLAogICAgICAgICAgIF0sCkBAIC0xMDM3LDYgKzEwNDcsOCBAQAogICAgICAgICB7CiAgICAg
ICAgICAgJ2FjdGlvbl9uYW1lJzogJ1hNTE5TTmFtZXMnLAogICAgICAgICAgICdpbnB1dHMnOiBb
CisgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0nLAorICAgICAgICAg
ICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtJywKICAgICAgICAgICAgICcu
Li9kb20vbWFrZV9uYW1lcy5wbCcsCiAgICAgICAgICAgICAnLi4veG1sL3htbG5zYXR0cnMuaW4n
LAogICAgICAgICAgIF0sCkBAIC0xMDU4LDYgKzEwNzAsOCBAQAogICAgICAgICB7CiAgICAgICAg
ICAgJ2FjdGlvbl9uYW1lJzogJ1hNTE5hbWVzJywKICAgICAgICAgICAnaW5wdXRzJzogWworICAg
ICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtJywKKyAgICAgICAgICAgICcu
Li9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbScsCiAgICAgICAgICAgICAnLi4vZG9t
L21ha2VfbmFtZXMucGwnLAogICAgICAgICAgICAgJy4uL3htbC94bWxhdHRycy5pbicsCiAgICAg
ICAgICAgXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMv
YWN0aW9uX21ha2VuYW1lcy5weSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMv
YWN0aW9uX21ha2VuYW1lcy5weQppbmRleCBhMWE0MTBmMWVhNTBjMzE1NDJlYWQ1MWJkM2FlMDQ2
ZTFjNWVjMTkzLi44MTNiODY0MTk2MzY2NmU2MmJkZjgyNzllMGFlOGFmZDU4YTEyMjZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9tYWtlbmFt
ZXMucHkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rpb25fbWFr
ZW5hbWVzLnB5CkBAIC0xMzEsNiArMTMxLDggQEAgZGVmIG1haW4oYXJncyk6CiAgICAgICAgICAg
ICBldmVudHNJbnB1dCA9IGlucHV0QWJzUG9zaXgKICAgICAgICAgZWxpZiBpbnB1dEJhc2VuYW1l
LmVuZHN3aXRoKCdOYW1lcy5pbicpOgogICAgICAgICAgICAgb3B0aW9ucy5hcHBlbmQoaW5wdXRB
YnNQb3NpeCkKKyAgICAgICAgZWxpZiBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCcucG0nKToKKyAg
ICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBhc3NlcnQgRmFs
c2UKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNT
dHJpbmcucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5w
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hMTBlM2M4MmY2YWE3ZWY2ZTg2ZjU1YTU2MjBkNDEyNWI1NWM2NmQ4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNT
dHJpbmcucG0KQEAgLTAsMCArMSw4NyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlLCBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorIyBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisjIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyMgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKworcGFja2FnZSBTdGF0
aWNTdHJpbmc7CisKK3VzZSBzdHJpY3Q7Cit1c2UgSGFzaGVyOworCitzdWIgR2VuZXJhdGVTdHJp
bmdzKCQpCit7CisgICAgbXkgJHN0cmluZ3NSZWYgPSBzaGlmdDsKKyAgICBteSAlc3RyaW5ncyA9
ICUkc3RyaW5nc1JlZjsKKworICAgIG15IEByZXN1bHQgPSAoKTsKKworICAgIHdoaWxlICggbXkg
KCRuYW1lLCAkdmFsdWUpID0gZWFjaCAlc3RyaW5ncyApIHsKKyAgICAgICAgcHVzaChAcmVzdWx0
LCAic3RhdGljIGNvbnN0IExDaGFyICR7bmFtZX1TdHJpbmc4W10gPSBcIiR7dmFsdWV9XCI7XG4i
KTsKKyAgICB9CisKKyAgICBwdXNoKEByZXN1bHQsICJcbiIpOworCisgICAgd2hpbGUgKCBteSAo
JG5hbWUsICR2YWx1ZSkgPSBlYWNoICVzdHJpbmdzICkgeworICAgICAgICBteSAkbGVuZ3RoID0g
bGVuZ3RoKCR2YWx1ZSk7CisgICAgICAgIG15ICRoYXNoID0gSGFzaGVyOjpHZW5lcmF0ZUhhc2hW
YWx1ZSgkdmFsdWUpOworICAgICAgICBwdXNoKEByZXN1bHQsIDw8RU5EKTsKK3N0YXRpYyBTdHJp
bmdJbXBsOjpTdGF0aWNBU0NJSUxpdGVyYWwgJHtuYW1lfURhdGEgPSB7CisgICAgU3RyaW5nSW1w
bDo6U3RhdGljQVNDSUlMaXRlcmFsOjpzX2luaXRpYWxSZWZDb3VudCwKKyAgICAkbGVuZ3RoLAor
ICAgICR7bmFtZX1TdHJpbmc4LAorICAgIDAsCisgICAgU3RyaW5nSW1wbDo6U3RhdGljQVNDSUlM
aXRlcmFsOjpzX2luaXRpYWxGbGFncyB8ICgke2hhc2h9IDw8IFN0cmluZ0ltcGw6OlN0YXRpY0FT
Q0lJTGl0ZXJhbDo6c19oYXNoU2hpZnQpCit9OworRU5ECisgICAgfQorCisgICAgcHVzaChAcmVz
dWx0LCAiXG4iKTsKKworICAgIHdoaWxlICggbXkgKCRuYW1lLCAkdmFsdWUpID0gZWFjaCAlc3Ry
aW5ncyApIHsKKyAgICAgICAgcHVzaChAcmVzdWx0LCAic3RhdGljIFN0cmluZ0ltcGwqICR7bmFt
ZX1JbXBsID0gcmVpbnRlcnByZXRfY2FzdDxTdHJpbmdJbXBsKj4oJiR7bmFtZX1EYXRhKTtcbiIp
OworICAgIH0KKworICAgIHB1c2goQHJlc3VsdCwgIlxuIik7CisKKyAgICByZXR1cm4gam9pbiAi
IiwgQHJlc3VsdDsKK30KKworc3ViIEdlbmVyYXRlU3RyaW5nQXNzZXJ0cygkKQoreworICAgIG15
ICRzdHJpbmdzUmVmID0gc2hpZnQ7CisgICAgbXkgJXN0cmluZ3MgPSAlJHN0cmluZ3NSZWY7CisK
KyAgICBteSBAcmVzdWx0ID0gKCk7CisKKyAgICBwdXNoKEByZXN1bHQsICIjaWZuZGVmIE5ERUJV
R1xuIik7CisKKyAgICB3aGlsZSAoIG15ICgkbmFtZSwgJHZhbHVlKSA9IGVhY2ggJXN0cmluZ3Mg
KSB7CisgICAgICAgIHB1c2goQHJlc3VsdCwgIiAgICAke25hbWV9SW1wbC0+YXNzZXJ0SGFzaElz
Q29ycmVjdCgpO1xuIik7CisgICAgfQorCisgICAgcHVzaChAcmVzdWx0LCAiI2VuZGlmIC8vIE5E
RUJVR1xuIik7CisKKyAgICBwdXNoKEByZXN1bHQsICJcbiIpOworCisgICAgcmV0dXJuIGpvaW4g
IiIsIEByZXN1bHQ7Cit9CisKKzE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVh
bGlmaWVkTmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKaW5k
ZXggZGU2MGJmYjA3ZTEyMjk4ZGJhZmYxZmFjNzc4ZDRlYTVkM2JiZDU4MS4uYjlkNTFlYjQ1N2Q3
ZjlhNGNhZmY2NGFhODM2OTcxNGFkNDliODQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1F1YWxpZmllZE5hbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWRO
YW1lLmNwcApAQCAtMTcyLDE2ICsxNzIsMTQgQEAgdW5zaWduZWQgUXVhbGlmaWVkTmFtZTo6UXVh
bGlmaWVkTmFtZUltcGw6OmNvbXB1dGVIYXNoKCkgY29uc3QKICAgICByZXR1cm4gaGFzaENvbXBv
bmVudHMoY29tcG9uZW50cyk7CiB9CiAKLXZvaWQgY3JlYXRlUXVhbGlmaWVkTmFtZSh2b2lkKiB0
YXJnZXRBZGRyZXNzLCBjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBuYW1lTGVuZ3RoLCBjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWVOYW1lc3BhY2UpCit2b2lkIGNyZWF0ZVF1YWxpZmllZE5hbWUo
dm9pZCogdGFyZ2V0QWRkcmVzcywgU3RyaW5nSW1wbCogbmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lTmFtZXNwYWNlKQogewotICAgIEF0b21pY1N0cmluZyBhdG9taWNOYW1lKG5hbWUsIG5h
bWVMZW5ndGgsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIG5ldyAo
cmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odGFyZ2V0QWRkcmVzcykpIFF1YWxpZmllZE5hbWUobnVs
bEF0b20sIGF0b21pY05hbWUsIG5hbWVOYW1lc3BhY2UpOworICAgIG5ldyAocmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4odGFyZ2V0QWRkcmVzcykpIFF1YWxpZmllZE5hbWUobnVsbEF0b20sIEF0b21p
Y1N0cmluZyhuYW1lKSwgbmFtZU5hbWVzcGFjZSk7CiB9CiAKLXZvaWQgY3JlYXRlUXVhbGlmaWVk
TmFtZSh2b2lkKiB0YXJnZXRBZGRyZXNzLCBjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBuYW1l
TGVuZ3RoKQordm9pZCBjcmVhdGVRdWFsaWZpZWROYW1lKHZvaWQqIHRhcmdldEFkZHJlc3MsIFN0
cmluZ0ltcGwqIG5hbWUpCiB7Ci0gICAgQXRvbWljU3RyaW5nIGF0b21pY05hbWUobmFtZSwgbmFt
ZUxlbmd0aCwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgbmV3IChy
ZWludGVycHJldF9jYXN0PHZvaWQqPih0YXJnZXRBZGRyZXNzKSkgUXVhbGlmaWVkTmFtZShudWxs
QXRvbSwgYXRvbWljTmFtZSwgbnVsbEF0b20pOworICAgIG5ldyAocmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4odGFyZ2V0QWRkcmVzcykpIFF1YWxpZmllZE5hbWUobnVsbEF0b20sIEF0b21pY1N0cmlu
ZyhuYW1lKSwgbnVsbEF0b20pOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUXVhbGlmaWVkTmFtZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaApp
bmRleCBjM2NkMjlmZGVjYWJjYWQ3MjAzNzNjNTc1MGE5NDg2ZDNmOWYxMDJkLi4zODY3MzE1NGE2
N2YxNjY4NGQzYjQ0ZjVkNTk5ZTY5N2RlODZkOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUXVhbGlmaWVkTmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWRO
YW1lLmgKQEAgLTE0NCw4ICsxNDQsOCBAQCBzdHJ1Y3QgUXVhbGlmaWVkTmFtZUhhc2ggewogICAg
IHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7
CiB9OwogCi12b2lkIGNyZWF0ZVF1YWxpZmllZE5hbWUodm9pZCogdGFyZ2V0QWRkcmVzcywgY29u
c3QgY2hhciogbmFtZSwgdW5zaWduZWQgbmFtZUxlbmd0aCk7Ci12b2lkIGNyZWF0ZVF1YWxpZmll
ZE5hbWUodm9pZCogdGFyZ2V0QWRkcmVzcywgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbmFt
ZUxlbmd0aCwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lTmFtZXNwYWNlKTsKK3ZvaWQgY3JlYXRl
UXVhbGlmaWVkTmFtZSh2b2lkKiB0YXJnZXRBZGRyZXNzLCBTdHJpbmdJbXBsKiBuYW1lKTsKK3Zv
aWQgY3JlYXRlUXVhbGlmaWVkTmFtZSh2b2lkKiB0YXJnZXRBZGRyZXNzLCBTdHJpbmdJbXBsKiBu
YW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVOYW1lc3BhY2UpOwogCiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dlYkNvcmUvZG9t
L21ha2VfbmFtZXMucGwKaW5kZXggYjkxMDNlNTRmZTE3N2ZmM2MxNTg4YzIxM2QwYTMxOTdmZTM4
ZjAwZi4uMDE3MDI3NTI3ZjNiMjdmNWUxNjIxODgwYjIxNWNmZWFmNmYzYTcyNyAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL21ha2VfbmFtZXMucGwKQEAgLTMxLDYgKzMxLDcgQEAKIAogdXNlIHN0cmljdDsKIAordXNl
IFN0YXRpY1N0cmluZzsKIHVzZSBDb25maWc7CiB1c2UgR2V0b3B0OjpMb25nOwogdXNlIEZpbGU6
OlBhdGg7CkBAIC01NCw2ICs1NSw3IEBAIG15ICVlbmFibGVkVGFncyA9ICgpOwogbXkgJWVuYWJs
ZWRBdHRycyA9ICgpOwogbXkgJWFsbFRhZ3MgPSAoKTsKIG15ICVhbGxBdHRycyA9ICgpOworbXkg
JWFsbFN0cmluZ3MgPSAoKTsKIG15ICVwYXJhbWV0ZXJzID0gKCk7CiBteSAkZXh0cmFEZWZpbmVz
ID0gMDsKIG15ICRpbml0RGVmYXVsdHMgPSAxOwpAQCAtMTE1LDE0ICsxMTcsMTkgQEAgaWYgKGxl
bmd0aCgkZm9udE5hbWVzSW4pKSB7CiAgICAgcHJpbnRMaWNlbnNlSGVhZGVyKCRGKTsKICAgICBw
cmludENwcEhlYWQoJEYsICJDU1MiLCAkZmFtaWx5TmFtZXNGaWxlQmFzZSwgIldURiIpOwogCisg
ICAgcHJpbnQgRiBTdGF0aWNTdHJpbmc6OkdlbmVyYXRlU3RyaW5ncyhcJXBhcmFtZXRlcnMpOwor
CiAgICAgd2hpbGUgKCBteSAoJG5hbWUsICRpZGVudGlmaWVyKSA9IGVhY2ggJXBhcmFtZXRlcnMg
KSB7CiAgICAgICAgIHByaW50IEYgIkRFRklORV9HTE9CQUwoQXRvbWljU3RyaW5nLCAkbmFtZSlc
biI7CiAgICAgfQogCiAgICAgcHJpbnRJbml0KCRGLCAwKTsKIAorICAgIHByaW50IEYgIlxuIjsK
KyAgICBwcmludCBGIFN0YXRpY1N0cmluZzo6R2VuZXJhdGVTdHJpbmdBc3NlcnRzKFwlcGFyYW1l
dGVycyk7CisKICAgICB3aGlsZSAoIG15ICgkbmFtZSwgJGlkZW50aWZpZXIpID0gZWFjaCAlcGFy
YW1ldGVycyApIHsKLSAgICAgICAgcHJpbnQgRiAiICAgIG5ldyAoKHZvaWQqKSYkbmFtZSkgQXRv
bWljU3RyaW5nKFwiJGlkZW50aWZpZXJcIik7XG4iOworICAgICAgICBwcmludCBGICIgICAgbmV3
ICgodm9pZCopJiRuYW1lKSBBdG9taWNTdHJpbmcoJHtuYW1lfUltcGwpO1xuIjsKICAgICB9CiAK
ICAgICBwcmludCBGICJ9XG59XG59XG4iOwpAQCAtMTM1LDExICsxNDIsMTMgQEAgZGllICJZb3Ug
bXVzdCBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBvZiAtLXRhZ3MgPGZpbGU+IG9yIC0tYXR0cnMgPGZp
bGU+IiB1bmxlc3MgKGwKIGlmIChsZW5ndGgoJHRhZ3NGaWxlKSkgewogICAgICVhbGxUYWdzID0g
JXtyZWFkVGFncygkdGFnc0ZpbGUsIDApfTsKICAgICAlZW5hYmxlZFRhZ3MgPSAle3JlYWRUYWdz
KCR0YWdzRmlsZSwgMSl9OworICAgIG5hbWVzVG9TdHJpbmdzKFwlYWxsVGFncywgXCVhbGxTdHJp
bmdzKTsKIH0KIAogaWYgKGxlbmd0aCgkYXR0cnNGaWxlKSkgewogICAgICVhbGxBdHRycyA9ICV7
cmVhZEF0dHJzKCRhdHRyc0ZpbGUsIDApfTsKICAgICAlZW5hYmxlZEF0dHJzID0gJXtyZWFkQXR0
cnMoJGF0dHJzRmlsZSwgMSl9OworICAgIG5hbWVzVG9TdHJpbmdzKFwlYWxsQXR0cnMsIFwlYWxs
U3RyaW5ncyk7CiB9CiAKIGRpZSAiWW91IG11c3Qgc3BlY2lmeSBhIG5hbWVzcGFjZSAoZS5nLiBT
VkcpIGZvciA8bmFtZXNwYWNlPk5hbWVzLmgiIHVubGVzcyAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9
OwpAQCAtMjEyLDYgKzIyMSwzMSBAQCBzdWIgZGVmYXVsdEludGVyZmFjZU5hbWUKIAogIyMjIFBh
cnNpbmcgaGFuZGxlcnMKIAorc3ViIHZhbHVlRm9yTmFtZQoreworICAgIG15ICRuYW1lID0gc2hp
ZnQ7CisgICAgbXkgJHZhbHVlID0gJGV4dGVuc2lvbkF0dHJzeyRuYW1lfTsKKworICAgIGlmICgh
JHZhbHVlKSB7CisgICAgICAgICR2YWx1ZSA9ICRuYW1lOworICAgICAgICAkdmFsdWUgPX4gcy9f
Ly0vZzsKKyAgICB9CisKKyAgICByZXR1cm4gJHZhbHVlOworfQorCitzdWIgbmFtZXNUb1N0cmlu
Z3MKK3sKKyAgICBteSAkbmFtZXNSZWYgPSBzaGlmdDsKKyAgICBteSAkc3RyaW5nc1JlZiA9IHNo
aWZ0OworCisgICAgbXkgJW5hbWVzID0gJSRuYW1lc1JlZjsKKworICAgIGZvciBteSAkbmFtZSAo
a2V5cyAlbmFtZXMpIHsKKyAgICAgICAgJHN0cmluZ3NSZWYtPnskbmFtZX0gPSB2YWx1ZUZvck5h
bWUoJG5hbWUpOworICAgIH0KK30KKwogc3ViIHRhZ3NIYW5kbGVyCiB7CiAgICAgbXkgKCR0YWcs
ICRwcm9wZXJ0eSwgJHZhbHVlKSA9IEBfOwpAQCAtNjM2LDYgKzY3MCw4IEBAIHN1YiBwcmludE5h
bWVzQ3BwRmlsZQogCiAgICAgcHJpbnQgRiAiREVGSU5FX0dMT0JBTChBdG9taWNTdHJpbmcsICR7
bG93ZXJOYW1lc3BhY2V9TmFtZXNwYWNlVVJJKVxuXG4iOwogCisgICAgcHJpbnQgRiBTdGF0aWNT
dHJpbmc6OkdlbmVyYXRlU3RyaW5ncyhcJWFsbFN0cmluZ3MpOworCiAgICAgaWYgKGtleXMgJWFs
bFRhZ3MpIHsKICAgICAgICAgcHJpbnQgRiAiLy8gVGFnc1xuIjsKICAgICAgICAgZm9yIG15ICRu
YW1lIChzb3J0IGtleXMgJWFsbFRhZ3MpIHsKQEAgLTY3Miw3ICs3MDgsMTAgQEAgc3ViIHByaW50
TmFtZXNDcHBGaWxlCiAgICAgcHJpbnQoRiAiICAgIEF0b21pY1N0cmluZyAke2xvd2VyTmFtZXNw
YWNlfU5TKFwiJHBhcmFtZXRlcnN7bmFtZXNwYWNlVVJJfVwiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTtcblxuIik7CiAKICAgICBwcmludChGICIgICAgLy8gTmFtZXNwYWNl
XG4iKTsKLSAgICBwcmludChGICIgICAgbmV3ICgodm9pZCopJiR7bG93ZXJOYW1lc3BhY2V9TmFt
ZXNwYWNlVVJJKSBBdG9taWNTdHJpbmcoJHtsb3dlck5hbWVzcGFjZX1OUyk7XG5cbiIpOworICAg
IHByaW50KEYgIiAgICBuZXcgKCh2b2lkKikmJHtsb3dlck5hbWVzcGFjZX1OYW1lc3BhY2VVUkkp
IEF0b21pY1N0cmluZygke2xvd2VyTmFtZXNwYWNlfU5TKTtcbiIpOworICAgIHByaW50KEYgIlxu
Iik7CisgICAgcHJpbnQgRiBTdGF0aWNTdHJpbmc6OkdlbmVyYXRlU3RyaW5nQXNzZXJ0cyhcJWFs
bFN0cmluZ3MpOworCiAgICAgaWYgKGtleXMgJWFsbFRhZ3MpIHsKICAgICAgICAgbXkgJHRhZ3NO
YW1lc3BhY2UgPSAkcGFyYW1ldGVyc3t0YWdzTnVsbE5hbWVzcGFjZX0gPyAibnVsbEF0b20iIDog
IiR7bG93ZXJOYW1lc3BhY2V9TlMiOwogICAgICAgICBwcmludERlZmluaXRpb25zKCRGLCBcJWFs
bFRhZ3MsICJ0YWdzIiwgJHRhZ3NOYW1lc3BhY2UpOwpAQCAtNzc0LDE3ICs4MTMsMTEgQEAgc3Vi
IHByaW50RGVmaW5pdGlvbnMKICAgICBwcmludCBGICIgICAgLy8gIiAuIHVjZmlyc3QoJHR5cGUp
IC4gIlxuIjsKIAogICAgIGZvciBteSAkbmFtZSAoc29ydCBrZXlzICUkbmFtZXNSZWYpIHsKLSAg
ICAgICAgbXkgJHJlYWxOYW1lID0gJGV4dGVuc2lvbkF0dHJzeyRuYW1lfTsKLSAgICAgICAgaWYg
KCEkcmVhbE5hbWUpIHsKLSAgICAgICAgICAgICRyZWFsTmFtZSA9ICRuYW1lOwotICAgICAgICAg
ICAgJHJlYWxOYW1lID1+IHMvXy8tL2c7Ci0gICAgICAgIH0KLQogICAgICAgICAjIFRvIGdlbmVy
YXRlIGxlc3MgY29kZSBpbiBpbml0KCksIHRoZSBjb21tb24gY2FzZSBvZiBudWxsQXRvbSBmb3Ig
dGhlIG5hbWVzcGFjZSwgd2UgY2FsbCBjcmVhdGVRdWFsaWZpZWROYW1lKCkgd2l0aG91dCBwYXNz
aW5nICRuYW1lc3BhY2VVUkkuCiAgICAgICAgIGlmICgkbmFtZXNwYWNlVVJJIGVxICJudWxsQXRv
bSIpIHsKLSAgICAgICAgICAgIHByaW50IEYgIiAgICBjcmVhdGVRdWFsaWZpZWROYW1lKCh2b2lk
KikmJG5hbWUiLCIke3Nob3J0Q2FtZWxUeXBlfSwgXCIkcmVhbE5hbWVcIiwgIiwgbGVuZ3RoICRy
ZWFsTmFtZSAsIik7XG4iOworICAgICAgICAgICAgcHJpbnQgRiAiICAgIGNyZWF0ZVF1YWxpZmll
ZE5hbWUoKHZvaWQqKSYkbmFtZSIsIiR7c2hvcnRDYW1lbFR5cGV9LCAke25hbWV9SW1wbCk7XG4i
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHJpbnQgRiAiICAgIGNyZWF0ZVF1YWxp
ZmllZE5hbWUoKHZvaWQqKSYkbmFtZSIsIiR7c2hvcnRDYW1lbFR5cGV9LCBcIiRyZWFsTmFtZVwi
LCAiLCBsZW5ndGggJHJlYWxOYW1lICwiLCAkbmFtZXNwYWNlVVJJKTtcbiI7CisgICAgICAgICAg
ICBwcmludCBGICIgICAgY3JlYXRlUXVhbGlmaWVkTmFtZSgodm9pZCopJiRuYW1lIiwiJHtzaG9y
dENhbWVsVHlwZX0sICR7bmFtZX1JbXBsLCAkbmFtZXNwYWNlVVJJKTtcbiI7CiAgICAgICAgIH0K
ICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194209</attachid>
            <date>2013-03-21 02:37:53 -0700</date>
            <delta_ts>2013-03-21 07:33:04 -0700</delta_ts>
            <desc>Forgot AtomicStringImpl</desc>
            <filename>bug-112831-20130321023343.patch</filename>
            <type>text/plain</type>
            <size>29253</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU0YTdjYmYwNzExZDA5MDU5YzJkZjJm
YmVmYmY0ZTU2MTI0ZDYzZDkuLjJmNTE0OTU5Y2JlODg4ZmFiZWI2MjliNmUzMTdjNzEzZDMzOTcw
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMDMtMjEgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBIVE1MTmFtZXMgc2hvdWxkIGNvbnN0cnVjdCBzdHJpbmdz
IGF0IGNvbXBpbGUgdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEyODMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAgIChTdHJpbmdJbXBsKToKKyAg
ICAgICAgKFN0YXRpY0FTQ0lJTGl0ZXJhbCk6CisgICAgICAgICAgICAtIFRoaXMgc3RydWN0IGxl
dHMgdXMgY29uc3RydWN0IFN0cmluZ0ltcGwgb2JqZWN0cyBhdCBjb21waWxlIHRpbWUuCisgICAg
ICAgIChXVEY6OlN0cmluZ0ltcGw6OmFzc2VydEhhc2hJc0NvcnJlY3QpOgorICAgICAgICAgICAg
LSBUaGlzIGZ1bmN0aW9uIGxldHMgdXMgc2FuaXR5IGNoZWNrIFN0cmluZ0ltcGwgb2JqZWN0cyBj
cmVhdGVkIGZyb20gU3RhdGljRGF0YS4KKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6ZmluZCk6
IFJlbW92ZSBhIHN0cmF5IDsKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6ZmluZElnbm9yaW5n
Q2FzZSk6IGRpdHRvCisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnN0YXJ0c1dpdGgpOiBkaXR0
bworICAgICAgICAoV1RGOjpWYWx1ZUNoZWNrPFN0cmluZ0ltcGwqPik6CisgICAgICAgICogd3Rm
L3RleHQvQXRvbWljU3RyaW5nSW1wbC5oOgorICAgICAgICAoV1RGOjpWYWx1ZUNoZWNrPEF0b21p
Y1N0cmluZ0ltcGwqPik6CisKIDIwMTMtMDMtMjAgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmll
dy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDY0
MTkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNmVmMmNlMTA1YWJlMmNlZDc2ZTRiYTE1MTBmNGEwZTlmYmEzN2Ji
Ny4uY2VlMjgzZDE1ODhkMmVmNWY1M2FmYzFkNmIwMTdhYWJjZWNkNmNkMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMyIEBACisyMDEzLTAzLTIxICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgSFRNTE5hbWVzIHNob3VsZCBjb25zdHJ1Y3Qgc3RyaW5ncyBhdCBjb21w
aWxlIHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMjgzMQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggdGVhY2hlcyBtYWtlX25hbWVzIGhvdyB0byBjb25zdHJ1Y3Qgc3RyaW5ncyBhdCBj
b21waWxlIHRpbWUsCisgICAgICAgIGVsaW1pbmF0aW5nIGEgbGFyZ2UgbnVtYmVyIG9mIHN0YXJ0
dXAgbWFsbG9jcy4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX21ha2VuYW1lcy5weToKKyAgICAgICAgICAg
IC0gVGVhY2ggdGhlIENocm9taXVtIGJ1aWxkIGhvdyB0byBkZWFsIHdpdGggUGVybCBtb2R1bGVz
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtOiBBZGRlZC4KKyAg
ICAgICAgICAgIC0gQSBQZXJsIG1vZHVsZSBmb3IgY29uc3RydWN0aW5nIHN0YXRpYyBzdHJpbmdz
LgorICAgICAgICAoR2VuZXJhdGVTdHJpbmdzKToKKyAgICAgICAgKEdlbmVyYXRlVmFsaWRhdGVT
dHJpbmdzKToKKyAgICAgICAgKiBkb20vUXVhbGlmaWVkTmFtZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVRdWFsaWZpZWROYW1lKToKKyAgICAgICAgICAgIC0gY3JlYXRlUXVhbGlmaWVk
TmFtZSBub3cgdGFrZXMgYW4gYWxyZWFkeS1jb25zdHJ1Y3RlZCBTdHJpbmdJbXBsCisgICAgICAg
ICAgICAgIG9iamVjdC4KKyAgICAgICAgKiBkb20vUXVhbGlmaWVkTmFtZS5oOgorICAgICAgICAq
IGRvbS9tYWtlX25hbWVzLnBsOgorICAgICAgICAodmFsdWVGb3JOYW1lKToKKyAgICAgICAgKG5h
bWVzVG9TdHJpbmdzKToKKyAgICAgICAgKHByaW50TmFtZXNDcHBGaWxlKToKKyAgICAgICAgKHBy
aW50RGVmaW5pdGlvbnMpOgorICAgICAgICAgICAgLSBUZWFjaCBtYWtlX25hbWVzIGhvdyB0byB1
c2UgU3RhdGljU3RyaW5nLnBtLgorCiAyMDEzLTAzLTIwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5y
ZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MTQ2NDE5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmdJbXBs
LmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZ0ltcGwuaAppbmRleCAwNzE2Mjc1
YThlYzgwNTkxMGU1MDhmYzNhYjVkMWE1MmM3NTEwMWE5Li44OTEwY2IyYTE4YzQ3NTEyZWJmOTkx
YTU1NTM5MWFhNzlmMzJmYTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21p
Y1N0cmluZ0ltcGwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZ0ltcGwu
aApAQCAtMzEsNiArMzEsMTggQEAgcHVibGljOgogICAgIEF0b21pY1N0cmluZ0ltcGwoKSA6IFN0
cmluZ0ltcGwoMCkge30KIH07CiAKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisvLyBBdG9taWNTdHJp
bmdJbXBscyBjcmVhdGVkIGZyb20gU3RhdGljQVNDSUlMaXRlcmFsIHdpbGwgQVNTRVJUCisvLyBp
biB0aGUgZ2VuZXJpYyBWYWx1ZUNoZWNrPFQ+OjpjaGVja0NvbnNpc3RlbmN5CisvLyBhcyB0aGV5
IGFyZSBub3QgYWxsb2NhdGVkIGJ5IGZhc3RNYWxsb2MuCisvLyBXZSBkb24ndCBjdXJyZW50bHkg
aGF2ZSBhbnkgd2F5IHRvIGRldGVjdCB0aGF0IGNhc2UKKy8vIHNvIHdlIGlnbm9yZSB0aGUgY29u
c2lzdGVuY3kgY2hlY2sgZm9yIGFsbCBBdG9taWNTdHJpbmdJbXBscyouCit0ZW1wbGF0ZTw+IHN0
cnVjdAorVmFsdWVDaGVjazxBdG9taWNTdHJpbmdJbXBsKj4geworICAgIHN0YXRpYyB2b2lkIGNo
ZWNrQ29uc2lzdGVuY3koY29uc3QgQXRvbWljU3RyaW5nSW1wbCopIHsgfQorfTsKKyNlbmRpZgor
CiB9CiAKIHVzaW5nIFdURjo6QXRvbWljU3RyaW5nSW1wbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmgKaW5kZXggZjFlYjY3MTc4YjI1Y2Q5ZDgxZDFmMjIwZWQzODJjZjYzYmE5OTE5My4uMjhkMzNi
ZDI3ZTY5MWUwZjVjMWUxZDlhOWM5YzI3MjkyOGJlM2JmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdJbXBsLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJ
bXBsLmgKQEAgLTY5MCwxMSArNjkwLDExIEBAIHB1YmxpYzoKICAgICBzaXplX3QgZmluZChVQ2hh
ciBjaGFyYWN0ZXIsIHVuc2lnbmVkIHN0YXJ0ID0gMCk7CiAgICAgV1RGX0VYUE9SVF9TVFJJTkdf
QVBJIHNpemVfdCBmaW5kKENoYXJhY3Rlck1hdGNoRnVuY3Rpb25QdHIsIHVuc2lnbmVkIGluZGV4
ID0gMCk7CiAgICAgc2l6ZV90IGZpbmQoY29uc3QgTENoYXIqLCB1bnNpZ25lZCBpbmRleCA9IDAp
OwotICAgIEFMV0FZU19JTkxJTkUgc2l6ZV90IGZpbmQoY29uc3QgY2hhciogcywgdW5zaWduZWQg
aW5kZXggPSAwKSB7IHJldHVybiBmaW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihz
KSwgaW5kZXgpOyB9OworICAgIEFMV0FZU19JTkxJTkUgc2l6ZV90IGZpbmQoY29uc3QgY2hhciog
cywgdW5zaWduZWQgaW5kZXggPSAwKSB7IHJldHVybiBmaW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPihzKSwgaW5kZXgpOyB9CiAgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIHNpemVf
dCBmaW5kKFN0cmluZ0ltcGwqKTsKICAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkgc2l6ZV90IGZp
bmQoU3RyaW5nSW1wbCosIHVuc2lnbmVkIGluZGV4KTsKICAgICBzaXplX3QgZmluZElnbm9yaW5n
Q2FzZShjb25zdCBMQ2hhciosIHVuc2lnbmVkIGluZGV4ID0gMCk7Ci0gICAgQUxXQVlTX0lOTElO
RSBzaXplX3QgZmluZElnbm9yaW5nQ2FzZShjb25zdCBjaGFyKiBzLCB1bnNpZ25lZCBpbmRleCA9
IDApIHsgcmV0dXJuIGZpbmRJZ25vcmluZ0Nhc2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KHMpLCBpbmRleCk7IH07CisgICAgQUxXQVlTX0lOTElORSBzaXplX3QgZmluZElnbm9yaW5n
Q2FzZShjb25zdCBjaGFyKiBzLCB1bnNpZ25lZCBpbmRleCA9IDApIHsgcmV0dXJuIGZpbmRJZ25v
cmluZ0Nhc2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KHMpLCBpbmRleCk7IH0KICAg
ICBXVEZfRVhQT1JUX1NUUklOR19BUEkgc2l6ZV90IGZpbmRJZ25vcmluZ0Nhc2UoU3RyaW5nSW1w
bCosIHVuc2lnbmVkIGluZGV4ID0gMCk7CiAKICAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkgc2l6
ZV90IHJldmVyc2VGaW5kTGluZVRlcm1pbmF0b3IodW5zaWduZWQgaW5kZXggPSBVSU5UX01BWCk7
CkBAIC03MDYsNyArNzA2LDcgQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBi
b29sIHN0YXJ0c1dpdGgoVUNoYXIpIGNvbnN0OwogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBi
b29sIHN0YXJ0c1dpdGgoY29uc3QgY2hhciosIHVuc2lnbmVkIG1hdGNoTGVuZ3RoLCBib29sIGNh
c2VTZW5zaXRpdmUpIGNvbnN0OwogICAgIHRlbXBsYXRlPHVuc2lnbmVkIG1hdGNoTGVuZ3RoPgot
ICAgIGJvb2wgc3RhcnRzV2l0aChjb25zdCBjaGFyICgmcHJlZml4KVttYXRjaExlbmd0aF0sIGJv
b2wgY2FzZVNlbnNpdGl2ZSA9IHRydWUpIGNvbnN0IHsgcmV0dXJuIHN0YXJ0c1dpdGgocHJlZml4
LCBtYXRjaExlbmd0aCAtIDEsIGNhc2VTZW5zaXRpdmUpOyB9OworICAgIGJvb2wgc3RhcnRzV2l0
aChjb25zdCBjaGFyICgmcHJlZml4KVttYXRjaExlbmd0aF0sIGJvb2wgY2FzZVNlbnNpdGl2ZSA9
IHRydWUpIGNvbnN0IHsgcmV0dXJuIHN0YXJ0c1dpdGgocHJlZml4LCBtYXRjaExlbmd0aCAtIDEs
IGNhc2VTZW5zaXRpdmUpOyB9CiAKICAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkgYm9vbCBlbmRz
V2l0aChTdHJpbmdJbXBsKiwgYm9vbCBjYXNlU2Vuc2l0aXZlID0gdHJ1ZSk7CiAgICAgV1RGX0VY
UE9SVF9TVFJJTkdfQVBJIGJvb2wgZW5kc1dpdGgoVUNoYXIpIGNvbnN0OwpAQCAtNzcyLDYgKzc3
MiwzMiBAQCBwcml2YXRlOgogI2lmZGVmIFNUUklOR19TVEFUUwogICAgIFdURl9FWFBPUlREQVRB
IHN0YXRpYyBTdHJpbmdTdGF0cyBtX3N0cmluZ1N0YXRzOwogI2VuZGlmCisKK3B1YmxpYzoKKyAg
ICBzdHJ1Y3QgU3RhdGljQVNDSUlMaXRlcmFsIHsKKyAgICAgICAgLy8gVGhlc2UgbWVtYmVyIHZh
cmlhYmxlcyBtdXN0IG1hdGNoIHRoZSBsYXlvdXQgb2YgU3RyaW5nSW1wbC4KKyAgICAgICAgdW5z
aWduZWQgbV9yZWZDb3VudDsKKyAgICAgICAgdW5zaWduZWQgbV9sZW5ndGg7CisgICAgICAgIGNv
bnN0IExDaGFyKiBtX2RhdGE4OworICAgICAgICB2b2lkKiBtX2J1ZmZlcjsKKyAgICAgICAgdW5z
aWduZWQgbV9oYXNoQW5kRmxhZ3M7CisKKyAgICAgICAgLy8gVGhlc2UgdmFsdWVzIG1pbWljIENv
bnN0cnVjdEZyb21MaXRlcmFsLgorICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19pbml0
aWFsUmVmQ291bnQgPSBzX3JlZkNvdW50SW5jcmVtZW50OworICAgICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgc19pbml0aWFsRmxhZ3MgPSBzX2hhc2hGbGFnOEJpdEJ1ZmZlciB8IEJ1ZmZlcklu
dGVybmFsIHwgc19oYXNoRmxhZ0hhc1Rlcm1pbmF0aW5nTnVsbENoYXJhY3RlcjsKKyAgICAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfaGFzaFNoaWZ0ID0gc19mbGFnQ291bnQ7CisgICAgfTsK
KworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIGFzc2VydEhhc2hJc0NvcnJlY3QoKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKGhhc0hhc2goKSk7CisgICAgICAgIEFTU0VSVChleGlzdGluZ0hhc2go
KSA9PSBTdHJpbmdIYXNoZXI6OmNvbXB1dGVIYXNoQW5kTWFza1RvcDhCaXRzKGNoYXJhY3RlcnM4
KCksIGxlbmd0aCgpKSk7CisgICAgfQorI2VuZGlmCisKK3ByaXZhdGU6CisgICAgLy8gVGhlc2Ug
bWVtYmVyIHZhcmlhYmxlcyBtdXN0IG1hdGNoIHRoZSBsYXlvdXQgb2YgU3RhdGljQVNDSUlMaXRl
cmFsLgogICAgIHVuc2lnbmVkIG1fcmVmQ291bnQ7CiAgICAgdW5zaWduZWQgbV9sZW5ndGg7CiAg
ICAgdW5pb24gewpAQCAtNzg5LDYgKzgxNSwyMCBAQCBwcml2YXRlOgogICAgIG11dGFibGUgdW5z
aWduZWQgbV9oYXNoQW5kRmxhZ3M7CiB9OwogCitDT01QSUxFX0FTU0VSVChzaXplb2YoU3RyaW5n
SW1wbCkgPT0gc2l6ZW9mKFN0cmluZ0ltcGw6OlN0YXRpY0FTQ0lJTGl0ZXJhbCksIFN0cmluZ0lt
cGxfc2hvdWxkX21hdGNoX2l0c19TdGF0aWNBU0NJSUxpdGVyYWwpOworCisjaWYgIUFTU0VSVF9E
SVNBQkxFRAorLy8gU3RyaW5nSW1wbHMgY3JlYXRlZCBmcm9tIFN0YXRpY0FTQ0lJTGl0ZXJhbCB3
aWxsIEFTU0VSVAorLy8gaW4gdGhlIGdlbmVyaWMgVmFsdWVDaGVjazxUPjo6Y2hlY2tDb25zaXN0
ZW5jeQorLy8gYXMgdGhleSBhcmUgbm90IGFsbG9jYXRlZCBieSBmYXN0TWFsbG9jLgorLy8gV2Ug
ZG9uJ3QgY3VycmVudGx5IGhhdmUgYW55IHdheSB0byBkZXRlY3QgdGhhdCBjYXNlCisvLyBzbyB3
ZSBpZ25vcmUgdGhlIGNvbnNpc3RlbmN5IGNoZWNrIGZvciBhbGwgU3RyaW5nSW1wbCouCit0ZW1w
bGF0ZTw+IHN0cnVjdAorVmFsdWVDaGVjazxTdHJpbmdJbXBsKj4geworICAgIHN0YXRpYyB2b2lk
IGNoZWNrQ29uc2lzdGVuY3koY29uc3QgU3RyaW5nSW1wbCopIHsgfQorfTsKKyNlbmRpZgorCiB0
ZW1wbGF0ZSA8PgogQUxXQVlTX0lOTElORSBjb25zdCBMQ2hhciogU3RyaW5nSW1wbDo6Z2V0Q2hh
cmFjdGVyczxMQ2hhcj4oKSBjb25zdCB7IHJldHVybiBjaGFyYWN0ZXJzOCgpOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDc1OWI0ZjA4ZGYyMGU1MDQ4N2Y4NWQ3MjY0MmYy
M2FjYmUxNGIyOWIuLmYwNDJkYzQyMTg1NGJjNWE2OGIyOWJiYjBjMmNhOGQ1NDE1MzE5MjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtODI2LDcgKzgyNiw3IEBAIFVzZXJBZ2Vu
dFN0eWxlU2hlZXRzLmggOiBjc3MvbWFrZS1jc3MtZmlsZS1hcnJheXMucGwgYmluZGluZ3Mvc2Ny
aXB0cy9wcmVwcm9jZXNzCiAKICMgLS0tLS0tLS0KIAotV2ViS2l0Rm9udEZhbWlseU5hbWVzLmNw
cCBXZWJLaXRGb250RmFtaWx5TmFtZXMuaCA6IGRvbS9tYWtlX25hbWVzLnBsIGNzcy9XZWJLaXRG
b250RmFtaWx5TmFtZXMuaW4KK1dlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAgV2ViS2l0Rm9udEZh
bWlseU5hbWVzLmggOiBkb20vbWFrZV9uYW1lcy5wbCBiaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5w
bSBiaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbSBjc3MvV2ViS2l0Rm9udEZhbWlseU5h
bWVzLmluCiAJcGVybCAtSSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1mb250cyAk
KFdlYkNvcmUpL2Nzcy9XZWJLaXRGb250RmFtaWx5TmFtZXMuaW4KIAogIyBIVE1MIHRhZyBhbmQg
YXR0cmlidXRlIG5hbWVzCkBAIC04NzMsMjIgKzg3MywyMiBAQCBlbmRpZgogCiBpZmRlZiBIVE1M
X0ZMQUdTCiAKLUhUTUxFbGVtZW50RmFjdG9yeS5jcHAgSFRNTE5hbWVzLmNwcCA6IGRvbS9tYWtl
X25hbWVzLnBsIGh0bWwvSFRNTFRhZ05hbWVzLmluIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmlu
CitIVE1MRWxlbWVudEZhY3RvcnkuY3BwIEhUTUxOYW1lcy5jcHAgOiBkb20vbWFrZV9uYW1lcy5w
bCBiaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbSBiaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmlu
Zy5wbSBodG1sL0hUTUxUYWdOYW1lcy5pbiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgogCXBl
cmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL2h0
bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVO
YW1lcy5pbiAtLWZhY3RvcnkgLS13cmFwcGVyRmFjdG9yeSAtLWV4dHJhRGVmaW5lcyAiJChIVE1M
X0ZMQUdTKSIKIAogZWxzZQogCi1IVE1MRWxlbWVudEZhY3RvcnkuY3BwIEhUTUxOYW1lcy5jcHAg
OiBkb20vbWFrZV9uYW1lcy5wbCBodG1sL0hUTUxUYWdOYW1lcy5pbiBodG1sL0hUTUxBdHRyaWJ1
dGVOYW1lcy5pbgorSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCBIVE1MTmFtZXMuY3BwIDogZG9tL21h
a2VfbmFtZXMucGwgYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0gYmluZGluZ3Mvc2NyaXB0cy9T
dGF0aWNTdHJpbmcucG0gaHRtbC9IVE1MVGFnTmFtZXMuaW4gaHRtbC9IVE1MQXR0cmlidXRlTmFt
ZXMuaW4KIAlwZXJsIC1JICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChX
ZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4gLS1mYWN0b3J5IC0td3JhcHBlckZhY3RvcnkKIAogZW5kaWYKIAog
SlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCA6IEhUTUxOYW1lcy5jcHAKIAotWE1MTlNO
YW1lcy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCB4bWwveG1sbnNhdHRycy5pbgorWE1MTlNOYW1l
cy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCBiaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbSBiaW5k
aW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbSB4bWwveG1sbnNhdHRycy5pbgogCXBlcmwgLUkg
JChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3JlKS94bWwveG1s
bnNhdHRycy5pbgogCi1YTUxOYW1lcy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCB4bWwveG1sYXR0
cnMuaW4KK1hNTE5hbWVzLmNwcCA6IGRvbS9tYWtlX25hbWVzLnBsIGJpbmRpbmdzL3NjcmlwdHMv
SGFzaGVyLnBtIGJpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtIHhtbC94bWxhdHRycy5p
bgogCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJD
b3JlKS94bWwveG1sYXR0cnMuaW4KIAogIyAtLS0tLS0tLQpAQCAtOTA3LDE4ICs5MDcsMTggQEAg
ZW5kaWYKIAogaWZkZWYgU1ZHX0ZMQUdTCiAKLVNWR0VsZW1lbnRGYWN0b3J5LmNwcCBTVkdOYW1l
cy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCBzdmcvc3ZndGFncy5pbiBzdmcvc3ZnYXR0cnMuaW4K
K1NWR0VsZW1lbnRGYWN0b3J5LmNwcCBTVkdOYW1lcy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCBi
aW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbSBiaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5w
bSBzdmcvc3ZndGFncy5pbiBzdmcvc3ZnYXR0cnMuaW4KIAlwZXJsIC1JICQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAtLWF0dHJz
ICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0tZXh0cmFEZWZpbmVzICIkKFNWR19GTEFHUyki
IC0tZmFjdG9yeSAtLXdyYXBwZXJGYWN0b3J5CiBlbHNlCiAKLVNWR0VsZW1lbnRGYWN0b3J5LmNw
cCBTVkdOYW1lcy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCBzdmcvc3ZndGFncy5pbiBzdmcvc3Zn
YXR0cnMuaW4KK1NWR0VsZW1lbnRGYWN0b3J5LmNwcCBTVkdOYW1lcy5jcHAgOiBkb20vbWFrZV9u
YW1lcy5wbCBiaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbSBiaW5kaW5ncy9zY3JpcHRzL1N0YXRp
Y1N0cmluZy5wbSBzdmcvc3ZndGFncy5pbiBzdmcvc3ZnYXR0cnMuaW4KIAlwZXJsIC1JICQoV2Vi
Q29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5p
biAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0tZmFjdG9yeSAtLXdyYXBwZXJG
YWN0b3J5CiAKIGVuZGlmCiAKIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCA6IFNWR05h
bWVzLmNwcAogCi1YTGlua05hbWVzLmNwcCA6IGRvbS9tYWtlX25hbWVzLnBsIHN2Zy94bGlua2F0
dHJzLmluCitYTGlua05hbWVzLmNwcCA6IGRvbS9tYWtlX25hbWVzLnBsIGJpbmRpbmdzL3Njcmlw
dHMvSGFzaGVyLnBtIGJpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtIHN2Zy94bGlua2F0
dHJzLmluCiAJcGVybCAtSSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1hdHRycyAk
KFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluCiAKICMgLS0tLS0tLS0KQEAgLTkzOCw3ICs5Mzgs
NyBAQCBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24uY3BwIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlv
bi5oIEV4Y2VwdGlvbkhlYWRlcnMuaCBFeGNlcAogCiAjIE1hdGhNTCB0YWcgYW5kIGF0dHJpYnV0
ZSBuYW1lcywgYW5kIGVsZW1lbnQgZmFjdG9yeQogCi1NYXRoTUxFbGVtZW50RmFjdG9yeS5jcHAg
TWF0aE1MTmFtZXMuY3BwIDogZG9tL21ha2VfbmFtZXMucGwgbWF0aG1sL21hdGh0YWdzLmluIG1h
dGhtbC9tYXRoYXR0cnMuaW4KK01hdGhNTEVsZW1lbnRGYWN0b3J5LmNwcCBNYXRoTUxOYW1lcy5j
cHAgOiBkb20vbWFrZV9uYW1lcy5wbCBiaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbSBiaW5kaW5n
cy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbSBtYXRobWwvbWF0aHRhZ3MuaW4gbWF0aG1sL21hdGhh
dHRycy5pbgogCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAk
KFdlYkNvcmUpL21hdGhtbC9tYXRodGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvbWF0aG1sL21h
dGhhdHRycy5pbiAtLWZhY3RvcnkgLS13cmFwcGVyRmFjdG9yeQogCiAjIC0tLS0tLS0tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCmluZGV4IDBiYTU1N2Q1ODRlN2EzNDdjMDg0MGI5MjE5MDgwMjYxODUwYjc1
YWUuLjM1MmNkY2FiYmNlMzFiNzQ3ZmEwNzJiY2ExM2Q4Zjc4NjI4MDBmODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCkBAIC0xNDUsNyArMTQ1LDcgQEAgJChHRU5TT1VSQ0VTX1dFQkNPUkUpL1hQYXRo
R3JhbW1hci5jcHA6ICQoV2ViQ29yZSkveG1sL1hQYXRoR3JhbW1hci55CiAjIE1hdGhNTCB0YWcg
YW5kIGF0dHJpYnV0ZSBuYW1lcywgYW5kIGVsZW1lbnQgZmFjdG9yeQogRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9NYXRoTUxFbGVtZW50RmFjdG9yeS5oOiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL01h
dGhNTEVsZW1lbnRGYWN0b3J5LmNwcAogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9NYXRoTUxOYW1l
cy5oOiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL01hdGhNTE5hbWVzLmNwcAotRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9NYXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9NYXRoTUxOYW1lcy5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3Jl
KS9tYXRobWwvbWF0aHRhZ3MuaW4gJChXZWJDb3JlKS9tYXRobWwvbWF0aGF0dHJzLmluCitEZXJp
dmVkU291cmNlcy9XZWJDb3JlL01hdGhNTEVsZW1lbnRGYWN0b3J5LmNwcCBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL01hdGhNTE5hbWVzLmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAk
KFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtICQoV2ViQ29yZSkvYmluZGluZ3Mv
c2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gJChXZWJDb3JlKS9tYXRobWwvbWF0aHRhZ3MuaW4gJChX
ZWJDb3JlKS9tYXRobWwvbWF0aGF0dHJzLmluCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChXZWJD
b3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL21hdGhtbC9tYXRodGFn
cy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvbWF0aG1sL21hdGhhdHRycy5pbiAtLWZhY3RvcnkgLS13
cmFwcGVyRmFjdG9yeSAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTX1dFQkNPUkUpIgogCiAjIC0t
LS0KQEAgLTE5MCwxMyArMTkwLDEzIEBAIGVuZGlmICMgRU5EX0VOQUJMRV9TVkcKICMgU1ZHIHRh
ZyBhbmQgYXR0cmlidXRlIG5hbWVzIChuZWVkIHRvIHBhc3MgYW4gZXh0cmEgZmxhZyBpZiBzdmcg
ZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkKQogRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9TVkdOYW1lcy5jcHA6IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvU1ZHRWxlbWVudEZhY3Rvcnku
Y3BwCiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNw
cDogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9TVkdFbGVtZW50RmFjdG9yeS5jcHAKLURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtl
X25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0
cnMuaW4KK0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOiAkKFdl
YkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9IYXNo
ZXIucG0gJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbSAkKFdlYkNv
cmUpL3N2Zy9zdmd0YWdzLmluICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluCiAJJChBTV9WX0dF
TikkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNv
cmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1l
eHRyYURlZmluZXMgIiQoZmVhdHVyZV9kZWZpbmVzKSIgLS1mYWN0b3J5IC0td3JhcHBlckZhY3Rv
cnkgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAogIyBlbmQgU1ZHIEZlYXR1
cmVzCiAKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWExpbmtOYW1lcy5oOiBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL1hMaW5rTmFtZXMuY3BwCi1EZXJpdmVkU291cmNlcy9XZWJDb3JlL1hMaW5rTmFt
ZXMuY3BwIDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3N2Zy94bGlu
a2F0dHJzLmluCitEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hMaW5rTmFtZXMuY3BwIDogJChXZWJD
b3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVy
LnBtICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gJChXZWJDb3Jl
KS9zdmcveGxpbmthdHRycy5pbgogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3hsaW5rYXR0cnMuaW4gLS1v
dXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAogaWYgVVNFX1RFWFRVUkVfTUFQUEVS
X0NBSVJPCkBAIC0yOTMsNyArMjkzLDcgQEAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2VyQWdl
bnRTdHlsZVNoZWV0cy5oOiAkKFdlYkNvcmUpL2Nzcy9tYWtlLWNzcy1maWxlLWFycmEKIAkkKEFN
X1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgIC0tZGVmaW5l
cyAiJChmZWF0dXJlX2RlZmluZXMpIiAkQCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL1VzZXJBZ2Vu
dFN0eWxlU2hlZXRzRGF0YS5jcHAgJChVU0VSX0FHRU5UX1NUWUxFX1NIRUVUUykKIAogRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9XZWJLaXRGb250RmFtaWx5TmFtZXMuY3BwOiBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL1dlYktpdEZvbnRGYW1pbHlOYW1lcy5oCi1EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L1dlYktpdEZvbnRGYW1pbHlOYW1lcy5oOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQo
V2ViQ29yZSkvY3NzL1dlYktpdEZvbnRGYW1pbHlOYW1lcy5pbgorRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9XZWJLaXRGb250RmFtaWx5TmFtZXMuaDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5w
bCAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtICQoV2ViQ29yZSkvYmluZGlu
Z3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0gJChXZWJDb3JlKS9jc3MvV2ViS2l0Rm9udEZhbWls
eU5hbWVzLmluCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3Jp
cHRzICQ8IC0tZm9udHMgJChXZWJDb3JlKS9jc3MvV2ViS2l0Rm9udEZhbWlseU5hbWVzLmluIC0t
b3V0cHV0RGlyICIkKEdFTlNPVVJDRVNfV0VCQ09SRSkiCiAKIApAQCAtMzAyLDE0ICszMDIsMTQg
QEAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3Bw
OiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0gKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTEVs
ZW1lbnRGYWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MRWxlbWVudEZhY3Rv
cnkuaAogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MRWxlbWVudEZhY3RvcnkuaDogRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9IVE1MTmFtZXMuY3BwCiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0hU
TUxOYW1lcy5jcHA6IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTE5hbWVzLmgKLURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSFRNTE5hbWVzLmg6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwg
JChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJp
YnV0ZU5hbWVzLmluCitEZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxOYW1lcy5oOiAkKFdlYkNv
cmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIu
cG0gJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbSAkKFdlYkNvcmUp
L2h0bWwvSFRNTFRhZ05hbWVzLmluICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMu
aW4KIAkkKEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwg
LS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdlYkNvcmUp
L2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0tZXh0cmFEZWZpbmVzICIkKGZlYXR1cmVfZGVm
aW5lcykiIC0tZmFjdG9yeSAtLXdyYXBwZXJGYWN0b3J5IC0tb3V0cHV0RGlyICIkKEdFTlNPVVJD
RVNfV0VCQ09SRSkiCiAKIAotRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOU05hbWVzLmNwcCBE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTE5TTmFtZXMuaDogJChXZWJDb3JlKS9kb20vbWFrZV9u
YW1lcy5wbCAkKFdlYkNvcmUpL3htbC94bWxuc2F0dHJzLmluCitEZXJpdmVkU291cmNlcy9XZWJD
b3JlL1hNTE5TTmFtZXMuY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTlNOYW1lcy5oOiAk
KFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9I
YXNoZXIucG0gJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0cmluZy5wbSAkKFdl
YkNvcmUpL3htbC94bWxuc2F0dHJzLmluCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChXZWJDb3Jl
KS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3JlKS94bWwveG1sbnNhdHRycy5p
biAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTX1dFQkNPUkUpIgogCi1EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL1hNTE5hbWVzLmNwcCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTE5hbWVzLmg6ICQo
V2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS94bWwveG1sYXR0cnMuaW4KK0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTmFtZXMuY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
WE1MTmFtZXMuaDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMvSGFzaGVyLnBtICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNT
dHJpbmcucG0gJChXZWJDb3JlKS94bWwveG1sYXR0cnMuaW4KIAkkKEFNX1ZfR0VOKSQoUEVSTCkg
LUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3htbC94
bWxhdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTX1dFQkNPUkUpIgogCiBEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0V2ZW50RmFjdG9yeS5jcHAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9F
dmVudEhlYWRlcnMuaCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0V2ZW50SW50ZXJmYWNlcy5oOiAk
KFdlYkNvcmUpL2RvbS9tYWtlX2V2ZW50X2ZhY3RvcnkucGwgJChXZWJDb3JlKS9kb20vRXZlbnRO
YW1lcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5n
eXAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCBkM2U5MTgy
NjkxMmU0MjZkNDEwNDc2YjE4MDg0MjJjMjY3NjliZGQ5Li5lNjJlNjMzZmJiNTdmZmRhM2IzMzli
NTNhMGMxMzNhYzA5M2E5NTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cC9XZWJDb3JlLmd5cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5
cApAQCAtNzQ2LDYgKzc0Niw4IEBACiAgICAgICAgIHsKICAgICAgICAgICAnYWN0aW9uX25hbWUn
OiAnSFRNTE5hbWVzJywKICAgICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAgJy4uL2Jp
bmRpbmdzL3NjcmlwdHMvSGFzaGVyLnBtJywKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3Jp
cHRzL1N0YXRpY1N0cmluZy5wbScsCiAgICAgICAgICAgICAnLi4vZG9tL21ha2VfbmFtZXMucGwn
LAogICAgICAgICAgICAgJy4uL2h0bWwvSFRNTFRhZ05hbWVzLmluJywKICAgICAgICAgICAgICcu
Li9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbicsCkBAIC03NzMsNiArNzc1LDggQEAKICAgICAg
ICAgewogICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdXZWJLaXRGb250RmFtaWx5TmFtZXMnLAog
ICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9I
YXNoZXIucG0nLAorICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5n
LnBtJywKICAgICAgICAgICAgICcuLi9kb20vbWFrZV9uYW1lcy5wbCcsCiAgICAgICAgICAgICAn
Li4vY3NzL1dlYktpdEZvbnRGYW1pbHlOYW1lcy5pbicsCiAgICAgICAgICAgXSwKQEAgLTc5NCw2
ICs3OTgsOCBAQAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ1NWR05hbWVz
JywKICAgICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3Njcmlw
dHMvSGFzaGVyLnBtJywKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL1N0YXRpY1N0
cmluZy5wbScsCiAgICAgICAgICAgICAnLi4vZG9tL21ha2VfbmFtZXMucGwnLAogICAgICAgICAg
ICAgJy4uL3N2Zy9zdmd0YWdzLmluJywKICAgICAgICAgICAgICcuLi9zdmcvc3ZnYXR0cnMuaW4n
LApAQCAtODgyLDYgKzg4OCw4IEBACiAgICAgICAgIHsKICAgICAgICAgICAnYWN0aW9uX25hbWUn
OiAnTWF0aE1MTmFtZXMnLAogICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAnLi4v
YmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0nLAorICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3Nj
cmlwdHMvU3RhdGljU3RyaW5nLnBtJywKICAgICAgICAgICAgICcuLi9kb20vbWFrZV9uYW1lcy5w
bCcsCiAgICAgICAgICAgICAnLi4vbWF0aG1sL21hdGh0YWdzLmluJywKICAgICAgICAgICAgICcu
Li9tYXRobWwvbWF0aGF0dHJzLmluJywKQEAgLTEwMTYsNiArMTAyNCw4IEBACiAgICAgICAgIHsK
ICAgICAgICAgICAnYWN0aW9uX25hbWUnOiAnWExpbmtOYW1lcycsCiAgICAgICAgICAgJ2lucHV0
cyc6IFsKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbScsCisgICAg
ICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0nLAogICAgICAgICAg
ICAgJy4uL2RvbS9tYWtlX25hbWVzLnBsJywKICAgICAgICAgICAgICcuLi9zdmcveGxpbmthdHRy
cy5pbicsCiAgICAgICAgICAgXSwKQEAgLTEwMzcsNiArMTA0Nyw4IEBACiAgICAgICAgIHsKICAg
ICAgICAgICAnYWN0aW9uX25hbWUnOiAnWE1MTlNOYW1lcycsCiAgICAgICAgICAgJ2lucHV0cyc6
IFsKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL0hhc2hlci5wbScsCisgICAgICAg
ICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9TdGF0aWNTdHJpbmcucG0nLAogICAgICAgICAgICAg
Jy4uL2RvbS9tYWtlX25hbWVzLnBsJywKICAgICAgICAgICAgICcuLi94bWwveG1sbnNhdHRycy5p
bicsCiAgICAgICAgICAgXSwKQEAgLTEwNTgsNiArMTA3MCw4IEBACiAgICAgICAgIHsKICAgICAg
ICAgICAnYWN0aW9uX25hbWUnOiAnWE1MTmFtZXMnLAogICAgICAgICAgICdpbnB1dHMnOiBbCisg
ICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9IYXNoZXIucG0nLAorICAgICAgICAgICAg
Jy4uL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5nLnBtJywKICAgICAgICAgICAgICcuLi9k
b20vbWFrZV9uYW1lcy5wbCcsCiAgICAgICAgICAgICAnLi4veG1sL3htbGF0dHJzLmluJywKICAg
ICAgICAgICBdLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0
cy9hY3Rpb25fbWFrZW5hbWVzLnB5IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0
cy9hY3Rpb25fbWFrZW5hbWVzLnB5CmluZGV4IGExYTQxMGYxZWE1MGMzMTU0MmVhZDUxYmQzYWUw
NDZlMWM1ZWMxOTMuLjgxM2I4NjQxOTYzNjY2ZTYyYmRmODI3OWUwYWU4YWZkNThhMTIyNmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX21ha2Vu
YW1lcy5weQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9t
YWtlbmFtZXMucHkKQEAgLTEzMSw2ICsxMzEsOCBAQCBkZWYgbWFpbihhcmdzKToKICAgICAgICAg
ICAgIGV2ZW50c0lucHV0ID0gaW5wdXRBYnNQb3NpeAogICAgICAgICBlbGlmIGlucHV0QmFzZW5h
bWUuZW5kc3dpdGgoJ05hbWVzLmluJyk6CiAgICAgICAgICAgICBvcHRpb25zLmFwcGVuZChpbnB1
dEFic1Bvc2l4KQorICAgICAgICBlbGlmIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJy5wbScpOgor
ICAgICAgICAgICAgY29udGludWUKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGFzc2VydCBG
YWxzZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL1N0YXRp
Y1N0cmluZy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvU3RhdGljU3RyaW5n
LnBtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmExMGUzYzgyZjZhYTdlZjZlODZmNTVhNTYyMGQ0MTI1YjU1YzY2ZDgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL1N0YXRp
Y1N0cmluZy5wbQpAQCAtMCwwICsxLDg3IEBACisjIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUs
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisjIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyMgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorIyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorCitwYWNrYWdlIFN0
YXRpY1N0cmluZzsKKwordXNlIHN0cmljdDsKK3VzZSBIYXNoZXI7CisKK3N1YiBHZW5lcmF0ZVN0
cmluZ3MoJCkKK3sKKyAgICBteSAkc3RyaW5nc1JlZiA9IHNoaWZ0OworICAgIG15ICVzdHJpbmdz
ID0gJSRzdHJpbmdzUmVmOworCisgICAgbXkgQHJlc3VsdCA9ICgpOworCisgICAgd2hpbGUgKCBt
eSAoJG5hbWUsICR2YWx1ZSkgPSBlYWNoICVzdHJpbmdzICkgeworICAgICAgICBwdXNoKEByZXN1
bHQsICJzdGF0aWMgY29uc3QgTENoYXIgJHtuYW1lfVN0cmluZzhbXSA9IFwiJHt2YWx1ZX1cIjtc
biIpOworICAgIH0KKworICAgIHB1c2goQHJlc3VsdCwgIlxuIik7CisKKyAgICB3aGlsZSAoIG15
ICgkbmFtZSwgJHZhbHVlKSA9IGVhY2ggJXN0cmluZ3MgKSB7CisgICAgICAgIG15ICRsZW5ndGgg
PSBsZW5ndGgoJHZhbHVlKTsKKyAgICAgICAgbXkgJGhhc2ggPSBIYXNoZXI6OkdlbmVyYXRlSGFz
aFZhbHVlKCR2YWx1ZSk7CisgICAgICAgIHB1c2goQHJlc3VsdCwgPDxFTkQpOworc3RhdGljIFN0
cmluZ0ltcGw6OlN0YXRpY0FTQ0lJTGl0ZXJhbCAke25hbWV9RGF0YSA9IHsKKyAgICBTdHJpbmdJ
bXBsOjpTdGF0aWNBU0NJSUxpdGVyYWw6OnNfaW5pdGlhbFJlZkNvdW50LAorICAgICRsZW5ndGgs
CisgICAgJHtuYW1lfVN0cmluZzgsCisgICAgMCwKKyAgICBTdHJpbmdJbXBsOjpTdGF0aWNBU0NJ
SUxpdGVyYWw6OnNfaW5pdGlhbEZsYWdzIHwgKCR7aGFzaH0gPDwgU3RyaW5nSW1wbDo6U3RhdGlj
QVNDSUlMaXRlcmFsOjpzX2hhc2hTaGlmdCkKK307CitFTkQKKyAgICB9CisKKyAgICBwdXNoKEBy
ZXN1bHQsICJcbiIpOworCisgICAgd2hpbGUgKCBteSAoJG5hbWUsICR2YWx1ZSkgPSBlYWNoICVz
dHJpbmdzICkgeworICAgICAgICBwdXNoKEByZXN1bHQsICJzdGF0aWMgU3RyaW5nSW1wbCogJHtu
YW1lfUltcGwgPSByZWludGVycHJldF9jYXN0PFN0cmluZ0ltcGwqPigmJHtuYW1lfURhdGEpO1xu
Iik7CisgICAgfQorCisgICAgcHVzaChAcmVzdWx0LCAiXG4iKTsKKworICAgIHJldHVybiBqb2lu
ICIiLCBAcmVzdWx0OworfQorCitzdWIgR2VuZXJhdGVTdHJpbmdBc3NlcnRzKCQpCit7CisgICAg
bXkgJHN0cmluZ3NSZWYgPSBzaGlmdDsKKyAgICBteSAlc3RyaW5ncyA9ICUkc3RyaW5nc1JlZjsK
KworICAgIG15IEByZXN1bHQgPSAoKTsKKworICAgIHB1c2goQHJlc3VsdCwgIiNpZm5kZWYgTkRF
QlVHXG4iKTsKKworICAgIHdoaWxlICggbXkgKCRuYW1lLCAkdmFsdWUpID0gZWFjaCAlc3RyaW5n
cyApIHsKKyAgICAgICAgcHVzaChAcmVzdWx0LCAiICAgICR7bmFtZX1JbXBsLT5hc3NlcnRIYXNo
SXNDb3JyZWN0KCk7XG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEByZXN1bHQsICIjZW5kaWYgLy8g
TkRFQlVHXG4iKTsKKworICAgIHB1c2goQHJlc3VsdCwgIlxuIik7CisKKyAgICByZXR1cm4gam9p
biAiIiwgQHJlc3VsdDsKK30KKworMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9R
dWFsaWZpZWROYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcApp
bmRleCBkZTYwYmZiMDdlMTIyOThkYmFmZjFmYWM3NzhkNGVhNWQzYmJkNTgxLi5iOWQ1MWViNDU3
ZDdmOWE0Y2FmZjY0YWE4MzY5NzE0YWQ0OWI4NDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmll
ZE5hbWUuY3BwCkBAIC0xNzIsMTYgKzE3MiwxNCBAQCB1bnNpZ25lZCBRdWFsaWZpZWROYW1lOjpR
dWFsaWZpZWROYW1lSW1wbDo6Y29tcHV0ZUhhc2goKSBjb25zdAogICAgIHJldHVybiBoYXNoQ29t
cG9uZW50cyhjb21wb25lbnRzKTsKIH0KIAotdm9pZCBjcmVhdGVRdWFsaWZpZWROYW1lKHZvaWQq
IHRhcmdldEFkZHJlc3MsIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIG5hbWVMZW5ndGgsIGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZU5hbWVzcGFjZSkKK3ZvaWQgY3JlYXRlUXVhbGlmaWVkTmFt
ZSh2b2lkKiB0YXJnZXRBZGRyZXNzLCBTdHJpbmdJbXBsKiBuYW1lLCBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWVOYW1lc3BhY2UpCiB7Ci0gICAgQXRvbWljU3RyaW5nIGF0b21pY05hbWUobmFtZSwg
bmFtZUxlbmd0aCwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgbmV3
IChyZWludGVycHJldF9jYXN0PHZvaWQqPih0YXJnZXRBZGRyZXNzKSkgUXVhbGlmaWVkTmFtZShu
dWxsQXRvbSwgYXRvbWljTmFtZSwgbmFtZU5hbWVzcGFjZSk7CisgICAgbmV3IChyZWludGVycHJl
dF9jYXN0PHZvaWQqPih0YXJnZXRBZGRyZXNzKSkgUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgQXRv
bWljU3RyaW5nKG5hbWUpLCBuYW1lTmFtZXNwYWNlKTsKIH0KIAotdm9pZCBjcmVhdGVRdWFsaWZp
ZWROYW1lKHZvaWQqIHRhcmdldEFkZHJlc3MsIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIG5h
bWVMZW5ndGgpCit2b2lkIGNyZWF0ZVF1YWxpZmllZE5hbWUodm9pZCogdGFyZ2V0QWRkcmVzcywg
U3RyaW5nSW1wbCogbmFtZSkKIHsKLSAgICBBdG9taWNTdHJpbmcgYXRvbWljTmFtZShuYW1lLCBu
YW1lTGVuZ3RoLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBuZXcg
KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHRhcmdldEFkZHJlc3MpKSBRdWFsaWZpZWROYW1lKG51
bGxBdG9tLCBhdG9taWNOYW1lLCBudWxsQXRvbSk7CisgICAgbmV3IChyZWludGVycHJldF9jYXN0
PHZvaWQqPih0YXJnZXRBZGRyZXNzKSkgUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgQXRvbWljU3Ry
aW5nKG5hbWUpLCBudWxsQXRvbSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9RdWFsaWZpZWROYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5o
CmluZGV4IGMzY2QyOWZkZWNhYmNhZDcyMDM3M2M1NzUwYTk0ODZkM2Y5ZjEwMmQuLjM4NjczMTU0
YTY3ZjE2Njg0ZDNiNDRmNWQ1OTllNjk3ZGU4NmQ4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9RdWFsaWZpZWROYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmll
ZE5hbWUuaApAQCAtMTQ0LDggKzE0NCw4IEBAIHN0cnVjdCBRdWFsaWZpZWROYW1lSGFzaCB7CiAg
ICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxz
ZTsKIH07CiAKLXZvaWQgY3JlYXRlUXVhbGlmaWVkTmFtZSh2b2lkKiB0YXJnZXRBZGRyZXNzLCBj
b25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBuYW1lTGVuZ3RoKTsKLXZvaWQgY3JlYXRlUXVhbGlm
aWVkTmFtZSh2b2lkKiB0YXJnZXRBZGRyZXNzLCBjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBu
YW1lTGVuZ3RoLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVOYW1lc3BhY2UpOwordm9pZCBjcmVh
dGVRdWFsaWZpZWROYW1lKHZvaWQqIHRhcmdldEFkZHJlc3MsIFN0cmluZ0ltcGwqIG5hbWUpOwor
dm9pZCBjcmVhdGVRdWFsaWZpZWROYW1lKHZvaWQqIHRhcmdldEFkZHJlc3MsIFN0cmluZ0ltcGwq
IG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZU5hbWVzcGFjZSk7CiAKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vbWFrZV9uYW1lcy5wbAppbmRleCBiOTEwM2U1NGZlMTc3ZmYzYzE1ODhjMjEzZDBhMzE5N2Zl
MzhmMDBmLi4wMTcwMjc1MjdmM2IyN2Y1ZTE2MjE4ODBiMjE1Y2ZlYWY2ZjNhNzI3IDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vbWFrZV9uYW1lcy5wbApAQCAtMzEsNiArMzEsNyBAQAogCiB1c2Ugc3RyaWN0OwogCit1
c2UgU3RhdGljU3RyaW5nOwogdXNlIENvbmZpZzsKIHVzZSBHZXRvcHQ6Okxvbmc7CiB1c2UgRmls
ZTo6UGF0aDsKQEAgLTU0LDYgKzU1LDcgQEAgbXkgJWVuYWJsZWRUYWdzID0gKCk7CiBteSAlZW5h
YmxlZEF0dHJzID0gKCk7CiBteSAlYWxsVGFncyA9ICgpOwogbXkgJWFsbEF0dHJzID0gKCk7Citt
eSAlYWxsU3RyaW5ncyA9ICgpOwogbXkgJXBhcmFtZXRlcnMgPSAoKTsKIG15ICRleHRyYURlZmlu
ZXMgPSAwOwogbXkgJGluaXREZWZhdWx0cyA9IDE7CkBAIC0xMTUsMTQgKzExNywxOSBAQCBpZiAo
bGVuZ3RoKCRmb250TmFtZXNJbikpIHsKICAgICBwcmludExpY2Vuc2VIZWFkZXIoJEYpOwogICAg
IHByaW50Q3BwSGVhZCgkRiwgIkNTUyIsICRmYW1pbHlOYW1lc0ZpbGVCYXNlLCAiV1RGIik7CiAK
KyAgICBwcmludCBGIFN0YXRpY1N0cmluZzo6R2VuZXJhdGVTdHJpbmdzKFwlcGFyYW1ldGVycyk7
CisKICAgICB3aGlsZSAoIG15ICgkbmFtZSwgJGlkZW50aWZpZXIpID0gZWFjaCAlcGFyYW1ldGVy
cyApIHsKICAgICAgICAgcHJpbnQgRiAiREVGSU5FX0dMT0JBTChBdG9taWNTdHJpbmcsICRuYW1l
KVxuIjsKICAgICB9CiAKICAgICBwcmludEluaXQoJEYsIDApOwogCisgICAgcHJpbnQgRiAiXG4i
OworICAgIHByaW50IEYgU3RhdGljU3RyaW5nOjpHZW5lcmF0ZVN0cmluZ0Fzc2VydHMoXCVwYXJh
bWV0ZXJzKTsKKwogICAgIHdoaWxlICggbXkgKCRuYW1lLCAkaWRlbnRpZmllcikgPSBlYWNoICVw
YXJhbWV0ZXJzICkgewotICAgICAgICBwcmludCBGICIgICAgbmV3ICgodm9pZCopJiRuYW1lKSBB
dG9taWNTdHJpbmcoXCIkaWRlbnRpZmllclwiKTtcbiI7CisgICAgICAgIHByaW50IEYgIiAgICBu
ZXcgKCh2b2lkKikmJG5hbWUpIEF0b21pY1N0cmluZygke25hbWV9SW1wbCk7XG4iOwogICAgIH0K
IAogICAgIHByaW50IEYgIn1cbn1cbn1cbiI7CkBAIC0xMzUsMTEgKzE0MiwxMyBAQCBkaWUgIllv
dSBtdXN0IHNwZWNpZnkgYXQgbGVhc3Qgb25lIG9mIC0tdGFncyA8ZmlsZT4gb3IgLS1hdHRycyA8
ZmlsZT4iIHVubGVzcyAobAogaWYgKGxlbmd0aCgkdGFnc0ZpbGUpKSB7CiAgICAgJWFsbFRhZ3Mg
PSAle3JlYWRUYWdzKCR0YWdzRmlsZSwgMCl9OwogICAgICVlbmFibGVkVGFncyA9ICV7cmVhZFRh
Z3MoJHRhZ3NGaWxlLCAxKX07CisgICAgbmFtZXNUb1N0cmluZ3MoXCVhbGxUYWdzLCBcJWFsbFN0
cmluZ3MpOwogfQogCiBpZiAobGVuZ3RoKCRhdHRyc0ZpbGUpKSB7CiAgICAgJWFsbEF0dHJzID0g
JXtyZWFkQXR0cnMoJGF0dHJzRmlsZSwgMCl9OwogICAgICVlbmFibGVkQXR0cnMgPSAle3JlYWRB
dHRycygkYXR0cnNGaWxlLCAxKX07CisgICAgbmFtZXNUb1N0cmluZ3MoXCVhbGxBdHRycywgXCVh
bGxTdHJpbmdzKTsKIH0KIAogZGllICJZb3UgbXVzdCBzcGVjaWZ5IGEgbmFtZXNwYWNlIChlLmcu
IFNWRykgZm9yIDxuYW1lc3BhY2U+TmFtZXMuaCIgdW5sZXNzICRwYXJhbWV0ZXJze25hbWVzcGFj
ZX07CkBAIC0yMTIsNiArMjIxLDMxIEBAIHN1YiBkZWZhdWx0SW50ZXJmYWNlTmFtZQogCiAjIyMg
UGFyc2luZyBoYW5kbGVycwogCitzdWIgdmFsdWVGb3JOYW1lCit7CisgICAgbXkgJG5hbWUgPSBz
aGlmdDsKKyAgICBteSAkdmFsdWUgPSAkZXh0ZW5zaW9uQXR0cnN7JG5hbWV9OworCisgICAgaWYg
KCEkdmFsdWUpIHsKKyAgICAgICAgJHZhbHVlID0gJG5hbWU7CisgICAgICAgICR2YWx1ZSA9fiBz
L18vLS9nOworICAgIH0KKworICAgIHJldHVybiAkdmFsdWU7Cit9CisKK3N1YiBuYW1lc1RvU3Ry
aW5ncworeworICAgIG15ICRuYW1lc1JlZiA9IHNoaWZ0OworICAgIG15ICRzdHJpbmdzUmVmID0g
c2hpZnQ7CisKKyAgICBteSAlbmFtZXMgPSAlJG5hbWVzUmVmOworCisgICAgZm9yIG15ICRuYW1l
IChrZXlzICVuYW1lcykgeworICAgICAgICAkc3RyaW5nc1JlZi0+eyRuYW1lfSA9IHZhbHVlRm9y
TmFtZSgkbmFtZSk7CisgICAgfQorfQorCiBzdWIgdGFnc0hhbmRsZXIKIHsKICAgICBteSAoJHRh
ZywgJHByb3BlcnR5LCAkdmFsdWUpID0gQF87CkBAIC02MzYsNiArNjcwLDggQEAgc3ViIHByaW50
TmFtZXNDcHBGaWxlCiAKICAgICBwcmludCBGICJERUZJTkVfR0xPQkFMKEF0b21pY1N0cmluZywg
JHtsb3dlck5hbWVzcGFjZX1OYW1lc3BhY2VVUkkpXG5cbiI7CiAKKyAgICBwcmludCBGIFN0YXRp
Y1N0cmluZzo6R2VuZXJhdGVTdHJpbmdzKFwlYWxsU3RyaW5ncyk7CisKICAgICBpZiAoa2V5cyAl
YWxsVGFncykgewogICAgICAgICBwcmludCBGICIvLyBUYWdzXG4iOwogICAgICAgICBmb3IgbXkg
JG5hbWUgKHNvcnQga2V5cyAlYWxsVGFncykgewpAQCAtNjcyLDcgKzcwOCwxMCBAQCBzdWIgcHJp
bnROYW1lc0NwcEZpbGUKICAgICBwcmludChGICIgICAgQXRvbWljU3RyaW5nICR7bG93ZXJOYW1l
c3BhY2V9TlMoXCIkcGFyYW1ldGVyc3tuYW1lc3BhY2VVUkl9XCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpO1xuXG4iKTsKIAogICAgIHByaW50KEYgIiAgICAvLyBOYW1lc3Bh
Y2VcbiIpOwotICAgIHByaW50KEYgIiAgICBuZXcgKCh2b2lkKikmJHtsb3dlck5hbWVzcGFjZX1O
YW1lc3BhY2VVUkkpIEF0b21pY1N0cmluZygke2xvd2VyTmFtZXNwYWNlfU5TKTtcblxuIik7Cisg
ICAgcHJpbnQoRiAiICAgIG5ldyAoKHZvaWQqKSYke2xvd2VyTmFtZXNwYWNlfU5hbWVzcGFjZVVS
SSkgQXRvbWljU3RyaW5nKCR7bG93ZXJOYW1lc3BhY2V9TlMpO1xuIik7CisgICAgcHJpbnQoRiAi
XG4iKTsKKyAgICBwcmludCBGIFN0YXRpY1N0cmluZzo6R2VuZXJhdGVTdHJpbmdBc3NlcnRzKFwl
YWxsU3RyaW5ncyk7CisKICAgICBpZiAoa2V5cyAlYWxsVGFncykgewogICAgICAgICBteSAkdGFn
c05hbWVzcGFjZSA9ICRwYXJhbWV0ZXJze3RhZ3NOdWxsTmFtZXNwYWNlfSA/ICJudWxsQXRvbSIg
OiAiJHtsb3dlck5hbWVzcGFjZX1OUyI7CiAgICAgICAgIHByaW50RGVmaW5pdGlvbnMoJEYsIFwl
YWxsVGFncywgInRhZ3MiLCAkdGFnc05hbWVzcGFjZSk7CkBAIC03NzQsMTcgKzgxMywxMSBAQCBz
dWIgcHJpbnREZWZpbml0aW9ucwogICAgIHByaW50IEYgIiAgICAvLyAiIC4gdWNmaXJzdCgkdHlw
ZSkgLiAiXG4iOwogCiAgICAgZm9yIG15ICRuYW1lIChzb3J0IGtleXMgJSRuYW1lc1JlZikgewot
ICAgICAgICBteSAkcmVhbE5hbWUgPSAkZXh0ZW5zaW9uQXR0cnN7JG5hbWV9OwotICAgICAgICBp
ZiAoISRyZWFsTmFtZSkgewotICAgICAgICAgICAgJHJlYWxOYW1lID0gJG5hbWU7Ci0gICAgICAg
ICAgICAkcmVhbE5hbWUgPX4gcy9fLy0vZzsKLSAgICAgICAgfQotCiAgICAgICAgICMgVG8gZ2Vu
ZXJhdGUgbGVzcyBjb2RlIGluIGluaXQoKSwgdGhlIGNvbW1vbiBjYXNlIG9mIG51bGxBdG9tIGZv
ciB0aGUgbmFtZXNwYWNlLCB3ZSBjYWxsIGNyZWF0ZVF1YWxpZmllZE5hbWUoKSB3aXRob3V0IHBh
c3NpbmcgJG5hbWVzcGFjZVVSSS4KICAgICAgICAgaWYgKCRuYW1lc3BhY2VVUkkgZXEgIm51bGxB
dG9tIikgewotICAgICAgICAgICAgcHJpbnQgRiAiICAgIGNyZWF0ZVF1YWxpZmllZE5hbWUoKHZv
aWQqKSYkbmFtZSIsIiR7c2hvcnRDYW1lbFR5cGV9LCBcIiRyZWFsTmFtZVwiLCAiLCBsZW5ndGgg
JHJlYWxOYW1lICwiKTtcbiI7CisgICAgICAgICAgICBwcmludCBGICIgICAgY3JlYXRlUXVhbGlm
aWVkTmFtZSgodm9pZCopJiRuYW1lIiwiJHtzaG9ydENhbWVsVHlwZX0sICR7bmFtZX1JbXBsKTtc
biI7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwcmludCBGICIgICAgY3JlYXRlUXVh
bGlmaWVkTmFtZSgodm9pZCopJiRuYW1lIiwiJHtzaG9ydENhbWVsVHlwZX0sIFwiJHJlYWxOYW1l
XCIsICIsIGxlbmd0aCAkcmVhbE5hbWUgLCIsICRuYW1lc3BhY2VVUkkpO1xuIjsKKyAgICAgICAg
ICAgIHByaW50IEYgIiAgICBjcmVhdGVRdWFsaWZpZWROYW1lKCh2b2lkKikmJG5hbWUiLCIke3No
b3J0Q2FtZWxUeXBlfSwgJHtuYW1lfUltcGwsICRuYW1lc3BhY2VVUkkpO1xuIjsKICAgICAgICAg
fQogICAgIH0KIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>