<?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>36734</bug_id>
          
          <creation_ts>2010-03-28 16:19:00 -0700</creation_ts>
          <short_desc>Implement symbolic CSS3 list-style-types</short_desc>
          <delta_ts>2010-08-28 08:26:50 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>42803</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>abarth</cc>
    
    <cc>adman.com</cc>
    
    <cc>bdakin</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>ian</cc>
    
    <cc>jwieczorek</cc>
    
    <cc>Ms2ger</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>205259</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-03-28 16:19:00 -0700</bug_when>
    <thetext>We should implement all of the symbolic CSS3 list-style-types as per section 4.5 of the CSS3 Lists module &lt;http://www.w3.org/TR/css3-lists/#symbolic&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205662</commentid>
    <comment_count>1</comment_count>
      <attachid>51965</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-03-29 14:17:11 -0700</bug_when>
    <thetext>Created attachment 51965
Patch with test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205665</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-29 14:23:15 -0700</bug_when>
    <thetext>Attachment 51965 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
File not a recognized type to check. Skipping: &quot;WebCore/css/CSSValueKeywords.in&quot;
File not a recognized type to check. Skipping: &quot;WebCore/inspector/front-end/SourceCSSTokenizer.re2js&quot;
WebCore/rendering/RenderListMarker.cpp:1048:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:1436:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205766</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-29 17:38:27 -0700</bug_when>
    <thetext>See bug 36724 for my ideas about how to make some text-only tests for list numbering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205767</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-29 17:39:03 -0700</bug_when>
    <thetext>Mac early warning system says there was a failure, but I don&apos;t see what the error was.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205775</commentid>
    <comment_count>5</comment_count>
      <attachid>51965</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-29 17:51:32 -0700</bug_when>
    <thetext>Comment on attachment 51965
Patch with test case

&gt; -        isNegativeNumber = true;
&gt; +        isNegativeNumber = type == SymbolicSequence ? false : true; // Symbolics cannot be negative.

For clarity I suggest writing either this:

    isNegativeNumber = type != SymbolicSequence; // Symbolics cannot be negative.

Or this:

    if (type != SymbolicSequence)
        isNegativeNumber = true; // Symbolics cannot be negative.

It seems to me that the ?: expression is too oblique. Especially &quot;? false : true&quot;, which is just a sideways way to write &quot;!&quot;.

Another way to do this is to let isNegativeNumber get set, and then change it below to:

    if (isNegativeNumber &amp;&amp; type != SymbolicSequence)
        letters[lettersSize - ++length] = hyphenMinus;

Because symbolics can indeed be negative. They just don&apos;t show a minus sign when they are.

&gt; +        unsigned numSymbols = ceil((double) (numberShadow + 1) / sequenceSize) - 1;

There is no need to involve floating point. The following expression gives the same result for all the positive numbers I tried:

    unsigned numSymbols = numberShadow / sequenceSize;

You should use that instead unless there&apos;s a reason not to.

&gt; +            width = m_text.isEmpty() ? 0 : font.width(m_text); // no suffix for these types

I don&apos;t think you need a special case here for the empty string.

&gt; +        case Asterisks:
&gt; +        case Footnotes: {
&gt; +            if (m_text.isEmpty())
&gt; +                return IntRect();
&gt; +            const Font&amp; font = style()-&gt;font();
&gt; +            return IntRect(x(), y() + font.ascent(), font.width(m_text), font.height());
&gt; +        }

I&apos;m not sure you need it here either.

review- for the gratuitous floating point</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205825</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-03-29 20:38:45 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 51965 [details])
&gt; &gt; -        isNegativeNumber = true;
&gt; &gt; +        isNegativeNumber = type == SymbolicSequence ? false : true; // Symbolics cannot be negative.
&gt; 
&gt; For clarity I suggest writing either this:
&gt; 
&gt;     isNegativeNumber = type != SymbolicSequence; // Symbolics cannot be
&gt; negative.
&gt; 
&gt; Or this:
&gt; 
&gt;     if (type != SymbolicSequence)
&gt;         isNegativeNumber = true; // Symbolics cannot be negative.
&gt; 
&gt; It seems to me that the ?: expression is too oblique. Especially &quot;? false :
&gt; true&quot;, which is just a sideways way to write &quot;!&quot;.
&gt; 
&gt; Another way to do this is to let isNegativeNumber get set, and then change it
&gt; below to:
&gt; 
&gt;     if (isNegativeNumber &amp;&amp; type != SymbolicSequence)
&gt;         letters[lettersSize - ++length] = hyphenMinus;

Will change, went with the last suggestion.

&gt; Because symbolics can indeed be negative. They just don&apos;t show a minus sign
&gt; when they are.
&gt; 
&gt; &gt; +        unsigned numSymbols = ceil((double) (numberShadow + 1) / sequenceSize) - 1;

&gt; 
&gt; There is no need to involve floating point. The following expression gives the
&gt; same result for all the positive numbers I tried:
&gt; 
&gt;     unsigned numSymbols = numberShadow / sequenceSize;

Will change.

&gt; 
&gt; You should use that instead unless there&apos;s a reason not to.
&gt; 
&gt; &gt; +            width = m_text.isEmpty() ? 0 : font.width(m_text); // no suffix for these types
&gt; 

Will change.

&gt; I don&apos;t think you need a special case here for the empty string.
&gt; 
&gt; &gt; +        case Asterisks:
&gt; &gt; +        case Footnotes: {
&gt; &gt; +            if (m_text.isEmpty())
&gt; &gt; +                return IntRect();
&gt; &gt; +            const Font&amp; font = style()-&gt;font();
&gt; &gt; +            return IntRect(x(), y() + font.ascent(), font.width(m_text), font.height());
&gt; &gt; +        }
&gt; 
&gt; I&apos;m not sure you need it here either.

Will change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205827</commentid>
    <comment_count>7</comment_count>
      <attachid>51998</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-03-29 20:44:42 -0700</bug_when>
    <thetext>Created attachment 51998
Patch with test case

Updated patch based on Darin&apos;s suggestions.

I am not marking this patch for review, yet, as I am looking into Darin&apos;s idea on how to make a text-only layout test for this.

Also, I am aware of the style issues. I suggest we do a stye clean-up patch either preceding or proceeding this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210404</commentid>
    <comment_count>8</comment_count>
      <attachid>51998</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-04-08 14:57:39 -0700</bug_when>
    <thetext>Comment on attachment 51998
Patch with test case

After looking over the discussion in bug #36724 which implied adding DRT support so that we can test using text-only tests, I suggest that we address this issue in a separate bug. I agree we should add this support since using render tree results seems unnecessary.

If Darin or anyone else feels that we should add DRT support/make it so that we can use text-only tests before proceeding with this patch then let me know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210406</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-08 15:02:35 -0700</bug_when>
    <thetext>Attachment 51998 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/rendering/RenderListMarker.cpp:1048:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:1436:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210439</commentid>
    <comment_count>10</comment_count>
    <who name="Jakub Wieczorek">jwieczorek</who>
    <bug_when>2010-04-08 15:37:29 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 51998 [details])
&gt; After looking over the discussion in bug #36724 which implied adding DRT
&gt; support so that we can test using text-only tests, I suggest that we address
&gt; this issue in a separate bug. I agree we should add this support since using
&gt; render tree results seems unnecessary.
&gt; 
&gt; If Darin or anyone else feels that we should add DRT support/make it so that we
&gt; can use text-only tests before proceeding with this patch then let me know.

FYI: Text-only test support for lists is being added as part of #37060.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210442</commentid>
    <comment_count>11</comment_count>
      <attachid>51998</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-04-08 15:41:55 -0700</bug_when>
    <thetext>Comment on attachment 51998
Patch with test case

Will update test case with the landing of bug #37060, which includes DRT support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255654</commentid>
    <comment_count>12</comment_count>
      <attachid>62485</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-07-23 22:02:26 -0700</bug_when>
    <thetext>Created attachment 62485
Patch with test case

With the resolution of Bug #42054, converted test case to text.

This patch depends on the changes to the JavaScript script LayoutTests/fast/lists/resources/dump-list.js in the patch &quot;[Patch] Part 1 of 2 (Updated tests and expected results)&quot; of Bug #42803.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255655</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-23 22:04:38 -0700</bug_when>
    <thetext>Attachment 62485 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/rendering/RenderListMarker.cpp:1050:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:1438:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255742</commentid>
    <comment_count>14</comment_count>
      <attachid>62485</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-24 12:52:25 -0700</bug_when>
    <thetext>Comment on attachment 62485
Patch with test case

&gt;      const int lettersSize = sizeof(number) * 8 + 1; // Binary is the worst case; requires one character per bit plus a minus sign.

The new symbols sequence is now the worst case, much worse than binary. If you don&apos;t change something there will be buffer overflow.

&gt; Index: LayoutTests/fast/lists/w3-css3-list-styles-symbolic-expected.txt
&gt; ===================================================================
&gt; --- LayoutTests/fast/lists/w3-css3-list-styles-symbolic-expected.txt	(revision 0)
&gt; +++ LayoutTests/fast/lists/w3-css3-list-styles-symbolic-expected.txt	(revision 0)
&gt; @@ -0,0 +1,13 @@
&gt; +CSS3 Symbolic list-style-type
&gt; +
&gt; +asterisks
&gt; +
&gt; +PASS
&gt; +PASS
&gt; +PASS
&gt; +footnotes
&gt; +
&gt; +PASS
&gt; +PASS
&gt; +PASS
&gt; +

Tests that just write out &quot;PASS PASS PASS&quot; are suboptimal. Can you change this test so the output makes it clearer what is going on?

Do we need some kind of limit? I&apos;m worried that you can generate millions of asterisks and cause problems that way. Some limit would prevent that possibility.

review- because I think this has a buffer overflow in it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255780</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-07-24 18:46:26 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 62485 [details])
&gt; &gt;      const int lettersSize = sizeof(number) * 8 + 1; // Binary is the worst case; requires one character per bit plus a minus sign.
&gt; 
&gt; The new symbols sequence is now the worst case, much worse than binary. If you don&apos;t change something there will be buffer overflow.

Thank you Darin for catching this issue. Will fix.

&gt; 
&gt; &gt; Index: LayoutTests/fast/lists/w3-css3-list-styles-symbolic-expected.txt
&gt; &gt; ===================================================================
&gt; &gt; --- LayoutTests/fast/lists/w3-css3-list-styles-symbolic-expected.txt	(revision 0)
&gt; &gt; +++ LayoutTests/fast/lists/w3-css3-list-styles-symbolic-expected.txt	(revision 0)
&gt; &gt; @@ -0,0 +1,13 @@
&gt; &gt; +CSS3 Symbolic list-style-type
&gt; &gt; +
&gt; &gt; +asterisks
&gt; &gt; +
&gt; &gt; +PASS
&gt; &gt; +PASS
&gt; [...]
&gt; 
&gt; Tests that just write out &quot;PASS PASS PASS&quot; are suboptimal. Can you change this test so the output makes it clearer what is going on?
&gt;

Sure.

We should also make this message more descriptive in the expected results for tests: w3-css3-list-styles-alphabetic.html and w3-css3-list-styles-numeric.html (included in the patch for Bug #42803). Instead of posting an updated patch for Bug #42803, I thought it would be easier to review just the change to the PASS message. So, I filed Bug #42938. 

I&apos;ll update the expected results in this patch to use the updated PASS message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258053</commentid>
    <comment_count>16</comment_count>
      <attachid>63028</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-07-29 21:30:49 -0700</bug_when>
    <thetext>Created attachment 63028
Patch with test case

I picked the upper bound for the length of a symbolic marker to be lettersSize := sizeof(int) * 8 + 1 characters (i.e. the number of characters to represent a binary number plus a minus sign). Currently, we use a fixed sized array, but we want to reconsider this and/or special-case symbolics which use more characters per ordinal than other list style types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258055</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-29 21:32:53 -0700</bug_when>
    <thetext>Attachment 63028 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/rendering/RenderListMarker.cpp:1053:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:1441:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258067</commentid>
    <comment_count>18</comment_count>
      <attachid>63028</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-29 23:18:48 -0700</bug_when>
    <thetext>Comment on attachment 63028
Patch with test case

&gt; +        unsigned numSymbols = (numberShadow / sequenceSize) % lettersSize;

This is unusual math, given that both numberShadow and lettersSize are int, not unsigned. You are testing it enough, I guess, but I worry since if it goes wrong we could have a buffer overrun.

Why is modulo the right thing to do? We want to go to zero symbols when we hit the maximum length? I would expect a computation involving min instead, and it would be more obvious that prevents the overrun.

I suppose having a maximum is good anyway to avoid crazy behavior, but if there was any argument in favor of supporting long symbolic sequences then I would suggest changing the code to heap allocate in the cases where necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258068</commentid>
    <comment_count>19</comment_count>
      <attachid>63028</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-07-29 23:22:21 -0700</bug_when>
    <thetext>Comment on attachment 63028
Patch with test case

Clearing review flag while I look into this further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264782</commentid>
    <comment_count>20</comment_count>
      <attachid>64434</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-08-14 19:53:25 -0700</bug_when>
    <thetext>Created attachment 64434
Patch with test case

Updated patch that substitutes a Vector&lt;UChar&gt; for the fixed sized stack-allocated array so that we can handle arbitrary length symbolics (up to architecture-specific size of int).

The spec. is unclear how we should handle a list with a symbolic list-style-type  and that has a starting ordinal of 0 or some x &lt; 0, where x is an integer. Currently, this patch outputs one symbol and |x| symbols for starting ordinals 0 and x &lt; 0, respectively. From the description of the alphabetic- and numeric- systems, the spec. seems to imply we should output decimal ordinals for these cases. I will try to contact Ian Hickson for his insight on these cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270305</commentid>
    <comment_count>21</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-08-26 21:26:54 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Created an attachment (id=64434) [details]
&gt; Patch with test case
&gt; 
&gt; Updated patch that substitutes a Vector&lt;UChar&gt; for the fixed sized stack-allocated array so that we can handle arbitrary length symbolics (up to architecture-specific size of int).
&gt; 
&gt; The spec. is unclear how we should handle a list with a symbolic list-style-type  and that has a starting ordinal of 0 or some x &lt; 0, where x is an integer. Currently, this patch outputs one symbol and |x| symbols for starting ordinals 0 and x &lt; 0, respectively. From the description of the alphabetic- and numeric- systems, the spec. seems to imply we should output decimal ordinals for these cases. I will try to contact Ian Hickson for his insight on these cases.

Spoke with Ian Hickson last weekend and he confirmed that we should fall back to the decimal list style for ordinals outside the representable range for a list style. In particular, for symbolic list style types we should fall back to the decimal list style for ordinals &lt;= 0.

Bug #44486 implemented the necessary support infrastructure to support the fall back to the decimal list style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270306</commentid>
    <comment_count>22</comment_count>
      <attachid>65675</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-08-26 21:27:37 -0700</bug_when>
    <thetext>Created attachment 65675
Patch with test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270307</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-26 21:32:14 -0700</bug_when>
    <thetext>Attachment 65675 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/rendering/RenderListMarker.cpp:1155:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:1543:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270585</commentid>
    <comment_count>24</comment_count>
      <attachid>65675</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-27 10:48:01 -0700</bug_when>
    <thetext>Comment on attachment 65675
Patch with test case

&gt; -static inline String toAlphabeticOrNumeric(int number, const UChar* sequence, int sequenceSize, SequenceType type)
&gt; +static inline String toSequence(int number, const UChar* sequence, unsigned sequenceSize, SequenceType type)

The code for SymbolicSequence seems to share almost nothing with the alphabetic and numeric sequences. The assertion needed is different, the buffer size needed is different, the loop is different. About the only thing that&apos;s shared is the code to subtract one from the passed-in number.

I suggest implementing toSymbolic without calling toAlphabeticOrNumeric. There&apos;s no meaningful code sharing here.

Everything else looks fine.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270592</commentid>
    <comment_count>25</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-08-27 11:00:09 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 65675 [details])
&gt; &gt; -static inline String toAlphabeticOrNumeric(int number, const UChar* sequence, int sequenceSize, SequenceType type)
&gt; &gt; +static inline String toSequence(int number, const UChar* sequence, unsigned sequenceSize, SequenceType type)
&gt; 
&gt; The code for SymbolicSequence seems to share almost nothing with the alphabetic and numeric sequences. The assertion needed is different, the buffer size needed is different, the loop is different. About the only thing that&apos;s shared is the code to subtract one from the passed-in number.

You&apos;re right. I will separate symbolics out from this function as its implementation has become disjoint. I&apos;ll leave the name of the function as toAlphabeticOrNumeric.

&gt; 
&gt; I suggest implementing toSymbolic without calling toAlphabeticOrNumeric. There&apos;s no meaningful code sharing here.
&gt;

Will do. 

&gt; Everything else looks fine.
&gt; 
&gt; r=me

Thank you for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270912</commentid>
    <comment_count>26</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-08-27 20:06:34 -0700</bug_when>
    <thetext>Committed r66296: &lt;http://trac.webkit.org/changeset/66296&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270928</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-27 22:21:48 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/66296 might have broken Qt Linux Release minimal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270967</commentid>
    <comment_count>28</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-28 02:41:43 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; http://trac.webkit.org/changeset/66296 might have broken Qt Linux Release minimal

Looks like it broke compile there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270990</commentid>
    <comment_count>29</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-08-28 08:26:50 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (In reply to comment #27)
&gt; &gt; http://trac.webkit.org/changeset/66296 might have broken Qt Linux Release minimal
&gt; 
&gt; Looks like it broke compile there.

From looking at the stdio output &lt;http://build.webkit.org/builders/Qt%20Linux%20Release%20minimal/builds/7850/steps/compile-webkit/logs/stdio&gt; the compile failed because the slave was lost: &quot;remoteFailed: [Failure instance: Traceback (failure with no frames): &lt;class &apos;twisted.internet.error.ConnectionLost&apos;&gt;: Connection to the other side was lost in a non-clean fashion.
]&quot;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51965</attachid>
            <date>2010-03-29 14:17:11 -0700</date>
            <delta_ts>2010-03-29 20:44:42 -0700</delta_ts>
            <desc>Patch with test case</desc>
            <filename>Bug36734.patch</filename>
            <type>text/plain</type>
            <size>24320</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjcwMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTAtMDMtMjggIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjczNAorCisgICAgICAgIEltcGxl
bWVudHMgYWxsIG9mIHRoZSBzeW1ib2xpYyBDU1MzIGxpc3Qtc3R5bGUtdHlwZXMgYXMgcGVyCisg
ICAgICAgIHNlY3Rpb24gNC41IG9mIHRoZSBDU1MzIExpc3RzIG1vZHVsZSA8aHR0cDovL3d3dy53
My5vcmcvVFIvY3NzMy1saXN0cy8jc3ltYm9saWM+LgorCisgICAgICAgIFRlc3Q6IGZhc3QvbGlz
dHMvdzMtY3NzMy1saXN0LXN0eWxlcy1zeW1ib2xpYy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUNTU1Rva2VuaXplci5y
ZTJqczoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6dG9TZXF1ZW5jZSk6IFJlbmFtZWQgKGZv
cm1lcmx5IHRvQWxwaGFiZXRpY09yTnVtZXJpYykuCisgICAgICAgIChXZWJDb3JlOjp0b1N5bWJv
bGljKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b0FscGhhYmV0aWMpOgorICAgICAgICAo
V2ViQ29yZTo6dG9OdW1lcmljKToKKyAgICAgICAgKFdlYkNvcmU6Omxpc3RNYXJrZXJTdWZmaXgp
OgorICAgICAgICAoV2ViQ29yZTo6bGlzdE1hcmtlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGlzdE1hcmtlcjo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdE1h
cmtlcjo6Y2FsY1ByZWZXaWR0aHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdE1hcmtl
cjo6Z2V0UmVsYXRpdmVNYXJrZXJSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisKIDIwMTAtMDMtMjgg
IExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpJbmRleDogV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWVNYXBwaW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlTWFwcGluZ3MuaAkocmV2aXNpb24gNTY2NzEpCisrKyBXZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1Niw2ICs5NTYsOSBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTCiAgICAgY2FzZSBBcm1lbmlhbjoK
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXJtZW5pYW47CiAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQXN0ZXJpc2tzOgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVB
c3Rlcmlza3M7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmluYXJ5TGlzdFN0eWxlOgogICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCaW5hcnk7CiAgICAgICAgIGJyZWFrOwpAQCAt
MTAzNyw2ICsxMDQwLDkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
UwogICAgIGNhc2UgRXRoaW9waWNIYWxlaGFtZVRpZzoKICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZVRpZzsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBG
b290bm90ZXM6CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZvb3Rub3RlczsKKyAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBHZW9yZ2lhbjoKICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlR2VvcmdpYW47CiAgICAgICAgIGJyZWFrOwpJbmRleDogV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdv
cmRzLmluCShyZXZpc2lvbiA1NjY3MSkKKysrIFdlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTI4OCw2ICsyODgsOCBAQCB0aWdyaW55YS1ldC1hYmVnZWRl
CiBldGhpb3BpYy1hYmVnZWRlLXRpLWV0CiB1cHBlci1ncmVlawogdXBwZXItbm9yd2VnaWFuCith
c3Rlcmlza3MKK2Zvb3Rub3RlcwogaGVicmV3CiBhcm1lbmlhbgogZ2VvcmdpYW4KSW5kZXg6IFdl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VDU1NUb2tlbml6ZXIucmUyanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUNTU1Rva2VuaXplci5y
ZTJqcwkocmV2aXNpb24gNTY2NzEpCisrKyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291
cmNlQ1NTVG9rZW5pemVyLnJlMmpzCSh3b3JraW5nIGNvcHkpCkBAIC05OCw3ICs5OCw3IEBAIFdl
Ykluc3BlY3Rvci5Tb3VyY2VDU1NUb2tlbml6ZXIgPSBmdW5jdGkKICAgICAKICAgICB0aGlzLl92
YWx1ZUtleXdvcmRzID0gWwogICAgICAgICAiYWJvdmUiLCAiYWJzb2x1dGUiLCAiYWN0aXZlYm9y
ZGVyIiwgImFjdGl2ZWNhcHRpb24iLCAiYWZhciIsICJhZnRlci13aGl0ZS1zcGFjZSIsICJhaGVh
ZCIsICJhbGlhcyIsICJhbGwiLCAiYWxsLXNjcm9sbCIsCi0gICAgICAgICJhbHRlcm5hdGUiLCAi
YWx3YXlzIiwiYW1oYXJpYyIsICJhbWhhcmljLWFiZWdlZGUiLCAiYW50aWFsaWFzZWQiLCAiYXBw
d29ya3NwYWNlIiwgImFxdWEiLCAiYXJhYmljLWluZGljIiwgImFybWVuaWFuIiwKKyAgICAgICAg
ImFsdGVybmF0ZSIsICJhbHdheXMiLCJhbWhhcmljIiwgImFtaGFyaWMtYWJlZ2VkZSIsICJhbnRp
YWxpYXNlZCIsICJhcHB3b3Jrc3BhY2UiLCAiYXF1YSIsICJhcmFiaWMtaW5kaWMiLCAiYXJtZW5p
YW4iLCAiYXN0ZXJpc2tzIiwKICAgICAgICAgImF1dG8iLCAiYXZvaWQiLCAiYmFja2dyb3VuZCIs
ICJiYWNrd2FyZHMiLCAiYmFzZWxpbmUiLCAiYmVsb3ciLCAiYmlkaS1vdmVycmlkZSIsICJiaW5h
cnkiLCAiYmVuZ2FsaSIsICJibGFjayIsICJibGluayIsCiAgICAgICAgICJibG9jayIsICJibG9j
ay1heGlzIiwgImJsdWUiLCAiYm9sZCIsICJib2xkZXIiLCAiYm9yZGVyIiwgImJvcmRlci1ib3gi
LCAiYm90aCIsICJib3R0b20iLCAiYnJlYWstYWxsIiwgImJyZWFrLXdvcmQiLCAiYnV0dG9uIiwK
ICAgICAgICAgImJ1dHRvbi1iZXZlbCIsICJidXR0b25mYWNlIiwgImJ1dHRvbmhpZ2hsaWdodCIs
ICJidXR0b25zaGFkb3ciLCAiYnV0dG9udGV4dCIsICJjYW1ib2RpYW4iLCAiY2FwaXRhbGl6ZSIs
ICJjYXBzLWxvY2staW5kaWNhdG9yIiwKQEAgLTExMSw3ICsxMTEsNyBAQCBXZWJJbnNwZWN0b3Iu
U291cmNlQ1NTVG9rZW5pemVyID0gZnVuY3RpCiAgICAgICAgICJldGhpb3BpYy1hYmVnZWRlLXRp
LWVyIiwgImV0aGlvcGljLWFiZWdlZGUtdGktZXQiLCAiZXRoaW9waWMtaGFsZWhhbWUtYWEtZXIi
LCAiZXRoaW9waWMtaGFsZWhhbWUtYWEtZXQiLAogICAgICAgICAiZXRoaW9waWMtaGFsZWhhbWUt
YW0tZXQiLCAiZXRoaW9waWMtaGFsZWhhbWUtZ2V6IiwgImV0aGlvcGljLWhhbGVoYW1lLW9tLWV0
IiwgImV0aGlvcGljLWhhbGVoYW1lLXNpZC1ldCIsCiAgICAgICAgICJldGhpb3BpYy1oYWxlaGFt
ZS1zby1ldCIsICJldGhpb3BpYy1oYWxlaGFtZS10aS1lciIsICJldGhpb3BpYy1oYWxlaGFtZS10
aS1ldCIsICJldGhpb3BpYy1oYWxlaGFtZS10aWciLCAiZXctcmVzaXplIiwgImV4cGFuZGVkIiwK
LSAgICAgICAgImV4dHJhLWNvbmRlbnNlZCIsICJleHRyYS1leHBhbmRlZCIsICJmYW50YXN5Iiwg
ImZhc3QiLCAiZmlsbCIsICJmaXhlZCIsICJmbGF0IiwgImZvcndhcmRzIiwgImZyb20iLCAiZnVj
aHNpYSIsICJnZW9tZXRyaWNQcmVjaXNpb24iLAorICAgICAgICAiZXh0cmEtY29uZGVuc2VkIiwg
ImV4dHJhLWV4cGFuZGVkIiwgImZhbnRhc3kiLCAiZmFzdCIsICJmaWxsIiwgImZpeGVkIiwgImZs
YXQiLCAiZm9vdG5vdGVzIiwgImZvcndhcmRzIiwgImZyb20iLCAiZnVjaHNpYSIsICJnZW9tZXRy
aWNQcmVjaXNpb24iLAogICAgICAgICAiZ2VvcmdpYW4iLCAiZ3JheSIsICJncmF5dGV4dCIsICJn
cmVlbiIsICJncmV5IiwgImdyb292ZSIsICJndWphcmF0aSIsICJndXJtdWtoaSIsICJoYW5kIiwg
Imhhbmd1bCIsICJoYW5ndWwtY29uc29uYW50IiwgImhlYnJldyIsICJoZWxwIiwKICAgICAgICAg
ImhpZGRlbiIsICJoaWRlIiwgImhpZ2hlciIsICJoaWdobGlnaHQiLCAiaGlnaGxpZ2h0dGV4dCIs
ICJoaXJhZ2FuYSIsICJoaXJhZ2FuYS1pcm9oYSIsICJob3Jpem9udGFsIiwgImhzbCIsICJoc2xh
IiwgImljb24iLCAiaWdub3JlIiwKICAgICAgICAgImluYWN0aXZlYm9yZGVyIiwgImluYWN0aXZl
Y2FwdGlvbiIsICJpbmFjdGl2ZWNhcHRpb250ZXh0IiwgImluZmluaXRlIiwgImluZm9iYWNrZ3Jv
dW5kIiwgImluZm90ZXh0IiwgImluaGVyaXQiLCAiaW5pdGlhbCIsICJpbmxpbmUiLApJbmRleDog
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAJKHJldmlzaW9uIDU2NjcxKQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBpbnQgY01hcmtlclBh
ZGRpbmcgPSA3OwogCi1lbnVtIFNlcXVlbmNlVHlwZSB7IE51bWVyaWNTZXF1ZW5jZSwgQWxwaGFi
ZXRpY1NlcXVlbmNlIH07CitlbnVtIFNlcXVlbmNlVHlwZSB7IEFscGhhYmV0aWNTZXF1ZW5jZSwg
TnVtZXJpY1NlcXVlbmNlLCBTeW1ib2xpY1NlcXVlbmNlIH07CiAKIHN0YXRpYyBTdHJpbmcgdG9S
b21hbihpbnQgbnVtYmVyLCBib29sIHVwcGVyKQogewpAQCAtODAsOSArODAsOSBAQCBzdGF0aWMg
U3RyaW5nIHRvUm9tYW4oaW50IG51bWJlciwgYm9vbCB1CiAgICAgcmV0dXJuIFN0cmluZygmbGV0
dGVyc1tsZXR0ZXJzU2l6ZSAtIGxlbmd0aF0sIGxlbmd0aCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
U3RyaW5nIHRvQWxwaGFiZXRpY09yTnVtZXJpYyhpbnQgbnVtYmVyLCBjb25zdCBVQ2hhciogc2Vx
dWVuY2UsIGludCBzZXF1ZW5jZVNpemUsIFNlcXVlbmNlVHlwZSB0eXBlKQorc3RhdGljIGlubGlu
ZSBTdHJpbmcgdG9TZXF1ZW5jZShpbnQgbnVtYmVyLCBjb25zdCBVQ2hhciogc2VxdWVuY2UsIGlu
dCBzZXF1ZW5jZVNpemUsIFNlcXVlbmNlVHlwZSB0eXBlKQogewotICAgIEFTU0VSVChzZXF1ZW5j
ZVNpemUgPj0gMik7CisgICAgQVNTRVJUKHNlcXVlbmNlU2l6ZSA+PSAodHlwZSA9PSBTeW1ib2xp
Y1NlcXVlbmNlID8gMSA6IDIpKTsKIAogICAgIGNvbnN0IGludCBsZXR0ZXJzU2l6ZSA9IHNpemVv
ZihudW1iZXIpICogOCArIDE7IC8vIEJpbmFyeSBpcyB0aGUgd29yc3QgY2FzZTsgcmVxdWlyZXMg
b25lIGNoYXJhY3RlciBwZXIgYml0IHBsdXMgYSBtaW51cyBzaWduLgogCkBAIC05NSwxNCArOTUs
MjAgQEAgc3RhdGljIGlubGluZSBTdHJpbmcgdG9BbHBoYWJldGljT3JOdW1lcgogICAgICAgICAt
LW51bWJlclNoYWRvdzsKICAgICB9IGVsc2UgaWYgKG51bWJlciA8IDApIHsKICAgICAgICAgbnVt
YmVyU2hhZG93ID0gLW51bWJlcjsKLSAgICAgICAgaXNOZWdhdGl2ZU51bWJlciA9IHRydWU7Cisg
ICAgICAgIGlzTmVnYXRpdmVOdW1iZXIgPSB0eXBlID09IFN5bWJvbGljU2VxdWVuY2UgPyBmYWxz
ZSA6IHRydWU7IC8vIFN5bWJvbGljcyBjYW5ub3QgYmUgbmVnYXRpdmUuCiAgICAgfQorICAgIGlm
ICh0eXBlID09IFN5bWJvbGljU2VxdWVuY2UgJiYgbnVtYmVyU2hhZG93ID4gMCkKKyAgICAgICAg
LS1udW1iZXJTaGFkb3c7CiAgICAgbGV0dGVyc1tsZXR0ZXJzU2l6ZSAtIDFdID0gc2VxdWVuY2Vb
bnVtYmVyU2hhZG93ICUgc2VxdWVuY2VTaXplXTsKICAgICBpbnQgbGVuZ3RoID0gMTsKIAogICAg
IGlmICh0eXBlID09IEFscGhhYmV0aWNTZXF1ZW5jZSkgewogICAgICAgICB3aGlsZSAoKG51bWJl
clNoYWRvdyAvPSBzZXF1ZW5jZVNpemUpID4gMCkKICAgICAgICAgICAgIGxldHRlcnNbbGV0dGVy
c1NpemUgLSArK2xlbmd0aF0gPSBzZXF1ZW5jZVtudW1iZXJTaGFkb3cgJSBzZXF1ZW5jZVNpemUg
LSAxXTsKKyAgICB9IGVsc2UgaWYgKHR5cGUgPT0gU3ltYm9saWNTZXF1ZW5jZSkgeworICAgICAg
ICB1bnNpZ25lZCBudW1TeW1ib2xzID0gY2VpbCgoZG91YmxlKSAobnVtYmVyU2hhZG93ICsgMSkg
LyBzZXF1ZW5jZVNpemUpIC0gMTsKKyAgICAgICAgd2hpbGUgKG51bVN5bWJvbHMtLSkKKyAgICAg
ICAgICAgIGxldHRlcnNbbGV0dGVyc1NpemUgLSArK2xlbmd0aF0gPSBzZXF1ZW5jZVtudW1iZXJT
aGFkb3cgJSBzZXF1ZW5jZVNpemVdOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHdoaWxlICgobnVt
YmVyU2hhZG93IC89IHNlcXVlbmNlU2l6ZSkgPiAwKQogICAgICAgICAgICAgbGV0dGVyc1tsZXR0
ZXJzU2l6ZSAtICsrbGVuZ3RoXSA9IHNlcXVlbmNlW251bWJlclNoYWRvdyAlIHNlcXVlbmNlU2l6
ZV07CkBAIC0xMTQsMTcgKzEyMCwyNyBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyB0b0FscGhhYmV0
aWNPck51bWVyCiAgICAgcmV0dXJuIFN0cmluZygmbGV0dGVyc1tsZXR0ZXJzU2l6ZSAtIGxlbmd0
aF0sIGxlbmd0aCk7CiB9CiAKK3N0YXRpYyBTdHJpbmcgdG9TeW1ib2xpYyhpbnQgbnVtYmVyLCBj
b25zdCBVQ2hhciogc3ltYm9scywgaW50IHN5bWJvbHNTaXplKQoreworICAgIHJldHVybiB0b1Nl
cXVlbmNlKG51bWJlciwgc3ltYm9scywgc3ltYm9sc1NpemUsIFN5bWJvbGljU2VxdWVuY2UpOwor
fQorCiBzdGF0aWMgU3RyaW5nIHRvQWxwaGFiZXRpYyhpbnQgbnVtYmVyLCBjb25zdCBVQ2hhciog
YWxwaGFiZXQsIGludCBhbHBoYWJldFNpemUpCiB7CiAgICAgaWYgKG51bWJlciA8IDEpCiAgICAg
ICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihudW1iZXIpOwogCi0gICAgcmV0dXJuIHRvQWxwaGFi
ZXRpY09yTnVtZXJpYyhudW1iZXIsIGFscGhhYmV0LCBhbHBoYWJldFNpemUsIEFscGhhYmV0aWNT
ZXF1ZW5jZSk7CisgICAgcmV0dXJuIHRvU2VxdWVuY2UobnVtYmVyLCBhbHBoYWJldCwgYWxwaGFi
ZXRTaXplLCBBbHBoYWJldGljU2VxdWVuY2UpOwogfQogCiBzdGF0aWMgU3RyaW5nIHRvTnVtZXJp
YyhpbnQgbnVtYmVyLCBjb25zdCBVQ2hhciogbnVtZXJhbHMsIGludCBudW1lcmFsc1NpemUpCiB7
Ci0gICAgcmV0dXJuIHRvQWxwaGFiZXRpY09yTnVtZXJpYyhudW1iZXIsIG51bWVyYWxzLCBudW1l
cmFsc1NpemUsIE51bWVyaWNTZXF1ZW5jZSk7CisgICAgcmV0dXJuIHRvU2VxdWVuY2UobnVtYmVy
LCBudW1lcmFscywgbnVtZXJhbHNTaXplLCBOdW1lcmljU2VxdWVuY2UpOworfQorCit0ZW1wbGF0
ZSA8c2l6ZV90IHNpemU+IHN0YXRpYyBpbmxpbmUgU3RyaW5nIHRvU3ltYm9saWMoaW50IG51bWJl
ciwgY29uc3QgVUNoYXIoJmFscGhhYmV0KVtzaXplXSkKK3sKKyAgICByZXR1cm4gdG9TeW1ib2xp
YyhudW1iZXIsIGFscGhhYmV0LCBzaXplKTsKIH0KIAogdGVtcGxhdGUgPHNpemVfdCBzaXplPiBz
dGF0aWMgaW5saW5lIFN0cmluZyB0b0FscGhhYmV0aWMoaW50IG51bWJlciwgY29uc3QgVUNoYXIo
JmFscGhhYmV0KVtzaXplXSkKQEAgLTM4Miw5ICszOTgsMTEgQEAgc3RhdGljIFVDaGFyIGxpc3RN
YXJrZXJTdWZmaXgoRUxpc3RTdHlsZQogICAgIC8vIE5vdGUsIHRoZSBmb2xsb3dpbmcgc3dpdGNo
IHN0YXRlbWVudCBoYXMgYmVlbiBleHBsaWNpdGx5CiAgICAgLy8gZ3JvdXBlZCBieSBsaXN0LXN0
eWxlLXR5cGUgc3VmZml4LgogICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2UgTm9uZUxpc3RT
dHlsZToKLSAgICBjYXNlIERpc2M6CisgICAgY2FzZSBBc3Rlcmlza3M6CiAgICAgY2FzZSBDaXJj
bGU6CisgICAgY2FzZSBEaXNjOgorICAgIGNhc2UgRm9vdG5vdGVzOgorICAgIGNhc2UgTm9uZUxp
c3RTdHlsZToKICAgICBjYXNlIFNxdWFyZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybiAnICc7CkBAIC00NzUsMTIgKzQ5MywyNCBAQCBTdHJpbmcgbGlzdE1h
cmtlclRleHQoRUxpc3RTdHlsZVR5cGUgdHlwCiAgICAgICAgIGNhc2UgTm9uZUxpc3RTdHlsZToK
ICAgICAgICAgICAgIHJldHVybiAiIjsKIAorICAgICAgICBjYXNlIEFzdGVyaXNrczogeworICAg
ICAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIGFzdGVyaXNrc1N5bWJvbHNbMV0gPSB7CisgICAg
ICAgICAgICAgICAgMHgwMDJBCisgICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIHRv
U3ltYm9saWModmFsdWUsIGFzdGVyaXNrc1N5bWJvbHMpOworICAgICAgICB9CiAgICAgICAgIC8v
IFdlIHVzZSB0aGUgc2FtZSBjaGFyYWN0ZXJzIGZvciB0ZXh0IHNlY3VyaXR5LgogICAgICAgICAv
LyBTZWUgUmVuZGVyVGV4dDo6c2V0SW50ZXJuYWxTdHJpbmcuCiAgICAgICAgIGNhc2UgQ2lyY2xl
OgogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygmd2hpdGVCdWxsZXQsIDEpOwogICAgICAgICBj
YXNlIERpc2M6CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCZidWxsZXQsIDEpOworICAgICAg
ICBjYXNlIEZvb3Rub3RlczogeworICAgICAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIGZvb3Ru
b3Rlc1N5bWJvbHNbNF0gPSB7CisgICAgICAgICAgICAgICAgMHgwMDJBLCAweDIwNTEsIDB4MjAy
MCwgMHgyMDIxCisgICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIHRvU3ltYm9saWMo
dmFsdWUsIGZvb3Rub3Rlc1N5bWJvbHMpOworICAgICAgICB9CiAgICAgICAgIGNhc2UgU3F1YXJl
OgogICAgICAgICAgICAgLy8gVGhlIENTUyAyLjEgdGVzdCBzdWl0ZSB1c2VzIFUrMjVFRSBCTEFD
SyBNRURJVU0gU01BTEwgU1FVQVJFCiAgICAgICAgICAgICAvLyBpbnN0ZWFkLCBidXQgSSB0aGlu
ayB0aGlzIGxvb2tzIGJldHRlci4KQEAgLTEwMTUsNiArMTA0NSwxMCBAQCB2b2lkIFJlbmRlckxp
c3RNYXJrZXI6OnBhaW50KFBhaW50SW5mbyYgCiAKICAgICBFTGlzdFN0eWxlVHlwZSB0eXBlID0g
c3R5bGUoKS0+bGlzdFN0eWxlVHlwZSgpOwogICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBj
YXNlIEFzdGVyaXNrczoKKyAgICAgICAgY2FzZSBGb290bm90ZXM6CisgICAgICAgICAgICBjb250
ZXh0LT5kcmF3VGV4dChzdHlsZSgpLT5mb250KCksIFRleHRSdW4obV90ZXh0KSwgbWFya2VyLmxv
Y2F0aW9uKCkpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBjYXNlIERpc2M6CiAgICAg
ICAgICAgICBjb250ZXh0LT5kcmF3RWxsaXBzZShtYXJrZXIpOwogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMTE5Niw2ICsxMjMwLDExIEBAIHZvaWQgUmVuZGVyTGlzdE1hcmtlcjo6Y2FsY1ByZWZX
aWR0aHMoKQogICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIE5vbmVMaXN0U3R5bGU6
CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBc3Rlcmlza3M6CisgICAgICAgIGNh
c2UgRm9vdG5vdGVzOgorICAgICAgICAgICAgbV90ZXh0ID0gbGlzdE1hcmtlclRleHQodHlwZSwg
bV9saXN0SXRlbS0+dmFsdWUoKSk7CisgICAgICAgICAgICB3aWR0aCA9IG1fdGV4dC5pc0VtcHR5
KCkgPyAwIDogZm9udC53aWR0aChtX3RleHQpOyAvLyBubyBzdWZmaXggZm9yIHRoZXNlIHR5cGVz
CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDaXJjbGU6CiAgICAgICAgIGNhc2Ug
RGlzYzoKICAgICAgICAgY2FzZSBTcXVhcmU6CkBAIC0xMzk0LDYgKzE0MzMsMTMgQEAgSW50UmVj
dCBSZW5kZXJMaXN0TWFya2VyOjpnZXRSZWxhdGl2ZU1hcgogCiAgICAgRUxpc3RTdHlsZVR5cGUg
dHlwZSA9IHN0eWxlKCktPmxpc3RTdHlsZVR5cGUoKTsKICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAg
ICAgICAgY2FzZSBBc3Rlcmlza3M6CisgICAgICAgIGNhc2UgRm9vdG5vdGVzOiB7CisgICAgICAg
ICAgICBpZiAobV90ZXh0LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gSW50UmVj
dCgpOworICAgICAgICAgICAgY29uc3QgRm9udCYgZm9udCA9IHN0eWxlKCktPmZvbnQoKTsKKyAg
ICAgICAgICAgIHJldHVybiBJbnRSZWN0KHgoKSwgeSgpICsgZm9udC5hc2NlbnQoKSwgZm9udC53
aWR0aChtX3RleHQpLCBmb250LmhlaWdodCgpKTsKKyAgICAgICAgfQogICAgICAgICBjYXNlIERp
c2M6CiAgICAgICAgIGNhc2UgQ2lyY2xlOgogICAgICAgICBjYXNlIFNxdWFyZTogewpJbmRleDog
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCShyZXZp
c2lvbiA1NjY3MSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3Rh
bnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3Nyw2ICsyNzcsOCBAQCBlbnVtIEVMaXN0U3R5bGVU
eXBlIHsKICAgICBFdGhpb3BpY0FiZWdlZGVUaUV0LAogICAgIFVwcGVyR3JlZWssCiAgICAgVXBw
ZXJOb3J3ZWdpYW4sCisgICAgQXN0ZXJpc2tzLAorICAgIEZvb3Rub3RlcywKICAgICBIZWJyZXcs
CiAgICAgQXJtZW5pYW4sCiAgICAgR2VvcmdpYW4sCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NjcwMykK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDEwLTAzLTI4ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY3MzQKKworICAgICAgICBUZXN0cyB0aGF0IGFsbCBvZiB0
aGUgc3ltYm9saWMgQ1NTMyBsaXN0LXN0eWxlLXR5cGVzIGFyZSBzdXBwb3J0ZWQuCisKKyAgICAg
ICAgKiBmYXN0L2xpc3RzL3czLWNzczMtbGlzdC1zdHlsZXMtc3ltYm9saWMuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvbGlzdHMvdzMtY3NzMy1saXN0LXN0eWxlcy1z
eW1ib2xpYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEwLTAzLTI4ICBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgogCiAgICAgICAgIFtHVEtdIEltcHJvdmUgcmVwb3J0
aW5nIG9mIGZyYW1lIGxvYWRlciBjYWxsYmFja3MgaW4gRFJUCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2xpc3RzL3czLWNzczMtbGlzdC1zdHlsZXMtc3ltYm9saWMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2xpc3RzL3czLWNzczMtbGlzdC1zdHlsZXMtc3ltYm9saWMuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbGlzdHMvdzMtY3NzMy1saXN0LXN0
eWxlcy1zeW1ib2xpYy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcxIEBACis8aHRtbD4K
KzxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4
dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgorICAgIDxzdHlsZT4KKyAgICAgICAgLnRlc3Qgb2wg
eyBmbG9hdDogbGVmdDsgcGFkZGluZy1sZWZ0OiAxMDBweDsgcGFkZGluZy1yaWdodDogMjBweDsg
fQorICAgICAgICAudGVzdCBoMiB7IGNsZWFyOiBsZWZ0OyB9CisgICAgICAgIAorICAgICAgICAv
KiAKKyAgICAgICAgVGhlIGZvbGxvd2luZyBzdHlsZXMgYXJlIG9yZGVyZWQgYXMgdGhleSBhcHBl
YXIgaW4gc2VjdGlvbiA0LjUuIG9mIHRoZSAKKyAgICAgICAgRHJhZnQgNyBOb3ZlbWJlciAyMDAy
IGRyYWZ0IG9mIHRoZSBDU1MzIExpc3RzIG1vZHVsZSA8aHR0cDovL3d3dy53My5vcmcvVFIvY3Nz
My1saXN0cy8jc3ltYm9saWM+LgorICAgICAgICAqLworICAgICAgICAKKyAgICAgICAgb2wuYXN0
ZXJpc2tzIHsgbGlzdC1zdHlsZS10eXBlOiBhc3Rlcmlza3M7IH0KKyAgICAgICAgCisgICAgICAg
IG9sLmZvb3Rub3RlcyB7IGxpc3Qtc3R5bGUtdHlwZTogZm9vdG5vdGVzOyB9CisgICAgPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxoMT5DU1MzIFN5bWJvbGljIGxpc3Qtc3R5bGUtdHlw
ZTwvaDE+CisgICAgPHA+VGhpcyB0ZXN0cyB0aGF0IGFsbCBvZiB0aGUgc3ltYm9saWMgQ1NTMyBs
aXN0LXN0eWxlLXR5cGVzIGFyZSBzdXBwb3J0ZWQgYXMgcGVyIDxhIGhyZWY9Imh0dHA6Ly93d3cu
dzMub3JnL1RSL2NzczMtbGlzdHMvI3N5bWJvbGljIj5zZWN0aW9uIDQuNSBvZiB0aGUgc3BlYy4g
Q1NTMyBMaXN0cyBtb2R1bGU8L2E+IChEcmFmdCA3IE5vdmVtYmVyIDIwMDIpLiBUaGlzIHRlc3Qg
UEFTU0VEIGlmIHRoZSBsaXN0IGl0ZW0gbWF0Y2hlcyBpdHMgYnVsbGV0IGZvciBldmVyeSBsaXN0
IGl0ZW0gKGJlbG93KS4gRm9yIGV4YW1wbGUsIGZvciB0aGUgYXN0ZXJpc2tzIHN5bWJvbGljIHN5
c3RlbSB0aGUgc2Vjb25kICZsdDtsaSZndDsgKHdoaWNoIGNvcnJlc3BvbmRzIHRvIDIgaW4gdGhl
IHN0YW5kYXJkIG9yZGVyaW5nIG9mIHRoZSBwb3NpdGl2ZSBpbnRlZ2Vycykgc2hvdWxkIGJlIHJl
bmRlcmVkIGFzOiAmI3gwMDJBOyYjeDAwMkE7ICYjeDAwMkE7JiN4MDAyQTs8L3A+CisgICAgPGRp
diBjbGFzcz0idGVzdCI+CisgICAgICAgIDxoMj5hc3Rlcmlza3M8L2gyPgorICAgICAgICA8b2wg
Y2xhc3M9ImFzdGVyaXNrcyI+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTs8L2xpPgorICAgICAg
ICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7
JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYj
eDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTsmI3gw
MDJBOyYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7JiN4MDAy
QTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+
JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTs8
L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4
MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAw
MkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAy
QTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7
JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTs8
L2xpPgorICAgICAgICA8L29sPgorICAgICAgICA8b2wgY2xhc3M9ImFzdGVyaXNrcyIgc3RhcnQ9
IjAiPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7PC9saT4KKyAgICAgICAgPC9vbD4KKyAgICAg
ICAgPG9sIGNsYXNzPSJhc3Rlcmlza3MiIHN0YXJ0PSItMiI+CisgICAgICAgICAgICA8bGk+JiN4
MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTs8L2xpPgorICAgICAg
ICA8L29sPgorICAgIDwvZGl2PgorICAgIAorICAgIDxkaXYgY2xhc3M9InRlc3QiPgorICAgICAg
ICA8aDI+Zm9vdG5vdGVzPC9oMj4KKyAgICAgICAgPG9sIGNsYXNzPSJmb290bm90ZXMiPgorICAg
ICAgICAgICAgPGxpPiYjeDAwMkE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gyMDUxOzwvbGk+
CisgICAgICAgICAgICA8bGk+JiN4MjAyMDs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDIwMjE7
PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gwMDJBOyYjeDAwMkE7PC9saT4KKyAgICAgICAgICAg
IDxsaT4mI3gyMDUxOyYjeDIwNTE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gyMDIwOyYjeDIw
MjA7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gyMDIxOyYjeDIwMjE7PC9saT4KKyAgICAgICAg
ICAgIDxsaT4mI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxpPiYj
eDIwNTE7JiN4MjA1MTsmI3gyMDUxOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MjAyMDsmI3gy
MDIwOyYjeDIwMjA7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gyMDIxOyYjeDIwMjE7JiN4MjAy
MTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7
PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gyMDUxOyYjeDIwNTE7JiN4MjA1MTsmI3gyMDUxOzwv
bGk+CisgICAgICAgIDwvb2w+CisgICAgICAgIDxvbCBjbGFzcz0iZm9vdG5vdGVzIiBzdGFydD0i
MCI+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTs8L2xpPgorICAgICAgICA8L29sPgorICAgICAg
ICA8b2wgY2xhc3M9ImZvb3Rub3RlcyIgc3RhcnQ9Ii0yIj4KKyAgICAgICAgICAgIDxsaT4mI3gy
MDUxOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTs8L2xpPgorICAgICAgICA8L29sPgor
ICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvbGlzdHMvdzMtY3NzMy1saXN0LXN0eWxlcy1zeW1ib2xpYy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbGlzdHMvdzMtY3Nz
My1saXN0LXN0eWxlcy1zeW1ib2xpYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9saXN0cy93My1jc3MzLWxpc3Qtc3R5bGVzLXN5bWJv
bGljLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNTIgQEAKK2xheWVyIGF0
ICgwLDApIHNpemUgNzg1eDczNQorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzg1eDYwMAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4NzM1CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDc4NXg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc2OXg1
NzMKKyAgICAgIFJlbmRlckJsb2NrIHtIMX0gYXQgKDAsMCkgc2l6ZSA3Njl4MzcKKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDAyeDM3CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNDAyOiAiQ1NTMyBTeW1ib2xpYyBsaXN0LXN0eWxlLXR5cGUiCisg
ICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsNTgpIHNpemUgNzY5eDcyCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ3NXgxOAorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDQ3NTogIlRoaXMgdGVzdHMgdGhhdCBhbGwgb2YgdGhlIHN5bWJvbGljIENT
UzMgbGlzdC1zdHlsZS10eXBlcyBhcmUgc3VwcG9ydGVkIGFzIHBlciAiCisgICAgICAgIFJlbmRl
cklubGluZSB7QX0gYXQgKDAsMCkgc2l6ZSAyNzB4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0NzUsMCkgc2l6ZSAyNzB4MTgKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg0NzUsMCkgd2lkdGggMjcwOiAic2VjdGlvbiA0LjUgb2YgdGhlIHNwZWMu
IENTUzMgTGlzdHMgbW9kdWxlIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMTgp
IHNpemUgNzY5eDU0CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDc2OTogIihE
cmFmdCA3IE5vdmVtYmVyIDIwMDIpLiBUaGlzIHRlc3QgUEFTU0VEIGlmIHRoZSBsaXN0IGl0ZW0g
bWF0Y2hlcyBpdHMgYnVsbGV0IGZvciBldmVyeSBsaXN0IGl0ZW0gKGJlbG93KS4gRm9yIGV4YW1w
bGUsIGZvciIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwzNikgd2lkdGggNzQ1OiAidGhlIGFz
dGVyaXNrcyBzeW1ib2xpYyBzeXN0ZW0gdGhlIHNlY29uZCA8bGk+ICh3aGljaCBjb3JyZXNwb25k
cyB0byAyIGluIHRoZSBzdGFuZGFyZCBvcmRlcmluZyBvZiB0aGUgcG9zaXRpdmUgaW50ZWdlcnMp
IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDU0KSB3aWR0aCAxODE6ICJzaG91bGQgYmUgcmVu
ZGVyZWQgYXM6ICoqICoqIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTQ5KSBzaXpl
IDc2OXgyOAorICAgICAgICBSZW5kZXJCbG9jayB7SDJ9IGF0ICgwLDApIHNpemUgNzY5eDI4Cisg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgODl4MjgKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDg5OiAiYXN0ZXJpc2tzIgorICAgICAgICBSZW5k
ZXJCbG9jayAoZmxvYXRpbmcpIHtPTH0gYXQgKDAsNjMpIHNpemUgMjAweDE4MAorICAgICAgICAg
IFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDEwMCwwKSBzaXplIDgweDE4CisgICAgICAgICAgICBS
ZW5kZXJMaXN0TWFya2VyIGF0ICgtMTIsMCkgc2l6ZSA4eDE4OiAiKiIKKyAgICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDh4MTgKKyAgICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggODogIioiCisgICAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBh
dCAoMTAwLDE4KSBzaXplIDgweDE4CisgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgt
MjAsMCkgc2l6ZSAxNngxODogIioqIgorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMTZ4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
MTY6ICIqKiIKKyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICgxMDAsMzYpIHNpemUg
ODB4MTgKKyAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0yOCwwKSBzaXplIDI0eDE4
OiAiKioqIgorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjR4
MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjQ6ICIqKioiCisgICAg
ICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoMTAwLDU0KSBzaXplIDgweDE4CisgICAgICAg
ICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMzYsMCkgc2l6ZSAzMngxODogIioqKioiCisgICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMngxOAorICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMjogIioqKioiCisgICAgICAgICAgUmVuZGVy
TGlzdEl0ZW0ge0xJfSBhdCAoMTAwLDcyKSBzaXplIDgweDE4CisgICAgICAgICAgICBSZW5kZXJM
aXN0TWFya2VyIGF0ICgtNDQsMCkgc2l6ZSA0MHgxODogIioqKioqIgorICAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDB4MTgKKyAgICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNDA6ICIqKioqKiIKKyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7
TEl9IGF0ICgxMDAsOTApIHNpemUgODB4MTgKKyAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIg
YXQgKC01MiwwKSBzaXplIDQ4eDE4OiAiKioqKioqIgorICAgICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgNDh4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggNDg6ICIqKioqKioiCisgICAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAo
MTAwLDEwOCkgc2l6ZSA4MHgxOAorICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTYw
LDApIHNpemUgNTZ4MTg6ICIqKioqKioqIgorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgNTZ4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggNTY6ICIqKioqKioqIgorICAgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDEwMCwx
MjYpIHNpemUgODB4MTgKKyAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC02OCwwKSBz
aXplIDY0eDE4OiAiKioqKioqKioiCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSA2NHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA2
NDogIioqKioqKioqIgorICAgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDEwMCwxNDQp
IHNpemUgODB4MTgKKyAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC03NiwwKSBzaXpl
IDcyeDE4OiAiKioqKioqKioqIgorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNzJ4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzI6
ICIqKioqKioqKioiCisgICAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoMTAwLDE2Mikg
c2l6ZSA4MHgxOAorICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTg0LDApIHNpemUg
ODB4MTg6ICIqKioqKioqKioqIgorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgODB4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggODA6
ICIqKioqKioqKioqIgorICAgICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtPTH0gYXQgKDIw
MCw2Mykgc2l6ZSAxMjh4MTgKKyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICgxMDAs
MCkgc2l6ZSA4eDE4CisgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMTIsMCkgc2l6
ZSA4eDE4OiAiKiIKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDh4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggODogIioiCisgICAg
ICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge09MfSBhdCAoMzI4LDYzKSBzaXplIDEzNngzNgor
ICAgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDEwMCwwKSBzaXplIDE2eDE4CisgICAg
ICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMjAsMCkgc2l6ZSAxNngxODogIioqIgorICAg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMTZ4MTgKKyAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTY6ICIqKiIKKyAgICAgICAgICBSZW5kZXJM
aXN0SXRlbSB7TEl9IGF0ICgxMDAsMTgpIHNpemUgMTZ4MTgKKyAgICAgICAgICAgIFJlbmRlckxp
c3RNYXJrZXIgYXQgKC0xMiwwKSBzaXplIDh4MTg6ICIqIgorICAgICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgOHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCA4OiAiKiIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDE5Nikgc2l6
ZSA3Njl4MjQwCisgICAgICAgIFJlbmRlckJsb2NrIHtIMn0gYXQgKDAsMjEyKSBzaXplIDc2OXgy
OAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDkzeDI4CisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA5MzogImZvb3Rub3RlcyIKKyAgICAgICAg
UmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7T0x9IGF0ICgwLDI3NSkgc2l6ZSAxNTJ4MjU2CisgICAg
ICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoMTAwLDApIHNpemUgMzJ4MTgKKyAgICAgICAg
ICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0xMiwwKSBzaXplIDh4MTg6ICIqIgorICAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgOHgxOAorICAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA4OiAiKiIKKyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7
TEl9IGF0ICgxMDAsMTgpIHNpemUgMzJ4MTkKKyAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIg
YXQgKC0xMiwxKSBzaXplIDh4MTg6ICJceHsyMDUxfSIKKyAgICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwxKSBzaXplIDh4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MSkgd2lkdGggODogIlx4ezIwNTF9IgorICAgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQg
KDEwMCwzNykgc2l6ZSAzMngxOAorICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTEy
LDApIHNpemUgOHgxODogIlx4ezIwMjB9IgorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgOHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCA4OiAiXHh7MjAyMH0iCisgICAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoMTAwLDU1
KSBzaXplIDMyeDE4CisgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMTIsMCkgc2l6
ZSA4eDE4OiAiXHh7MjAyMX0iCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSA4eDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDg6ICJc
eHsyMDIxfSIKKyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICgxMDAsNzMpIHNpemUg
MzJ4MTgKKyAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0yMCwwKSBzaXplIDE2eDE4
OiAiKioiCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAxNngx
OAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAxNjogIioqIgorICAgICAg
ICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDEwMCw5MSkgc2l6ZSAzMngxOQorICAgICAgICAg
ICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTIwLDEpIHNpemUgMTZ4MTg6ICJceHsyMDUxfVx4ezIw
NTF9IgorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEpIHNpemUgMTZ4MTgK
KyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMSkgd2lkdGggMTY6ICJceHsyMDUxfVx4ezIw
NTF9IgorICAgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDEwMCwxMTApIHNpemUgMzJ4
MTgKKyAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0yMCwwKSBzaXplIDE2eDE4OiAi
XHh7MjAyMH1ceHsyMDIwfSIKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDE2eDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE2OiAi
XHh7MjAyMH1ceHsyMDIwfSIKKyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICgxMDAs
MTI4KSBzaXplIDMyeDE4CisgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMjAsMCkg
c2l6ZSAxNngxODogIlx4ezIwMjF9XHh7MjAyMX0iCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAxNngxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAxNjogIlx4ezIwMjF9XHh7MjAyMX0iCisgICAgICAgICAgUmVuZGVyTGlzdEl0ZW0g
e0xJfSBhdCAoMTAwLDE0Nikgc2l6ZSAzMngxOAorICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtl
ciBhdCAoLTI4LDApIHNpemUgMjR4MTg6ICIqKioiCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAyNHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAyNDogIioqKiIKKyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICgxMDAs
MTY0KSBzaXplIDMyeDE5CisgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMjgsMSkg
c2l6ZSAyNHgxODogIlx4ezIwNTF9XHh7MjA1MX1ceHsyMDUxfSIKKyAgICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwxKSBzaXplIDI0eDE4CisgICAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDEpIHdpZHRoIDI0OiAiXHh7MjA1MX1ceHsyMDUxfVx4ezIwNTF9IgorICAgICAgICAg
IFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDEwMCwxODMpIHNpemUgMzJ4MTgKKyAgICAgICAgICAg
IFJlbmRlckxpc3RNYXJrZXIgYXQgKC0yOCwwKSBzaXplIDI0eDE4OiAiXHh7MjAyMH1ceHsyMDIw
fVx4ezIwMjB9IgorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MjR4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjQ6ICJceHsyMDIw
fVx4ezIwMjB9XHh7MjAyMH0iCisgICAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoMTAw
LDIwMSkgc2l6ZSAzMngxOAorICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTI4LDAp
IHNpemUgMjR4MTg6ICJceHsyMDIxfVx4ezIwMjF9XHh7MjAyMX0iCisgICAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCAyNDogIlx4ezIwMjF9XHh7MjAyMX1ceHsyMDIxfSIKKyAgICAgICAg
ICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICgxMDAsMjE5KSBzaXplIDMyeDE4CisgICAgICAgICAg
ICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMzYsMCkgc2l6ZSAzMngxODogIioqKioiCisgICAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMngxOAorICAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMjogIioqKioiCisgICAgICAgICAgUmVuZGVyTGlz
dEl0ZW0ge0xJfSBhdCAoMTAwLDIzNykgc2l6ZSAzMngxOQorICAgICAgICAgICAgUmVuZGVyTGlz
dE1hcmtlciBhdCAoLTM1LDEpIHNpemUgMzF4MTg6ICJceHsyMDUxfVx4ezIwNTF9XHh7MjA1MX1c
eHsyMDUxfSIKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxKSBzaXplIDMx
eDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDEpIHdpZHRoIDMxOiAiXHh7MjA1MX1c
eHsyMDUxfVx4ezIwNTF9XHh7MjA1MX0iCisgICAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykg
e09MfSBhdCAoMTUyLDI3NSkgc2l6ZSAxMjh4MTgKKyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7
TEl9IGF0ICgxMDAsMCkgc2l6ZSA4eDE4CisgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0
ICgtMTIsMCkgc2l6ZSA4eDE4OiAiKiIKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDh4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
ODogIioiCisgICAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge09MfSBhdCAoMjgwLDI3NSkg
c2l6ZSAxMjh4MzcKKyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICgxMDAsMCkgc2l6
ZSA4eDE5CisgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMTIsMSkgc2l6ZSA4eDE4
OiAiXHh7MjA1MX0iCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMSkgc2l6
ZSA4eDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDEpIHdpZHRoIDg6ICJceHsyMDUx
fSIKKyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICgxMDAsMTkpIHNpemUgOHgxOAor
ICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTEyLDApIHNpemUgOHgxODogIioiCisg
ICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA4eDE4CisgICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDg6ICIqIgo=
</data>
<flag name="review"
          id="35346"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51998</attachid>
            <date>2010-03-29 20:44:42 -0700</date>
            <delta_ts>2010-07-23 22:02:26 -0700</delta_ts>
            <desc>Patch with test case</desc>
            <filename>Bug36734_1.patch</filename>
            <type>text/plain</type>
            <size>24211</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjcwMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTAtMDMtMjggIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjczNAorCisgICAgICAgIEltcGxl
bWVudHMgYWxsIG9mIHRoZSBzeW1ib2xpYyBDU1MzIGxpc3Qtc3R5bGUtdHlwZXMgYXMgcGVyCisg
ICAgICAgIHNlY3Rpb24gNC41IG9mIHRoZSBDU1MzIExpc3RzIG1vZHVsZSA8aHR0cDovL3d3dy53
My5vcmcvVFIvY3NzMy1saXN0cy8jc3ltYm9saWM+LgorCisgICAgICAgIFRlc3Q6IGZhc3QvbGlz
dHMvdzMtY3NzMy1saXN0LXN0eWxlcy1zeW1ib2xpYy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUNTU1Rva2VuaXplci5y
ZTJqczoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6dG9TZXF1ZW5jZSk6IFJlbmFtZWQgKGZv
cm1lcmx5IHRvQWxwaGFiZXRpY09yTnVtZXJpYykuCisgICAgICAgIChXZWJDb3JlOjp0b1N5bWJv
bGljKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b0FscGhhYmV0aWMpOgorICAgICAgICAo
V2ViQ29yZTo6dG9OdW1lcmljKToKKyAgICAgICAgKFdlYkNvcmU6Omxpc3RNYXJrZXJTdWZmaXgp
OgorICAgICAgICAoV2ViQ29yZTo6bGlzdE1hcmtlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGlzdE1hcmtlcjo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdE1h
cmtlcjo6Y2FsY1ByZWZXaWR0aHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdE1hcmtl
cjo6Z2V0UmVsYXRpdmVNYXJrZXJSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisKIDIwMTAtMDMtMjgg
IExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpJbmRleDogV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWVNYXBwaW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlTWFwcGluZ3MuaAkocmV2aXNpb24gNTY2NzEpCisrKyBXZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1Niw2ICs5NTYsOSBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTCiAgICAgY2FzZSBBcm1lbmlhbjoK
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXJtZW5pYW47CiAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQXN0ZXJpc2tzOgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVB
c3Rlcmlza3M7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmluYXJ5TGlzdFN0eWxlOgogICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCaW5hcnk7CiAgICAgICAgIGJyZWFrOwpAQCAt
MTAzNyw2ICsxMDQwLDkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
UwogICAgIGNhc2UgRXRoaW9waWNIYWxlaGFtZVRpZzoKICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZVRpZzsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBG
b290bm90ZXM6CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZvb3Rub3RlczsKKyAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBHZW9yZ2lhbjoKICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlR2VvcmdpYW47CiAgICAgICAgIGJyZWFrOwpJbmRleDogV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdv
cmRzLmluCShyZXZpc2lvbiA1NjY3MSkKKysrIFdlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTI4OCw2ICsyODgsOCBAQCB0aWdyaW55YS1ldC1hYmVnZWRl
CiBldGhpb3BpYy1hYmVnZWRlLXRpLWV0CiB1cHBlci1ncmVlawogdXBwZXItbm9yd2VnaWFuCith
c3Rlcmlza3MKK2Zvb3Rub3RlcwogaGVicmV3CiBhcm1lbmlhbgogZ2VvcmdpYW4KSW5kZXg6IFdl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VDU1NUb2tlbml6ZXIucmUyanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUNTU1Rva2VuaXplci5y
ZTJqcwkocmV2aXNpb24gNTY2NzEpCisrKyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291
cmNlQ1NTVG9rZW5pemVyLnJlMmpzCSh3b3JraW5nIGNvcHkpCkBAIC05OCw3ICs5OCw3IEBAIFdl
Ykluc3BlY3Rvci5Tb3VyY2VDU1NUb2tlbml6ZXIgPSBmdW5jdGkKICAgICAKICAgICB0aGlzLl92
YWx1ZUtleXdvcmRzID0gWwogICAgICAgICAiYWJvdmUiLCAiYWJzb2x1dGUiLCAiYWN0aXZlYm9y
ZGVyIiwgImFjdGl2ZWNhcHRpb24iLCAiYWZhciIsICJhZnRlci13aGl0ZS1zcGFjZSIsICJhaGVh
ZCIsICJhbGlhcyIsICJhbGwiLCAiYWxsLXNjcm9sbCIsCi0gICAgICAgICJhbHRlcm5hdGUiLCAi
YWx3YXlzIiwiYW1oYXJpYyIsICJhbWhhcmljLWFiZWdlZGUiLCAiYW50aWFsaWFzZWQiLCAiYXBw
d29ya3NwYWNlIiwgImFxdWEiLCAiYXJhYmljLWluZGljIiwgImFybWVuaWFuIiwKKyAgICAgICAg
ImFsdGVybmF0ZSIsICJhbHdheXMiLCJhbWhhcmljIiwgImFtaGFyaWMtYWJlZ2VkZSIsICJhbnRp
YWxpYXNlZCIsICJhcHB3b3Jrc3BhY2UiLCAiYXF1YSIsICJhcmFiaWMtaW5kaWMiLCAiYXJtZW5p
YW4iLCAiYXN0ZXJpc2tzIiwKICAgICAgICAgImF1dG8iLCAiYXZvaWQiLCAiYmFja2dyb3VuZCIs
ICJiYWNrd2FyZHMiLCAiYmFzZWxpbmUiLCAiYmVsb3ciLCAiYmlkaS1vdmVycmlkZSIsICJiaW5h
cnkiLCAiYmVuZ2FsaSIsICJibGFjayIsICJibGluayIsCiAgICAgICAgICJibG9jayIsICJibG9j
ay1heGlzIiwgImJsdWUiLCAiYm9sZCIsICJib2xkZXIiLCAiYm9yZGVyIiwgImJvcmRlci1ib3gi
LCAiYm90aCIsICJib3R0b20iLCAiYnJlYWstYWxsIiwgImJyZWFrLXdvcmQiLCAiYnV0dG9uIiwK
ICAgICAgICAgImJ1dHRvbi1iZXZlbCIsICJidXR0b25mYWNlIiwgImJ1dHRvbmhpZ2hsaWdodCIs
ICJidXR0b25zaGFkb3ciLCAiYnV0dG9udGV4dCIsICJjYW1ib2RpYW4iLCAiY2FwaXRhbGl6ZSIs
ICJjYXBzLWxvY2staW5kaWNhdG9yIiwKQEAgLTExMSw3ICsxMTEsNyBAQCBXZWJJbnNwZWN0b3Iu
U291cmNlQ1NTVG9rZW5pemVyID0gZnVuY3RpCiAgICAgICAgICJldGhpb3BpYy1hYmVnZWRlLXRp
LWVyIiwgImV0aGlvcGljLWFiZWdlZGUtdGktZXQiLCAiZXRoaW9waWMtaGFsZWhhbWUtYWEtZXIi
LCAiZXRoaW9waWMtaGFsZWhhbWUtYWEtZXQiLAogICAgICAgICAiZXRoaW9waWMtaGFsZWhhbWUt
YW0tZXQiLCAiZXRoaW9waWMtaGFsZWhhbWUtZ2V6IiwgImV0aGlvcGljLWhhbGVoYW1lLW9tLWV0
IiwgImV0aGlvcGljLWhhbGVoYW1lLXNpZC1ldCIsCiAgICAgICAgICJldGhpb3BpYy1oYWxlaGFt
ZS1zby1ldCIsICJldGhpb3BpYy1oYWxlaGFtZS10aS1lciIsICJldGhpb3BpYy1oYWxlaGFtZS10
aS1ldCIsICJldGhpb3BpYy1oYWxlaGFtZS10aWciLCAiZXctcmVzaXplIiwgImV4cGFuZGVkIiwK
LSAgICAgICAgImV4dHJhLWNvbmRlbnNlZCIsICJleHRyYS1leHBhbmRlZCIsICJmYW50YXN5Iiwg
ImZhc3QiLCAiZmlsbCIsICJmaXhlZCIsICJmbGF0IiwgImZvcndhcmRzIiwgImZyb20iLCAiZnVj
aHNpYSIsICJnZW9tZXRyaWNQcmVjaXNpb24iLAorICAgICAgICAiZXh0cmEtY29uZGVuc2VkIiwg
ImV4dHJhLWV4cGFuZGVkIiwgImZhbnRhc3kiLCAiZmFzdCIsICJmaWxsIiwgImZpeGVkIiwgImZs
YXQiLCAiZm9vdG5vdGVzIiwgImZvcndhcmRzIiwgImZyb20iLCAiZnVjaHNpYSIsICJnZW9tZXRy
aWNQcmVjaXNpb24iLAogICAgICAgICAiZ2VvcmdpYW4iLCAiZ3JheSIsICJncmF5dGV4dCIsICJn
cmVlbiIsICJncmV5IiwgImdyb292ZSIsICJndWphcmF0aSIsICJndXJtdWtoaSIsICJoYW5kIiwg
Imhhbmd1bCIsICJoYW5ndWwtY29uc29uYW50IiwgImhlYnJldyIsICJoZWxwIiwKICAgICAgICAg
ImhpZGRlbiIsICJoaWRlIiwgImhpZ2hlciIsICJoaWdobGlnaHQiLCAiaGlnaGxpZ2h0dGV4dCIs
ICJoaXJhZ2FuYSIsICJoaXJhZ2FuYS1pcm9oYSIsICJob3Jpem9udGFsIiwgImhzbCIsICJoc2xh
IiwgImljb24iLCAiaWdub3JlIiwKICAgICAgICAgImluYWN0aXZlYm9yZGVyIiwgImluYWN0aXZl
Y2FwdGlvbiIsICJpbmFjdGl2ZWNhcHRpb250ZXh0IiwgImluZmluaXRlIiwgImluZm9iYWNrZ3Jv
dW5kIiwgImluZm90ZXh0IiwgImluaGVyaXQiLCAiaW5pdGlhbCIsICJpbmxpbmUiLApJbmRleDog
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAJKHJldmlzaW9uIDU2NjcxKQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBpbnQgY01hcmtlclBh
ZGRpbmcgPSA3OwogCi1lbnVtIFNlcXVlbmNlVHlwZSB7IE51bWVyaWNTZXF1ZW5jZSwgQWxwaGFi
ZXRpY1NlcXVlbmNlIH07CitlbnVtIFNlcXVlbmNlVHlwZSB7IEFscGhhYmV0aWNTZXF1ZW5jZSwg
TnVtZXJpY1NlcXVlbmNlLCBTeW1ib2xpY1NlcXVlbmNlIH07CiAKIHN0YXRpYyBTdHJpbmcgdG9S
b21hbihpbnQgbnVtYmVyLCBib29sIHVwcGVyKQogewpAQCAtODAsOSArODAsOSBAQCBzdGF0aWMg
U3RyaW5nIHRvUm9tYW4oaW50IG51bWJlciwgYm9vbCB1CiAgICAgcmV0dXJuIFN0cmluZygmbGV0
dGVyc1tsZXR0ZXJzU2l6ZSAtIGxlbmd0aF0sIGxlbmd0aCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
U3RyaW5nIHRvQWxwaGFiZXRpY09yTnVtZXJpYyhpbnQgbnVtYmVyLCBjb25zdCBVQ2hhciogc2Vx
dWVuY2UsIGludCBzZXF1ZW5jZVNpemUsIFNlcXVlbmNlVHlwZSB0eXBlKQorc3RhdGljIGlubGlu
ZSBTdHJpbmcgdG9TZXF1ZW5jZShpbnQgbnVtYmVyLCBjb25zdCBVQ2hhciogc2VxdWVuY2UsIGlu
dCBzZXF1ZW5jZVNpemUsIFNlcXVlbmNlVHlwZSB0eXBlKQogewotICAgIEFTU0VSVChzZXF1ZW5j
ZVNpemUgPj0gMik7CisgICAgQVNTRVJUKHNlcXVlbmNlU2l6ZSA+PSAodHlwZSA9PSBTeW1ib2xp
Y1NlcXVlbmNlID8gMSA6IDIpKTsKIAogICAgIGNvbnN0IGludCBsZXR0ZXJzU2l6ZSA9IHNpemVv
ZihudW1iZXIpICogOCArIDE7IC8vIEJpbmFyeSBpcyB0aGUgd29yc3QgY2FzZTsgcmVxdWlyZXMg
b25lIGNoYXJhY3RlciBwZXIgYml0IHBsdXMgYSBtaW51cyBzaWduLgogCkBAIC05NywzNCArOTcs
NTAgQEAgc3RhdGljIGlubGluZSBTdHJpbmcgdG9BbHBoYWJldGljT3JOdW1lcgogICAgICAgICBu
dW1iZXJTaGFkb3cgPSAtbnVtYmVyOwogICAgICAgICBpc05lZ2F0aXZlTnVtYmVyID0gdHJ1ZTsK
ICAgICB9CisgICAgaWYgKHR5cGUgPT0gU3ltYm9saWNTZXF1ZW5jZSAmJiBudW1iZXJTaGFkb3cg
PiAwKQorICAgICAgICAtLW51bWJlclNoYWRvdzsKICAgICBsZXR0ZXJzW2xldHRlcnNTaXplIC0g
MV0gPSBzZXF1ZW5jZVtudW1iZXJTaGFkb3cgJSBzZXF1ZW5jZVNpemVdOwogICAgIGludCBsZW5n
dGggPSAxOwogCiAgICAgaWYgKHR5cGUgPT0gQWxwaGFiZXRpY1NlcXVlbmNlKSB7CiAgICAgICAg
IHdoaWxlICgobnVtYmVyU2hhZG93IC89IHNlcXVlbmNlU2l6ZSkgPiAwKQogICAgICAgICAgICAg
bGV0dGVyc1tsZXR0ZXJzU2l6ZSAtICsrbGVuZ3RoXSA9IHNlcXVlbmNlW251bWJlclNoYWRvdyAl
IHNlcXVlbmNlU2l6ZSAtIDFdOworICAgIH0gZWxzZSBpZiAodHlwZSA9PSBTeW1ib2xpY1NlcXVl
bmNlKSB7CisgICAgICAgIHVuc2lnbmVkIG51bVN5bWJvbHMgPSBudW1iZXJTaGFkb3cgLyBzZXF1
ZW5jZVNpemU7CisgICAgICAgIHdoaWxlIChudW1TeW1ib2xzLS0pCisgICAgICAgICAgICBsZXR0
ZXJzW2xldHRlcnNTaXplIC0gKytsZW5ndGhdID0gc2VxdWVuY2VbbnVtYmVyU2hhZG93ICUgc2Vx
dWVuY2VTaXplXTsKICAgICB9IGVsc2UgewogICAgICAgICB3aGlsZSAoKG51bWJlclNoYWRvdyAv
PSBzZXF1ZW5jZVNpemUpID4gMCkKICAgICAgICAgICAgIGxldHRlcnNbbGV0dGVyc1NpemUgLSAr
K2xlbmd0aF0gPSBzZXF1ZW5jZVtudW1iZXJTaGFkb3cgJSBzZXF1ZW5jZVNpemVdOwogICAgIH0K
LSAgICBpZiAoaXNOZWdhdGl2ZU51bWJlcikKKyAgICBpZiAoaXNOZWdhdGl2ZU51bWJlciAmJiB0
eXBlICE9IFN5bWJvbGljU2VxdWVuY2UpIC8vIFdlIGRvIG5vdCBzaG93IGEgbWludXMgc2lnbiBm
b3Igc3ltYm9saWNzLgogICAgICAgICBsZXR0ZXJzW2xldHRlcnNTaXplIC0gKytsZW5ndGhdID0g
aHlwaGVuTWludXM7CiAKICAgICBBU1NFUlQobGVuZ3RoIDw9IGxldHRlcnNTaXplKTsKICAgICBy
ZXR1cm4gU3RyaW5nKCZsZXR0ZXJzW2xldHRlcnNTaXplIC0gbGVuZ3RoXSwgbGVuZ3RoKTsKIH0K
IAorc3RhdGljIFN0cmluZyB0b1N5bWJvbGljKGludCBudW1iZXIsIGNvbnN0IFVDaGFyKiBzeW1i
b2xzLCBpbnQgc3ltYm9sc1NpemUpCit7CisgICAgcmV0dXJuIHRvU2VxdWVuY2UobnVtYmVyLCBz
eW1ib2xzLCBzeW1ib2xzU2l6ZSwgU3ltYm9saWNTZXF1ZW5jZSk7Cit9CisKIHN0YXRpYyBTdHJp
bmcgdG9BbHBoYWJldGljKGludCBudW1iZXIsIGNvbnN0IFVDaGFyKiBhbHBoYWJldCwgaW50IGFs
cGhhYmV0U2l6ZSkKIHsKICAgICBpZiAobnVtYmVyIDwgMSkKICAgICAgICAgcmV0dXJuIFN0cmlu
Zzo6bnVtYmVyKG51bWJlcik7CiAKLSAgICByZXR1cm4gdG9BbHBoYWJldGljT3JOdW1lcmljKG51
bWJlciwgYWxwaGFiZXQsIGFscGhhYmV0U2l6ZSwgQWxwaGFiZXRpY1NlcXVlbmNlKTsKKyAgICBy
ZXR1cm4gdG9TZXF1ZW5jZShudW1iZXIsIGFscGhhYmV0LCBhbHBoYWJldFNpemUsIEFscGhhYmV0
aWNTZXF1ZW5jZSk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgdG9OdW1lcmljKGludCBudW1iZXIsIGNv
bnN0IFVDaGFyKiBudW1lcmFscywgaW50IG51bWVyYWxzU2l6ZSkKIHsKLSAgICByZXR1cm4gdG9B
bHBoYWJldGljT3JOdW1lcmljKG51bWJlciwgbnVtZXJhbHMsIG51bWVyYWxzU2l6ZSwgTnVtZXJp
Y1NlcXVlbmNlKTsKKyAgICByZXR1cm4gdG9TZXF1ZW5jZShudW1iZXIsIG51bWVyYWxzLCBudW1l
cmFsc1NpemUsIE51bWVyaWNTZXF1ZW5jZSk7Cit9CisKK3RlbXBsYXRlIDxzaXplX3Qgc2l6ZT4g
c3RhdGljIGlubGluZSBTdHJpbmcgdG9TeW1ib2xpYyhpbnQgbnVtYmVyLCBjb25zdCBVQ2hhcigm
YWxwaGFiZXQpW3NpemVdKQoreworICAgIHJldHVybiB0b1N5bWJvbGljKG51bWJlciwgYWxwaGFi
ZXQsIHNpemUpOwogfQogCiB0ZW1wbGF0ZSA8c2l6ZV90IHNpemU+IHN0YXRpYyBpbmxpbmUgU3Ry
aW5nIHRvQWxwaGFiZXRpYyhpbnQgbnVtYmVyLCBjb25zdCBVQ2hhcigmYWxwaGFiZXQpW3NpemVd
KQpAQCAtMzgyLDkgKzM5OCwxMSBAQCBzdGF0aWMgVUNoYXIgbGlzdE1hcmtlclN1ZmZpeChFTGlz
dFN0eWxlCiAgICAgLy8gTm90ZSwgdGhlIGZvbGxvd2luZyBzd2l0Y2ggc3RhdGVtZW50IGhhcyBi
ZWVuIGV4cGxpY2l0bHkKICAgICAvLyBncm91cGVkIGJ5IGxpc3Qtc3R5bGUtdHlwZSBzdWZmaXgu
CiAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBOb25lTGlzdFN0eWxlOgotICAgIGNhc2Ug
RGlzYzoKKyAgICBjYXNlIEFzdGVyaXNrczoKICAgICBjYXNlIENpcmNsZToKKyAgICBjYXNlIERp
c2M6CisgICAgY2FzZSBGb290bm90ZXM6CisgICAgY2FzZSBOb25lTGlzdFN0eWxlOgogICAgIGNh
c2UgU3F1YXJlOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJu
ICcgJzsKQEAgLTQ3NSwxMiArNDkzLDI0IEBAIFN0cmluZyBsaXN0TWFya2VyVGV4dChFTGlzdFN0
eWxlVHlwZSB0eXAKICAgICAgICAgY2FzZSBOb25lTGlzdFN0eWxlOgogICAgICAgICAgICAgcmV0
dXJuICIiOwogCisgICAgICAgIGNhc2UgQXN0ZXJpc2tzOiB7CisgICAgICAgICAgICBzdGF0aWMg
Y29uc3QgVUNoYXIgYXN0ZXJpc2tzU3ltYm9sc1sxXSA9IHsKKyAgICAgICAgICAgICAgICAweDAw
MkEKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gdG9TeW1ib2xpYyh2YWx1ZSwg
YXN0ZXJpc2tzU3ltYm9scyk7CisgICAgICAgIH0KICAgICAgICAgLy8gV2UgdXNlIHRoZSBzYW1l
IGNoYXJhY3RlcnMgZm9yIHRleHQgc2VjdXJpdHkuCiAgICAgICAgIC8vIFNlZSBSZW5kZXJUZXh0
OjpzZXRJbnRlcm5hbFN0cmluZy4KICAgICAgICAgY2FzZSBDaXJjbGU6CiAgICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nKCZ3aGl0ZUJ1bGxldCwgMSk7CiAgICAgICAgIGNhc2UgRGlzYzoKICAgICAg
ICAgICAgIHJldHVybiBTdHJpbmcoJmJ1bGxldCwgMSk7CisgICAgICAgIGNhc2UgRm9vdG5vdGVz
OiB7CisgICAgICAgICAgICBzdGF0aWMgY29uc3QgVUNoYXIgZm9vdG5vdGVzU3ltYm9sc1s0XSA9
IHsKKyAgICAgICAgICAgICAgICAweDAwMkEsIDB4MjA1MSwgMHgyMDIwLCAweDIwMjEKKyAgICAg
ICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gdG9TeW1ib2xpYyh2YWx1ZSwgZm9vdG5vdGVz
U3ltYm9scyk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBTcXVhcmU6CiAgICAgICAgICAgICAv
LyBUaGUgQ1NTIDIuMSB0ZXN0IHN1aXRlIHVzZXMgVSsyNUVFIEJMQUNLIE1FRElVTSBTTUFMTCBT
UVVBUkUKICAgICAgICAgICAgIC8vIGluc3RlYWQsIGJ1dCBJIHRoaW5rIHRoaXMgbG9va3MgYmV0
dGVyLgpAQCAtMTAxNSw2ICsxMDQ1LDEwIEBAIHZvaWQgUmVuZGVyTGlzdE1hcmtlcjo6cGFpbnQo
UGFpbnRJbmZvJiAKIAogICAgIEVMaXN0U3R5bGVUeXBlIHR5cGUgPSBzdHlsZSgpLT5saXN0U3R5
bGVUeXBlKCk7CiAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQXN0ZXJpc2tzOgor
ICAgICAgICBjYXNlIEZvb3Rub3RlczoKKyAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KHN0
eWxlKCktPmZvbnQoKSwgVGV4dFJ1bihtX3RleHQpLCBtYXJrZXIubG9jYXRpb24oKSk7CisgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgRGlzYzoKICAgICAgICAgICAgIGNvbnRleHQt
PmRyYXdFbGxpcHNlKG1hcmtlcik7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMTk2LDYgKzEy
MzAsMTEgQEAgdm9pZCBSZW5kZXJMaXN0TWFya2VyOjpjYWxjUHJlZldpZHRocygpCiAgICAgc3dp
dGNoICh0eXBlKSB7CiAgICAgICAgIGNhc2UgTm9uZUxpc3RTdHlsZToKICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFzdGVyaXNrczoKKyAgICAgICAgY2FzZSBGb290bm90ZXM6Cisg
ICAgICAgICAgICBtX3RleHQgPSBsaXN0TWFya2VyVGV4dCh0eXBlLCBtX2xpc3RJdGVtLT52YWx1
ZSgpKTsKKyAgICAgICAgICAgIHdpZHRoID0gZm9udC53aWR0aChtX3RleHQpOyAvLyBubyBzdWZm
aXggZm9yIHRoZXNlIHR5cGVzCisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDaXJj
bGU6CiAgICAgICAgIGNhc2UgRGlzYzoKICAgICAgICAgY2FzZSBTcXVhcmU6CkBAIC0xMzk0LDYg
KzE0MzMsMTEgQEAgSW50UmVjdCBSZW5kZXJMaXN0TWFya2VyOjpnZXRSZWxhdGl2ZU1hcgogCiAg
ICAgRUxpc3RTdHlsZVR5cGUgdHlwZSA9IHN0eWxlKCktPmxpc3RTdHlsZVR5cGUoKTsKICAgICBz
d2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBBc3Rlcmlza3M6CisgICAgICAgIGNhc2UgRm9v
dG5vdGVzOiB7CisgICAgICAgICAgICBjb25zdCBGb250JiBmb250ID0gc3R5bGUoKS0+Zm9udCgp
OworICAgICAgICAgICAgcmV0dXJuIEludFJlY3QoeCgpLCB5KCkgKyBmb250LmFzY2VudCgpLCBm
b250LndpZHRoKG1fdGV4dCksIGZvbnQuaGVpZ2h0KCkpOworICAgICAgICB9CiAgICAgICAgIGNh
c2UgRGlzYzoKICAgICAgICAgY2FzZSBDaXJjbGU6CiAgICAgICAgIGNhc2UgU3F1YXJlOiB7Cklu
ZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgJ
KHJldmlzaW9uIDU2NjcxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVD
b25zdGFudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjc3LDYgKzI3Nyw4IEBAIGVudW0gRUxpc3RT
dHlsZVR5cGUgewogICAgIEV0aGlvcGljQWJlZ2VkZVRpRXQsCiAgICAgVXBwZXJHcmVlaywKICAg
ICBVcHBlck5vcndlZ2lhbiwKKyAgICBBc3Rlcmlza3MsCisgICAgRm9vdG5vdGVzLAogICAgIEhl
YnJldywKICAgICBBcm1lbmlhbiwKICAgICBHZW9yZ2lhbiwKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU2
NzAzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTAtMDMtMjggIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjczNAorCisgICAgICAgIFRlc3RzIHRoYXQgYWxs
IG9mIHRoZSBzeW1ib2xpYyBDU1MzIGxpc3Qtc3R5bGUtdHlwZXMgYXJlIHN1cHBvcnRlZC4KKwor
ICAgICAgICAqIGZhc3QvbGlzdHMvdzMtY3NzMy1saXN0LXN0eWxlcy1zeW1ib2xpYy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9saXN0cy93My1jc3MzLWxpc3Qtc3R5
bGVzLXN5bWJvbGljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMDMtMjggIEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10gSW1wcm92ZSBy
ZXBvcnRpbmcgb2YgZnJhbWUgbG9hZGVyIGNhbGxiYWNrcyBpbiBEUlQKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvbGlzdHMvdzMtY3NzMy1saXN0LXN0eWxlcy1zeW1ib2xpYy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbGlzdHMvdzMtY3NzMy1saXN0LXN0eWxlcy1zeW1ib2xp
Yy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9saXN0cy93My1jc3MzLWxp
c3Qtc3R5bGVzLXN5bWJvbGljLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzEgQEAKKzxo
dG1sPgorPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50
PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CisgICAgPHN0eWxlPgorICAgICAgICAudGVz
dCBvbCB7IGZsb2F0OiBsZWZ0OyBwYWRkaW5nLWxlZnQ6IDEwMHB4OyBwYWRkaW5nLXJpZ2h0OiAy
MHB4OyB9CisgICAgICAgIC50ZXN0IGgyIHsgY2xlYXI6IGxlZnQ7IH0KKyAgICAgICAgCisgICAg
ICAgIC8qIAorICAgICAgICBUaGUgZm9sbG93aW5nIHN0eWxlcyBhcmUgb3JkZXJlZCBhcyB0aGV5
IGFwcGVhciBpbiBzZWN0aW9uIDQuNS4gb2YgdGhlIAorICAgICAgICBEcmFmdCA3IE5vdmVtYmVy
IDIwMDIgZHJhZnQgb2YgdGhlIENTUzMgTGlzdHMgbW9kdWxlIDxodHRwOi8vd3d3LnczLm9yZy9U
Ui9jc3MzLWxpc3RzLyNzeW1ib2xpYz4uCisgICAgICAgICovCisgICAgICAgIAorICAgICAgICBv
bC5hc3Rlcmlza3MgeyBsaXN0LXN0eWxlLXR5cGU6IGFzdGVyaXNrczsgfQorICAgICAgICAKKyAg
ICAgICAgb2wuZm9vdG5vdGVzIHsgbGlzdC1zdHlsZS10eXBlOiBmb290bm90ZXM7IH0KKyAgICA8
L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGgxPkNTUzMgU3ltYm9saWMgbGlzdC1zdHls
ZS10eXBlPC9oMT4KKyAgICA8cD5UaGlzIHRlc3RzIHRoYXQgYWxsIG9mIHRoZSBzeW1ib2xpYyBD
U1MzIGxpc3Qtc3R5bGUtdHlwZXMgYXJlIHN1cHBvcnRlZCBhcyBwZXIgPGEgaHJlZj0iaHR0cDov
L3d3dy53My5vcmcvVFIvY3NzMy1saXN0cy8jc3ltYm9saWMiPnNlY3Rpb24gNC41IG9mIHRoZSBz
cGVjLiBDU1MzIExpc3RzIG1vZHVsZTwvYT4gKERyYWZ0IDcgTm92ZW1iZXIgMjAwMikuIFRoaXMg
dGVzdCBQQVNTRUQgaWYgdGhlIGxpc3QgaXRlbSBtYXRjaGVzIGl0cyBidWxsZXQgZm9yIGV2ZXJ5
IGxpc3QgaXRlbSAoYmVsb3cpLiBGb3IgZXhhbXBsZSwgZm9yIHRoZSBhc3Rlcmlza3Mgc3ltYm9s
aWMgc3lzdGVtIHRoZSBzZWNvbmQgJmx0O2xpJmd0OyAod2hpY2ggY29ycmVzcG9uZHMgdG8gMiBp
biB0aGUgc3RhbmRhcmQgb3JkZXJpbmcgb2YgdGhlIHBvc2l0aXZlIGludGVnZXJzKSBzaG91bGQg
YmUgcmVuZGVyZWQgYXM6ICYjeDAwMkE7JiN4MDAyQTsgJiN4MDAyQTsmI3gwMDJBOzwvcD4KKyAg
ICA8ZGl2IGNsYXNzPSJ0ZXN0Ij4KKyAgICAgICAgPGgyPmFzdGVyaXNrczwvaDI+CisgICAgICAg
IDxvbCBjbGFzcz0iYXN0ZXJpc2tzIj4KKyAgICAgICAgICAgIDxsaT4mI3gwMDJBOzwvbGk+Cisg
ICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4
MDAyQTsmI3gwMDJBOyYjeDAwMkE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gwMDJBOyYjeDAw
MkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJB
OyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsm
I3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7PC9saT4KKyAgICAgICAgICAg
IDxsaT4mI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gw
MDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAy
QTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+
JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsm
I3gwMDJBOyYjeDAwMkE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gwMDJBOyYjeDAwMkE7JiN4
MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gw
MDJBOzwvbGk+CisgICAgICAgIDwvb2w+CisgICAgICAgIDxvbCBjbGFzcz0iYXN0ZXJpc2tzIiBz
dGFydD0iMCI+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTs8L2xpPgorICAgICAgICA8L29sPgor
ICAgICAgICA8b2wgY2xhc3M9ImFzdGVyaXNrcyIgc3RhcnQ9Ii0yIj4KKyAgICAgICAgICAgIDxs
aT4mI3gwMDJBOyYjeDAwMkE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gwMDJBOzwvbGk+Cisg
ICAgICAgIDwvb2w+CisgICAgPC9kaXY+CisgICAgCisgICAgPGRpdiBjbGFzcz0idGVzdCI+Cisg
ICAgICAgIDxoMj5mb290bm90ZXM8L2gyPgorICAgICAgICA8b2wgY2xhc3M9ImZvb3Rub3RlcyI+
CisgICAgICAgICAgICA8bGk+JiN4MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDIwNTE7
PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gyMDIwOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4
MjAyMTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAg
ICAgICAgPGxpPiYjeDIwNTE7JiN4MjA1MTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDIwMjA7
JiN4MjAyMDs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDIwMjE7JiN4MjAyMTs8L2xpPgorICAg
ICAgICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8
bGk+JiN4MjA1MTsmI3gyMDUxOyYjeDIwNTE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gyMDIw
OyYjeDIwMjA7JiN4MjAyMDs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDIwMjE7JiN4MjAyMTsm
I3gyMDIxOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4
MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDIwNTE7JiN4MjA1MTsmI3gyMDUxOyYjeDIw
NTE7PC9saT4KKyAgICAgICAgPC9vbD4KKyAgICAgICAgPG9sIGNsYXNzPSJmb290bm90ZXMiIHN0
YXJ0PSIwIj4KKyAgICAgICAgICAgIDxsaT4mI3gwMDJBOzwvbGk+CisgICAgICAgIDwvb2w+Cisg
ICAgICAgIDxvbCBjbGFzcz0iZm9vdG5vdGVzIiBzdGFydD0iLTIiPgorICAgICAgICAgICAgPGxp
PiYjeDIwNTE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gwMDJBOzwvbGk+CisgICAgICAgIDwv
b2w+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9saXN0cy93My1jc3MzLWxpc3Qtc3R5bGVzLXN5bWJvbGljLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9saXN0cy93
My1jc3MzLWxpc3Qtc3R5bGVzLXN5bWJvbGljLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xpc3RzL3czLWNzczMtbGlzdC1zdHlsZXMt
c3ltYm9saWMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1MiBAQAorbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4NzM1CisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA3ODV4
NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDc4NXg3MzUKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgNzg1eDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
NzY5eDU3MworICAgICAgUmVuZGVyQmxvY2sge0gxfSBhdCAoMCwwKSBzaXplIDc2OXgzNworICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MDJ4MzcKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MDI6ICJDU1MzIFN5bWJvbGljIGxpc3Qtc3R5bGUtdHlw
ZSIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCw1OCkgc2l6ZSA3Njl4NzIKKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDc1eDE4CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNDc1OiAiVGhpcyB0ZXN0cyB0aGF0IGFsbCBvZiB0aGUgc3ltYm9s
aWMgQ1NTMyBsaXN0LXN0eWxlLXR5cGVzIGFyZSBzdXBwb3J0ZWQgYXMgcGVyICIKKyAgICAgICAg
UmVuZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDI3MHgxOCBbY29sb3I9IzAwMDBFRV0KKyAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQ3NSwwKSBzaXplIDI3MHgxOAorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDQ3NSwwKSB3aWR0aCAyNzA6ICJzZWN0aW9uIDQuNSBvZiB0aGUg
c3BlYy4gQ1NTMyBMaXN0cyBtb2R1bGUiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwxOCkgc2l6ZSA3Njl4NTQKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggNzY5
OiAiKERyYWZ0IDcgTm92ZW1iZXIgMjAwMikuIFRoaXMgdGVzdCBQQVNTRUQgaWYgdGhlIGxpc3Qg
aXRlbSBtYXRjaGVzIGl0cyBidWxsZXQgZm9yIGV2ZXJ5IGxpc3QgaXRlbSAoYmVsb3cpLiBGb3Ig
ZXhhbXBsZSwgZm9yIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM2KSB3aWR0aCA3NDU6ICJ0
aGUgYXN0ZXJpc2tzIHN5bWJvbGljIHN5c3RlbSB0aGUgc2Vjb25kIDxsaT4gKHdoaWNoIGNvcnJl
c3BvbmRzIHRvIDIgaW4gdGhlIHN0YW5kYXJkIG9yZGVyaW5nIG9mIHRoZSBwb3NpdGl2ZSBpbnRl
Z2VycykiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNTQpIHdpZHRoIDE4MTogInNob3VsZCBi
ZSByZW5kZXJlZCBhczogKiogKioiCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxNDkp
IHNpemUgNzY5eDI4CisgICAgICAgIFJlbmRlckJsb2NrIHtIMn0gYXQgKDAsMCkgc2l6ZSA3Njl4
MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA4OXgyOAorICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggODk6ICJhc3Rlcmlza3MiCisgICAgICAg
IFJlbmRlckJsb2NrIChmbG9hdGluZykge09MfSBhdCAoMCw2Mykgc2l6ZSAyMDB4MTgwCisgICAg
ICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoMTAwLDApIHNpemUgODB4MTgKKyAgICAgICAg
ICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0xMiwwKSBzaXplIDh4MTg6ICIqIgorICAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgOHgxOAorICAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA4OiAiKiIKKyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7
TEl9IGF0ICgxMDAsMTgpIHNpemUgODB4MTgKKyAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIg
YXQgKC0yMCwwKSBzaXplIDE2eDE4OiAiKioiCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAxNngxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCAxNjogIioqIgorICAgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDEwMCwzNikg
c2l6ZSA4MHgxOAorICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTI4LDApIHNpemUg
MjR4MTg6ICIqKioiCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAyNHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNDogIioqKiIK
KyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICgxMDAsNTQpIHNpemUgODB4MTgKKyAg
ICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0zNiwwKSBzaXplIDMyeDE4OiAiKioqKiIK
KyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMyeDE4CisgICAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMyOiAiKioqKiIKKyAgICAgICAgICBS
ZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICgxMDAsNzIpIHNpemUgODB4MTgKKyAgICAgICAgICAgIFJl
bmRlckxpc3RNYXJrZXIgYXQgKC00NCwwKSBzaXplIDQweDE4OiAiKioqKioiCisgICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MHgxOAorICAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MDogIioqKioqIgorICAgICAgICAgIFJlbmRlckxpc3RJ
dGVtIHtMSX0gYXQgKDEwMCw5MCkgc2l6ZSA4MHgxOAorICAgICAgICAgICAgUmVuZGVyTGlzdE1h
cmtlciBhdCAoLTUyLDApIHNpemUgNDh4MTg6ICIqKioqKioiCisgICAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0OHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA0ODogIioqKioqKiIKKyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9
IGF0ICgxMDAsMTA4KSBzaXplIDgweDE4CisgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0
ICgtNjAsMCkgc2l6ZSA1NngxODogIioqKioqKioiCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA1NngxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA1NjogIioqKioqKioiCisgICAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAo
MTAwLDEyNikgc2l6ZSA4MHgxOAorICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTY4
LDApIHNpemUgNjR4MTg6ICIqKioqKioqKiIKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDY0eDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDY0OiAiKioqKioqKioiCisgICAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoMTAw
LDE0NCkgc2l6ZSA4MHgxOAorICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTc2LDAp
IHNpemUgNzJ4MTg6ICIqKioqKioqKioiCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA3MngxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCA3MjogIioqKioqKioqKiIKKyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICgxMDAs
MTYyKSBzaXplIDgweDE4CisgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtODQsMCkg
c2l6ZSA4MHgxODogIioqKioqKioqKioiCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA4MHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCA4MDogIioqKioqKioqKioiCisgICAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge09MfSBh
dCAoMjAwLDYzKSBzaXplIDEyOHgxOAorICAgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQg
KDEwMCwwKSBzaXplIDh4MTgKKyAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0xMiww
KSBzaXplIDh4MTg6ICIqIgorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgOHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA4OiAiKiIK
KyAgICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7T0x9IGF0ICgzMjgsNjMpIHNpemUgMTM2
eDM2CisgICAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoMTAwLDApIHNpemUgMTZ4MTgK
KyAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0yMCwwKSBzaXplIDE2eDE4OiAiKioi
CisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAxNngxOAorICAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAxNjogIioqIgorICAgICAgICAgIFJl
bmRlckxpc3RJdGVtIHtMSX0gYXQgKDEwMCwxOCkgc2l6ZSAxNngxOAorICAgICAgICAgICAgUmVu
ZGVyTGlzdE1hcmtlciBhdCAoLTEyLDApIHNpemUgOHgxODogIioiCisgICAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA4eDE4CisgICAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDg6ICIqIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTk2
KSBzaXplIDc2OXgyNDAKKyAgICAgICAgUmVuZGVyQmxvY2sge0gyfSBhdCAoMCwyMTIpIHNpemUg
NzY5eDI4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgOTN4MjgK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDkzOiAiZm9vdG5vdGVzIgorICAg
ICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtPTH0gYXQgKDAsMjc1KSBzaXplIDE1MngyNTYK
KyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICgxMDAsMCkgc2l6ZSAzMngxOAorICAg
ICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTEyLDApIHNpemUgOHgxODogIioiCisgICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA4eDE4CisgICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDg6ICIqIgorICAgICAgICAgIFJlbmRlckxpc3RJ
dGVtIHtMSX0gYXQgKDEwMCwxOCkgc2l6ZSAzMngxOQorICAgICAgICAgICAgUmVuZGVyTGlzdE1h
cmtlciBhdCAoLTEyLDEpIHNpemUgOHgxODogIlx4ezIwNTF9IgorICAgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDEpIHNpemUgOHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwxKSB3aWR0aCA4OiAiXHh7MjA1MX0iCisgICAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJ
fSBhdCAoMTAwLDM3KSBzaXplIDMyeDE4CisgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0
ICgtMTIsMCkgc2l6ZSA4eDE4OiAiXHh7MjAyMH0iCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA4eDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDg6ICJceHsyMDIwfSIKKyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICgx
MDAsNTUpIHNpemUgMzJ4MTgKKyAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0xMiww
KSBzaXplIDh4MTg6ICJceHsyMDIxfSIKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDh4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
ODogIlx4ezIwMjF9IgorICAgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDEwMCw3Mykg
c2l6ZSAzMngxOAorICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTIwLDApIHNpemUg
MTZ4MTg6ICIqKiIKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDE2eDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE2OiAiKioiCisg
ICAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoMTAwLDkxKSBzaXplIDMyeDE5CisgICAg
ICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMjAsMSkgc2l6ZSAxNngxODogIlx4ezIwNTF9
XHh7MjA1MX0iCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMSkgc2l6ZSAx
NngxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxKSB3aWR0aCAxNjogIlx4ezIwNTF9
XHh7MjA1MX0iCisgICAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoMTAwLDExMCkgc2l6
ZSAzMngxOAorICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTIwLDApIHNpemUgMTZ4
MTg6ICJceHsyMDIwfVx4ezIwMjB9IgorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMTZ4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
MTY6ICJceHsyMDIwfVx4ezIwMjB9IgorICAgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQg
KDEwMCwxMjgpIHNpemUgMzJ4MTgKKyAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0y
MCwwKSBzaXplIDE2eDE4OiAiXHh7MjAyMX1ceHsyMDIxfSIKKyAgICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE2eDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDE2OiAiXHh7MjAyMX1ceHsyMDIxfSIKKyAgICAgICAgICBSZW5kZXJMaXN0
SXRlbSB7TEl9IGF0ICgxMDAsMTQ2KSBzaXplIDMyeDE4CisgICAgICAgICAgICBSZW5kZXJMaXN0
TWFya2VyIGF0ICgtMjgsMCkgc2l6ZSAyNHgxODogIioqKiIKKyAgICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI0eDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDI0OiAiKioqIgorICAgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQg
KDEwMCwxNjQpIHNpemUgMzJ4MTkKKyAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0y
OCwxKSBzaXplIDI0eDE4OiAiXHh7MjA1MX1ceHsyMDUxfVx4ezIwNTF9IgorICAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEpIHNpemUgMjR4MTgKKyAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMSkgd2lkdGggMjQ6ICJceHsyMDUxfVx4ezIwNTF9XHh7MjA1MX0iCisgICAg
ICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoMTAwLDE4Mykgc2l6ZSAzMngxOAorICAgICAg
ICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTI4LDApIHNpemUgMjR4MTg6ICJceHsyMDIwfVx4
ezIwMjB9XHh7MjAyMH0iCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAyNHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNDogIlx4
ezIwMjB9XHh7MjAyMH1ceHsyMDIwfSIKKyAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0
ICgxMDAsMjAxKSBzaXplIDMyeDE4CisgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgt
MjgsMCkgc2l6ZSAyNHgxODogIlx4ezIwMjF9XHh7MjAyMX1ceHsyMDIxfSIKKyAgICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI0eDE4CisgICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDI0OiAiXHh7MjAyMX1ceHsyMDIxfVx4ezIwMjF9IgorICAg
ICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDEwMCwyMTkpIHNpemUgMzJ4MTgKKyAgICAg
ICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0zNiwwKSBzaXplIDMyeDE4OiAiKioqKiIKKyAg
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMyeDE4CisgICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMyOiAiKioqKiIKKyAgICAgICAgICBSZW5k
ZXJMaXN0SXRlbSB7TEl9IGF0ICgxMDAsMjM3KSBzaXplIDMyeDE5CisgICAgICAgICAgICBSZW5k
ZXJMaXN0TWFya2VyIGF0ICgtMzUsMSkgc2l6ZSAzMXgxODogIlx4ezIwNTF9XHh7MjA1MX1ceHsy
MDUxfVx4ezIwNTF9IgorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEpIHNp
emUgMzF4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMSkgd2lkdGggMzE6ICJceHsy
MDUxfVx4ezIwNTF9XHh7MjA1MX1ceHsyMDUxfSIKKyAgICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0
aW5nKSB7T0x9IGF0ICgxNTIsMjc1KSBzaXplIDEyOHgxOAorICAgICAgICAgIFJlbmRlckxpc3RJ
dGVtIHtMSX0gYXQgKDEwMCwwKSBzaXplIDh4MTgKKyAgICAgICAgICAgIFJlbmRlckxpc3RNYXJr
ZXIgYXQgKC0xMiwwKSBzaXplIDh4MTg6ICIqIgorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgOHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA4OiAiKiIKKyAgICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7T0x9IGF0ICgyODAs
Mjc1KSBzaXplIDEyOHgzNworICAgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDEwMCww
KSBzaXplIDh4MTkKKyAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0xMiwxKSBzaXpl
IDh4MTg6ICJceHsyMDUxfSIKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwx
KSBzaXplIDh4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMSkgd2lkdGggODogIlx4
ezIwNTF9IgorICAgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDEwMCwxOSkgc2l6ZSA4
eDE4CisgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMTIsMCkgc2l6ZSA4eDE4OiAi
KiIKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDh4MTgKKyAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggODogIioiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62485</attachid>
            <date>2010-07-23 22:02:26 -0700</date>
            <delta_ts>2010-07-29 21:30:49 -0700</delta_ts>
            <desc>Patch with test case</desc>
            <filename>Bug36734.patch</filename>
            <type>text/plain</type>
            <size>16249</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDAwNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMTAtMDctMjMgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBzeW1ib2xpYyBDU1MzIGxpc3Qtc3R5bGUtdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NzM0CisKKyAgICAgICAgSW1wbGVtZW50cyBh
bGwgb2YgdGhlIHN5bWJvbGljIENTUzMgbGlzdC1zdHlsZS10eXBlcyBhcyBwZXIKKyAgICAgICAg
c2VjdGlvbiA0LjUgb2YgdGhlIENTUzMgTGlzdHMgbW9kdWxlIDxodHRwOi8vd3d3LnczLm9yZy9U
Ui9jc3MzLWxpc3RzLyNzeW1ib2xpYz4uCisKKyAgICAgICAgVGVzdDogZmFzdC9saXN0cy93My1j
c3MzLWxpc3Qtc3R5bGVzLXN5bWJvbGljLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlQ1NTVG9rZW5pemVyLnJlMmpzOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Oik6CisgICAgICAgIChXZWJDb3JlOjp0b1NlcXVlbmNlKTogUmVuYW1lZCAoZm9ybWVybHkg
dG9BbHBoYWJldGljT3JOdW1lcmljKS4KKyAgICAgICAgKFdlYkNvcmU6OnRvU3ltYm9saWMpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvQWxwaGFiZXRpYyk6CisgICAgICAgIChXZWJDb3Jl
Ojp0b051bWVyaWMpOgorICAgICAgICAoV2ViQ29yZTo6bGlzdE1hcmtlclN1ZmZpeCk6CisgICAg
ICAgIChXZWJDb3JlOjpsaXN0TWFya2VyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
aXN0TWFya2VyOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpj
YWxjUHJlZldpZHRocyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpnZXRS
ZWxhdGl2ZU1hcmtlclJlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKwogMjAxMC0wNy0yMyAgUmFmYWVs
IEFudG9nbm9sbGkgIDxhbnRvZ25vbGxpQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFudG9uaW8gR29tZXMuCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZU1hcHBpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVN
YXBwaW5ncy5oCShyZXZpc2lvbiA2NDAwNSkKKysrIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlTWFwcGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTAwNCw2ICsxMDA0LDkgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTUwogICAgIGNhc2UgQXJtZW5pYW46CiAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFybWVuaWFuOwogICAgICAgICBicmVhazsK
KyAgICBjYXNlIEFzdGVyaXNrczoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXN0
ZXJpc2tzOworICAgICAgICBicmVhazsKICAgICBjYXNlIEJpbmFyeUxpc3RTdHlsZToKICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQmluYXJ5OwogICAgICAgICBicmVhazsKQEAgLTEw
ODUsNiArMTA4OCw5IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1MK
ICAgICBjYXNlIEV0aGlvcGljSGFsZWhhbWVUaWc6CiAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUV0aGlvcGljSGFsZWhhbWVUaWc7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9v
dG5vdGVzOgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVGb290bm90ZXM7CisgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgR2VvcmdpYW46CiAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUdlb3JnaWFuOwogICAgICAgICBicmVhazsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1Zh
bHVlS2V5d29yZHMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgkocmV2aXNpb24gNjQwMDUpCisrKyBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC0yODgsNiArMjg4LDggQEAgdGlncmlueWEtZXQtYWJlZ2VkZQog
ZXRoaW9waWMtYWJlZ2VkZS10aS1ldAogdXBwZXItZ3JlZWsKIHVwcGVyLW5vcndlZ2lhbgorYXN0
ZXJpc2tzCitmb290bm90ZXMKIGhlYnJldwogYXJtZW5pYW4KIGdlb3JnaWFuCkluZGV4OiBXZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlQ1NTVG9rZW5pemVyLnJlMmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VDU1NUb2tlbml6ZXIucmUy
anMJKHJldmlzaW9uIDY0MDA1KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJj
ZUNTU1Rva2VuaXplci5yZTJqcwkod29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgsNyBAQCBXZWJJ
bnNwZWN0b3IuU291cmNlQ1NTVG9rZW5pemVyID0gZnVuY3RpCiAgICAgCiAgICAgdGhpcy5fdmFs
dWVLZXl3b3JkcyA9IFsKICAgICAgICAgImFib3ZlIiwgImFic29sdXRlIiwgImFjdGl2ZWJvcmRl
ciIsICJhY3RpdmVjYXB0aW9uIiwgImFmYXIiLCAiYWZ0ZXItd2hpdGUtc3BhY2UiLCAiYWhlYWQi
LCAiYWxpYXMiLCAiYWxsIiwgImFsbC1zY3JvbGwiLAotICAgICAgICAiYWx0ZXJuYXRlIiwgImFs
d2F5cyIsImFtaGFyaWMiLCAiYW1oYXJpYy1hYmVnZWRlIiwgImFudGlhbGlhc2VkIiwgImFwcHdv
cmtzcGFjZSIsICJhcXVhIiwgImFyYWJpYy1pbmRpYyIsICJhcm1lbmlhbiIsCisgICAgICAgICJh
bHRlcm5hdGUiLCAiYWx3YXlzIiwiYW1oYXJpYyIsICJhbWhhcmljLWFiZWdlZGUiLCAiYW50aWFs
aWFzZWQiLCAiYXBwd29ya3NwYWNlIiwgImFxdWEiLCAiYXJhYmljLWluZGljIiwgImFybWVuaWFu
IiwgImFzdGVyaXNrcyIsCiAgICAgICAgICJhdXRvIiwgImF2b2lkIiwgImJhY2tncm91bmQiLCAi
YmFja3dhcmRzIiwgImJhc2VsaW5lIiwgImJlbG93IiwgImJpZGktb3ZlcnJpZGUiLCAiYmluYXJ5
IiwgImJlbmdhbGkiLCAiYmxhY2siLCAiYmxpbmsiLAogICAgICAgICAiYmxvY2siLCAiYmxvY2st
YXhpcyIsICJibHVlIiwgImJvbGQiLCAiYm9sZGVyIiwgImJvcmRlciIsICJib3JkZXItYm94Iiwg
ImJvdGgiLCAiYm90dG9tIiwgImJyZWFrLWFsbCIsICJicmVhay13b3JkIiwgImJ1dHRvbiIsCiAg
ICAgICAgICJidXR0b24tYmV2ZWwiLCAiYnV0dG9uZmFjZSIsICJidXR0b25oaWdobGlnaHQiLCAi
YnV0dG9uc2hhZG93IiwgImJ1dHRvbnRleHQiLCAiY2FtYm9kaWFuIiwgImNhcGl0YWxpemUiLCAi
Y2Fwcy1sb2NrLWluZGljYXRvciIsCkBAIC0xMTEsNyArMTExLDcgQEAgV2ViSW5zcGVjdG9yLlNv
dXJjZUNTU1Rva2VuaXplciA9IGZ1bmN0aQogICAgICAgICAiZXRoaW9waWMtYWJlZ2VkZS10aS1l
ciIsICJldGhpb3BpYy1hYmVnZWRlLXRpLWV0IiwgImV0aGlvcGljLWhhbGVoYW1lLWFhLWVyIiwg
ImV0aGlvcGljLWhhbGVoYW1lLWFhLWV0IiwKICAgICAgICAgImV0aGlvcGljLWhhbGVoYW1lLWFt
LWV0IiwgImV0aGlvcGljLWhhbGVoYW1lLWdleiIsICJldGhpb3BpYy1oYWxlaGFtZS1vbS1ldCIs
ICJldGhpb3BpYy1oYWxlaGFtZS1zaWQtZXQiLAogICAgICAgICAiZXRoaW9waWMtaGFsZWhhbWUt
c28tZXQiLCAiZXRoaW9waWMtaGFsZWhhbWUtdGktZXIiLCAiZXRoaW9waWMtaGFsZWhhbWUtdGkt
ZXQiLCAiZXRoaW9waWMtaGFsZWhhbWUtdGlnIiwgImV3LXJlc2l6ZSIsICJleHBhbmRlZCIsCi0g
ICAgICAgICJleHRyYS1jb25kZW5zZWQiLCAiZXh0cmEtZXhwYW5kZWQiLCAiZmFudGFzeSIsICJm
YXN0IiwgImZpbGwiLCAiZml4ZWQiLCAiZmxhdCIsICJmb3J3YXJkcyIsICJmcm9tIiwgImZ1Y2hz
aWEiLCAiZ2VvbWV0cmljUHJlY2lzaW9uIiwKKyAgICAgICAgImV4dHJhLWNvbmRlbnNlZCIsICJl
eHRyYS1leHBhbmRlZCIsICJmYW50YXN5IiwgImZhc3QiLCAiZmlsbCIsICJmaXhlZCIsICJmbGF0
IiwgImZvb3Rub3RlcyIsICJmb3J3YXJkcyIsICJmcm9tIiwgImZ1Y2hzaWEiLCAiZ2VvbWV0cmlj
UHJlY2lzaW9uIiwKICAgICAgICAgImdlb3JnaWFuIiwgImdyYXkiLCAiZ3JheXRleHQiLCAiZ3Jl
ZW4iLCAiZ3JleSIsICJncm9vdmUiLCAiZ3VqYXJhdGkiLCAiZ3VybXVraGkiLCAiaGFuZCIsICJo
YW5ndWwiLCAiaGFuZ3VsLWNvbnNvbmFudCIsICJoZWJyZXciLCAiaGVscCIsCiAgICAgICAgICJo
aWRkZW4iLCAiaGlkZSIsICJoaWdoZXIiLCAiaGlnaGxpZ2h0IiwgImhpZ2hsaWdodHRleHQiLCAi
aGlyYWdhbmEiLCAiaGlyYWdhbmEtaXJvaGEiLCAiaG9yaXpvbnRhbCIsICJoc2wiLCAiaHNsYSIs
ICJpY29uIiwgImlnbm9yZSIsCiAgICAgICAgICJpbmFjdGl2ZWJvcmRlciIsICJpbmFjdGl2ZWNh
cHRpb24iLCAiaW5hY3RpdmVjYXB0aW9udGV4dCIsICJpbmZpbml0ZSIsICJpbmZvYmFja2dyb3Vu
ZCIsICJpbmZvdGV4dCIsICJpbmhlcml0IiwgImluaXRpYWwiLCAiaW5saW5lIiwKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCShyZXZpc2lvbiA2NDAwNSkKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgaW50IGNNYXJrZXJQYWRk
aW5nID0gNzsKIAotZW51bSBTZXF1ZW5jZVR5cGUgeyBOdW1lcmljU2VxdWVuY2UsIEFscGhhYmV0
aWNTZXF1ZW5jZSB9OworZW51bSBTZXF1ZW5jZVR5cGUgeyBOdW1lcmljU2VxdWVuY2UsIEFscGhh
YmV0aWNTZXF1ZW5jZSwgU3ltYm9saWNTZXF1ZW5jZSB9OwogCiBzdGF0aWMgU3RyaW5nIHRvUm9t
YW4oaW50IG51bWJlciwgYm9vbCB1cHBlcikKIHsKQEAgLTgwLDkgKzgwLDkgQEAgc3RhdGljIFN0
cmluZyB0b1JvbWFuKGludCBudW1iZXIsIGJvb2wgdQogICAgIHJldHVybiBTdHJpbmcoJmxldHRl
cnNbbGV0dGVyc1NpemUgLSBsZW5ndGhdLCBsZW5ndGgpOwogfQogCi1zdGF0aWMgaW5saW5lIFN0
cmluZyB0b0FscGhhYmV0aWNPck51bWVyaWMoaW50IG51bWJlciwgY29uc3QgVUNoYXIqIHNlcXVl
bmNlLCBpbnQgc2VxdWVuY2VTaXplLCBTZXF1ZW5jZVR5cGUgdHlwZSkKK3N0YXRpYyBpbmxpbmUg
U3RyaW5nIHRvU2VxdWVuY2UoaW50IG51bWJlciwgY29uc3QgVUNoYXIqIHNlcXVlbmNlLCBpbnQg
c2VxdWVuY2VTaXplLCBTZXF1ZW5jZVR5cGUgdHlwZSkKIHsKLSAgICBBU1NFUlQoc2VxdWVuY2VT
aXplID49IDIpOworICAgIEFTU0VSVChzZXF1ZW5jZVNpemUgPj0gKHR5cGUgPT0gU3ltYm9saWNT
ZXF1ZW5jZSA/IDEgOiAyKSk7CiAKICAgICBjb25zdCBpbnQgbGV0dGVyc1NpemUgPSBzaXplb2Yo
bnVtYmVyKSAqIDggKyAxOyAvLyBCaW5hcnkgaXMgdGhlIHdvcnN0IGNhc2U7IHJlcXVpcmVzIG9u
ZSBjaGFyYWN0ZXIgcGVyIGJpdCBwbHVzIGEgbWludXMgc2lnbi4KIApAQCAtOTcsNiArOTcsOCBA
QCBzdGF0aWMgaW5saW5lIFN0cmluZyB0b0FscGhhYmV0aWNPck51bWVyCiAgICAgICAgIG51bWJl
clNoYWRvdyA9IC1udW1iZXI7CiAgICAgICAgIGlzTmVnYXRpdmVOdW1iZXIgPSB0cnVlOwogICAg
IH0KKyAgICBpZiAodHlwZSA9PSBTeW1ib2xpY1NlcXVlbmNlICYmIG51bWJlclNoYWRvdyA+IDAp
CisgICAgICAgIC0tbnVtYmVyU2hhZG93OwogICAgIGxldHRlcnNbbGV0dGVyc1NpemUgLSAxXSA9
IHNlcXVlbmNlW251bWJlclNoYWRvdyAlIHNlcXVlbmNlU2l6ZV07CiAgICAgaW50IGxlbmd0aCA9
IDE7CiAKQEAgLTEwNSwyOCArMTA3LDQyIEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHRvQWxwaGFi
ZXRpY09yTnVtZXIKICAgICAgICAgICAgIC0tbnVtYmVyU2hhZG93OwogICAgICAgICAgICAgbGV0
dGVyc1tsZXR0ZXJzU2l6ZSAtICsrbGVuZ3RoXSA9IHNlcXVlbmNlW251bWJlclNoYWRvdyAlIHNl
cXVlbmNlU2l6ZV07CiAgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHR5cGUgPT0gU3ltYm9saWNT
ZXF1ZW5jZSkgeworICAgICAgICB1bnNpZ25lZCBudW1TeW1ib2xzID0gbnVtYmVyU2hhZG93IC8g
c2VxdWVuY2VTaXplOworICAgICAgICB3aGlsZSAobnVtU3ltYm9scy0tKQorICAgICAgICAgICAg
bGV0dGVyc1tsZXR0ZXJzU2l6ZSAtICsrbGVuZ3RoXSA9IHNlcXVlbmNlW251bWJlclNoYWRvdyAl
IHNlcXVlbmNlU2l6ZV07CiAgICAgfSBlbHNlIHsKICAgICAgICAgd2hpbGUgKChudW1iZXJTaGFk
b3cgLz0gc2VxdWVuY2VTaXplKSA+IDApCiAgICAgICAgICAgICBsZXR0ZXJzW2xldHRlcnNTaXpl
IC0gKytsZW5ndGhdID0gc2VxdWVuY2VbbnVtYmVyU2hhZG93ICUgc2VxdWVuY2VTaXplXTsKICAg
ICB9Ci0gICAgaWYgKGlzTmVnYXRpdmVOdW1iZXIpCisgICAgaWYgKGlzTmVnYXRpdmVOdW1iZXIg
JiYgdHlwZSAhPSBTeW1ib2xpY1NlcXVlbmNlKSAvLyBXZSBkbyBub3Qgc2hvdyBhIG1pbnVzIHNp
Z24gZm9yIHN5bWJvbGljcy4KICAgICAgICAgbGV0dGVyc1tsZXR0ZXJzU2l6ZSAtICsrbGVuZ3Ro
XSA9IGh5cGhlbk1pbnVzOwogCiAgICAgQVNTRVJUKGxlbmd0aCA8PSBsZXR0ZXJzU2l6ZSk7CiAg
ICAgcmV0dXJuIFN0cmluZygmbGV0dGVyc1tsZXR0ZXJzU2l6ZSAtIGxlbmd0aF0sIGxlbmd0aCk7
CiB9CiAKK3N0YXRpYyBTdHJpbmcgdG9TeW1ib2xpYyhpbnQgbnVtYmVyLCBjb25zdCBVQ2hhciog
c3ltYm9scywgaW50IHN5bWJvbHNTaXplKQoreworICAgIHJldHVybiB0b1NlcXVlbmNlKG51bWJl
ciwgc3ltYm9scywgc3ltYm9sc1NpemUsIFN5bWJvbGljU2VxdWVuY2UpOworfQorCiBzdGF0aWMg
U3RyaW5nIHRvQWxwaGFiZXRpYyhpbnQgbnVtYmVyLCBjb25zdCBVQ2hhciogYWxwaGFiZXQsIGlu
dCBhbHBoYWJldFNpemUpCiB7CiAgICAgaWYgKG51bWJlciA8IDEpCiAgICAgICAgIHJldHVybiBT
dHJpbmc6Om51bWJlcihudW1iZXIpOwogCi0gICAgcmV0dXJuIHRvQWxwaGFiZXRpY09yTnVtZXJp
YyhudW1iZXIsIGFscGhhYmV0LCBhbHBoYWJldFNpemUsIEFscGhhYmV0aWNTZXF1ZW5jZSk7Cisg
ICAgcmV0dXJuIHRvU2VxdWVuY2UobnVtYmVyLCBhbHBoYWJldCwgYWxwaGFiZXRTaXplLCBBbHBo
YWJldGljU2VxdWVuY2UpOwogfQogCiBzdGF0aWMgU3RyaW5nIHRvTnVtZXJpYyhpbnQgbnVtYmVy
LCBjb25zdCBVQ2hhciogbnVtZXJhbHMsIGludCBudW1lcmFsc1NpemUpCiB7Ci0gICAgcmV0dXJu
IHRvQWxwaGFiZXRpY09yTnVtZXJpYyhudW1iZXIsIG51bWVyYWxzLCBudW1lcmFsc1NpemUsIE51
bWVyaWNTZXF1ZW5jZSk7CisgICAgcmV0dXJuIHRvU2VxdWVuY2UobnVtYmVyLCBudW1lcmFscywg
bnVtZXJhbHNTaXplLCBOdW1lcmljU2VxdWVuY2UpOworfQorCit0ZW1wbGF0ZSA8c2l6ZV90IHNp
emU+IHN0YXRpYyBpbmxpbmUgU3RyaW5nIHRvU3ltYm9saWMoaW50IG51bWJlciwgY29uc3QgVUNo
YXIoJmFscGhhYmV0KVtzaXplXSkKK3sKKyAgICByZXR1cm4gdG9TeW1ib2xpYyhudW1iZXIsIGFs
cGhhYmV0LCBzaXplKTsKIH0KIAogdGVtcGxhdGUgPHNpemVfdCBzaXplPiBzdGF0aWMgaW5saW5l
IFN0cmluZyB0b0FscGhhYmV0aWMoaW50IG51bWJlciwgY29uc3QgVUNoYXIoJmFscGhhYmV0KVtz
aXplXSkKQEAgLTM4NCw5ICs0MDAsMTEgQEAgc3RhdGljIFVDaGFyIGxpc3RNYXJrZXJTdWZmaXgo
RUxpc3RTdHlsZQogICAgIC8vIE5vdGUsIHRoZSBmb2xsb3dpbmcgc3dpdGNoIHN0YXRlbWVudCBo
YXMgYmVlbiBleHBsaWNpdGx5CiAgICAgLy8gZ3JvdXBlZCBieSBsaXN0LXN0eWxlLXR5cGUgc3Vm
Zml4LgogICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2UgTm9uZUxpc3RTdHlsZToKLSAgICBj
YXNlIERpc2M6CisgICAgY2FzZSBBc3Rlcmlza3M6CiAgICAgY2FzZSBDaXJjbGU6CisgICAgY2Fz
ZSBEaXNjOgorICAgIGNhc2UgRm9vdG5vdGVzOgorICAgIGNhc2UgTm9uZUxpc3RTdHlsZToKICAg
ICBjYXNlIFNxdWFyZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJl
dHVybiAnICc7CkBAIC00NzcsMTIgKzQ5NSwyNCBAQCBTdHJpbmcgbGlzdE1hcmtlclRleHQoRUxp
c3RTdHlsZVR5cGUgdHlwCiAgICAgICAgIGNhc2UgTm9uZUxpc3RTdHlsZToKICAgICAgICAgICAg
IHJldHVybiAiIjsKIAorICAgICAgICBjYXNlIEFzdGVyaXNrczogeworICAgICAgICAgICAgc3Rh
dGljIGNvbnN0IFVDaGFyIGFzdGVyaXNrc1N5bWJvbHNbMV0gPSB7CisgICAgICAgICAgICAgICAg
MHgwMDJBCisgICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIHRvU3ltYm9saWModmFs
dWUsIGFzdGVyaXNrc1N5bWJvbHMpOworICAgICAgICB9CiAgICAgICAgIC8vIFdlIHVzZSB0aGUg
c2FtZSBjaGFyYWN0ZXJzIGZvciB0ZXh0IHNlY3VyaXR5LgogICAgICAgICAvLyBTZWUgUmVuZGVy
VGV4dDo6c2V0SW50ZXJuYWxTdHJpbmcuCiAgICAgICAgIGNhc2UgQ2lyY2xlOgogICAgICAgICAg
ICAgcmV0dXJuIFN0cmluZygmd2hpdGVCdWxsZXQsIDEpOwogICAgICAgICBjYXNlIERpc2M6CiAg
ICAgICAgICAgICByZXR1cm4gU3RyaW5nKCZidWxsZXQsIDEpOworICAgICAgICBjYXNlIEZvb3Ru
b3RlczogeworICAgICAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIGZvb3Rub3Rlc1N5bWJvbHNb
NF0gPSB7CisgICAgICAgICAgICAgICAgMHgwMDJBLCAweDIwNTEsIDB4MjAyMCwgMHgyMDIxCisg
ICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIHRvU3ltYm9saWModmFsdWUsIGZvb3Ru
b3Rlc1N5bWJvbHMpOworICAgICAgICB9CiAgICAgICAgIGNhc2UgU3F1YXJlOgogICAgICAgICAg
ICAgLy8gVGhlIENTUyAyLjEgdGVzdCBzdWl0ZSB1c2VzIFUrMjVFRSBCTEFDSyBNRURJVU0gU01B
TEwgU1FVQVJFCiAgICAgICAgICAgICAvLyBpbnN0ZWFkLCBidXQgSSB0aGluayB0aGlzIGxvb2tz
IGJldHRlci4KQEAgLTEwMTcsNiArMTA0NywxMCBAQCB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OnBh
aW50KFBhaW50SW5mbyYgCiAKICAgICBFTGlzdFN0eWxlVHlwZSB0eXBlID0gc3R5bGUoKS0+bGlz
dFN0eWxlVHlwZSgpOwogICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFzdGVyaXNr
czoKKyAgICAgICAgY2FzZSBGb290bm90ZXM6CisgICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4
dChzdHlsZSgpLT5mb250KCksIFRleHRSdW4obV90ZXh0KSwgbWFya2VyLmxvY2F0aW9uKCkpOwor
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBjYXNlIERpc2M6CiAgICAgICAgICAgICBjb250
ZXh0LT5kcmF3RWxsaXBzZShtYXJrZXIpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTE5OCw2
ICsxMjMyLDExIEBAIHZvaWQgUmVuZGVyTGlzdE1hcmtlcjo6Y2FsY1ByZWZXaWR0aHMoKQogICAg
IHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIE5vbmVMaXN0U3R5bGU6CiAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBBc3Rlcmlza3M6CisgICAgICAgIGNhc2UgRm9vdG5vdGVz
OgorICAgICAgICAgICAgbV90ZXh0ID0gbGlzdE1hcmtlclRleHQodHlwZSwgbV9saXN0SXRlbS0+
dmFsdWUoKSk7CisgICAgICAgICAgICB3aWR0aCA9IGZvbnQud2lkdGgobV90ZXh0KTsgLy8gbm8g
c3VmZml4IGZvciB0aGVzZSB0eXBlcworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
Q2lyY2xlOgogICAgICAgICBjYXNlIERpc2M6CiAgICAgICAgIGNhc2UgU3F1YXJlOgpAQCAtMTM5
Niw2ICsxNDM1LDExIEBAIEludFJlY3QgUmVuZGVyTGlzdE1hcmtlcjo6Z2V0UmVsYXRpdmVNYXIK
IAogICAgIEVMaXN0U3R5bGVUeXBlIHR5cGUgPSBzdHlsZSgpLT5saXN0U3R5bGVUeXBlKCk7CiAg
ICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQXN0ZXJpc2tzOgorICAgICAgICBjYXNl
IEZvb3Rub3RlczogeworICAgICAgICAgICAgY29uc3QgRm9udCYgZm9udCA9IHN0eWxlKCktPmZv
bnQoKTsKKyAgICAgICAgICAgIHJldHVybiBJbnRSZWN0KHgoKSwgeSgpICsgZm9udC5hc2NlbnQo
KSwgZm9udC53aWR0aChtX3RleHQpLCBmb250LmhlaWdodCgpKTsKKyAgICAgICAgfQogICAgICAg
ICBjYXNlIERpc2M6CiAgICAgICAgIGNhc2UgQ2lyY2xlOgogICAgICAgICBjYXNlIFNxdWFyZTog
ewpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oCShyZXZpc2lvbiA2NDAwNSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3Niw2ICsyNzYsOCBAQCBlbnVtIEVM
aXN0U3R5bGVUeXBlIHsKICAgICBFdGhpb3BpY0FiZWdlZGVUaUV0LAogICAgIFVwcGVyR3JlZWss
CiAgICAgVXBwZXJOb3J3ZWdpYW4sCisgICAgQXN0ZXJpc2tzLAorICAgIEZvb3Rub3RlcywKICAg
ICBIZWJyZXcsCiAgICAgQXJtZW5pYW4sCiAgICAgR2VvcmdpYW4sCkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biA2NDAwNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDEwLTA3LTIzICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQg
c3ltYm9saWMgQ1NTMyBsaXN0LXN0eWxlLXR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjczNAorCisgICAgICAgIFRlc3RzIHRoYXQgYWxsIG9m
IHRoZSBzeW1ib2xpYyBDU1MzIGxpc3Qtc3R5bGUtdHlwZXMgYXJlIHN1cHBvcnRlZC4KKworICAg
ICAgICAqIGZhc3QvbGlzdHMvdzMtY3NzMy1saXN0LXN0eWxlcy1zeW1ib2xpYy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2xpc3RzL3czLWNzczMtbGlzdC1zdHlsZXMtc3ltYm9saWMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0wNy0yMyAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBBZGQgY2hyb21pdW0gZXhwZWN0
YXRpb25zIGZvciBuZXcgdGVzdHMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xpc3RzL3czLWNz
czMtbGlzdC1zdHlsZXMtc3ltYm9saWMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvbGlzdHMvdzMtY3NzMy1saXN0LXN0eWxlcy1zeW1ib2xpYy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xpc3RzL3czLWNzczMtbGlzdC1z
dHlsZXMtc3ltYm9saWMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBA
CitDU1MzIFN5bWJvbGljIGxpc3Qtc3R5bGUtdHlwZQorCithc3Rlcmlza3MKKworUEFTUworUEFT
UworUEFTUworZm9vdG5vdGVzCisKK1BBU1MKK1BBU1MKK1BBU1MKKwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9saXN0cy93My1jc3MzLWxpc3Qtc3R5bGVzLXN5bWJvbGljLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9saXN0cy93My1jc3MzLWxpc3Qtc3R5bGVzLXN5bWJvbGlj
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xpc3RzL3czLWNzczMtbGlz
dC1zdHlsZXMtc3ltYm9saWMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4NCBAQAorPGh0
bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9
InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KKyAgICA8c3R5bGU+CisgICAgICAgIC50ZXN0
IG9sIHsgZmxvYXQ6IGxlZnQ7IHBhZGRpbmctbGVmdDogMTAwcHg7IHBhZGRpbmctcmlnaHQ6IDIw
cHg7IH0KKyAgICAgICAgLnRlc3QgaDIgeyBjbGVhcjogbGVmdDsgfQorICAgICAgICAKKyAgICAg
ICAgLyogCisgICAgICAgIFRoZSBmb2xsb3dpbmcgc3R5bGVzIGFyZSBvcmRlcmVkIGFzIHRoZXkg
YXBwZWFyIGluIHNlY3Rpb24gNC41LiBvZiB0aGUgCisgICAgICAgIERyYWZ0IDcgTm92ZW1iZXIg
MjAwMiBkcmFmdCBvZiB0aGUgQ1NTMyBMaXN0cyBtb2R1bGUgPGh0dHA6Ly93d3cudzMub3JnL1RS
L2NzczMtbGlzdHMvI3N5bWJvbGljPi4KKyAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIG9s
LmFzdGVyaXNrcyB7IGxpc3Qtc3R5bGUtdHlwZTogYXN0ZXJpc2tzOyB9CisgICAgICAgIAorICAg
ICAgICBvbC5mb290bm90ZXMgeyBsaXN0LXN0eWxlLXR5cGU6IGZvb3Rub3RlczsgfQorICAgIDwv
c3R5bGU+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9kdW1wLWxpc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7Cisg
ICAgICAgICAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICBmaWx0ZXJMaXN0c1dpdGhSZXBsYWNl
bWVudChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdCBvbCIpLCBwcmludEZhaWxlZElm
TGlzdEl0ZW1NYXJrZXJOb3RFcXVhbExpc3RJdGVtVGV4dCwgcHJpbnRQYXNzZWRJZkVtcHR5U3Ry
aW5nKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImRlc2NyaXB0aW9uIikpOyAvLyBSZW1vdmUgZGVzY3JpcHRpb24gd2hlbiBy
dW5uaW5nIGluIERSVC4KKyAgICAgICAgfQorICAgICAgICB3aW5kb3cub25sb2FkID0gcnVuVGVz
dDsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxoMT5DU1MzIFN5bWJvbGlj
IGxpc3Qtc3R5bGUtdHlwZTwvaDE+CisgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj5UaGlzIHRlc3Rz
IHRoYXQgYWxsIG9mIHRoZSBzeW1ib2xpYyBDU1MzIGxpc3Qtc3R5bGUtdHlwZXMgYXJlIHN1cHBv
cnRlZCBhcyBwZXIgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1saXN0cy8jc3lt
Ym9saWMiPnNlY3Rpb24gNC41IG9mIHRoZSBzcGVjLiBDU1MzIExpc3RzIG1vZHVsZTwvYT4gKERy
YWZ0IDcgTm92ZW1iZXIgMjAwMikuIFRoaXMgdGVzdCBQQVNTRUQgaWYgdGhlIGxpc3QgaXRlbSBt
YXRjaGVzIGl0cyBidWxsZXQgZm9yIGV2ZXJ5IGxpc3QgaXRlbSAoYmVsb3cpLiBGb3IgZXhhbXBs
ZSwgZm9yIHRoZSBhc3Rlcmlza3Mgc3ltYm9saWMgc3lzdGVtIHRoZSBzZWNvbmQgJmx0O2xpJmd0
OyAod2hpY2ggY29ycmVzcG9uZHMgdG8gMiBpbiB0aGUgc3RhbmRhcmQgb3JkZXJpbmcgb2YgdGhl
IHBvc2l0aXZlIGludGVnZXJzKSBzaG91bGQgYmUgcmVuZGVyZWQgYXM6ICYjeDAwMkE7JiN4MDAy
QTsgJiN4MDAyQTsmI3gwMDJBOzwvcD4KKyAgICA8ZGl2IGNsYXNzPSJ0ZXN0Ij4KKyAgICAgICAg
PGgyPmFzdGVyaXNrczwvaDI+CisgICAgICAgIDxvbCBjbGFzcz0iYXN0ZXJpc2tzIj4KKyAgICAg
ICAgICAgIDxsaT4mI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJB
OzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7PC9saT4KKyAg
ICAgICAgICAgIDxsaT4mI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAg
ICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+
CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJB
OyYjeDAwMkE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsm
I3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4
MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gw
MDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAy
QTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7PC9saT4KKyAgICAgICAg
ICAgIDxsaT4mI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsm
I3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgIDwvb2w+CisgICAg
ICAgIDxvbCBjbGFzcz0iYXN0ZXJpc2tzIiBzdGFydD0iMCI+CisgICAgICAgICAgICA8bGk+JiN4
MDAyQTs8L2xpPgorICAgICAgICA8L29sPgorICAgICAgICA8b2wgY2xhc3M9ImFzdGVyaXNrcyIg
c3RhcnQ9Ii0yIj4KKyAgICAgICAgICAgIDxsaT4mI3gwMDJBOyYjeDAwMkE7PC9saT4KKyAgICAg
ICAgICAgIDxsaT4mI3gwMDJBOzwvbGk+CisgICAgICAgIDwvb2w+CisgICAgPC9kaXY+CisgICAg
CisgICAgPGRpdiBjbGFzcz0idGVzdCI+CisgICAgICAgIDxoMj5mb290bm90ZXM8L2gyPgorICAg
ICAgICA8b2wgY2xhc3M9ImZvb3Rub3RlcyI+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTs8L2xp
PgorICAgICAgICAgICAgPGxpPiYjeDIwNTE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gyMDIw
OzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MjAyMTs8L2xpPgorICAgICAgICAgICAgPGxpPiYj
eDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDIwNTE7JiN4MjA1MTs8L2xp
PgorICAgICAgICAgICAgPGxpPiYjeDIwMjA7JiN4MjAyMDs8L2xpPgorICAgICAgICAgICAgPGxp
PiYjeDIwMjE7JiN4MjAyMTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTsm
I3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MjA1MTsmI3gyMDUxOyYjeDIwNTE7PC9s
aT4KKyAgICAgICAgICAgIDxsaT4mI3gyMDIwOyYjeDIwMjA7JiN4MjAyMDs8L2xpPgorICAgICAg
ICAgICAgPGxpPiYjeDIwMjE7JiN4MjAyMTsmI3gyMDIxOzwvbGk+CisgICAgICAgICAgICA8bGk+
JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxpPiYj
eDIwNTE7JiN4MjA1MTsmI3gyMDUxOyYjeDIwNTE7PC9saT4KKyAgICAgICAgPC9vbD4KKyAgICAg
ICAgPG9sIGNsYXNzPSJmb290bm90ZXMiIHN0YXJ0PSIwIj4KKyAgICAgICAgICAgIDxsaT4mI3gw
MDJBOzwvbGk+CisgICAgICAgIDwvb2w+CisgICAgICAgIDxvbCBjbGFzcz0iZm9vdG5vdGVzIiBz
dGFydD0iLTIiPgorICAgICAgICAgICAgPGxpPiYjeDIwNTE7PC9saT4KKyAgICAgICAgICAgIDxs
aT4mI3gwMDJBOzwvbGk+CisgICAgICAgIDwvb2w+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>
<flag name="review"
          id="50700"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63028</attachid>
            <date>2010-07-29 21:30:49 -0700</date>
            <delta_ts>2010-08-14 19:53:25 -0700</delta_ts>
            <desc>Patch with test case</desc>
            <filename>Bug36734_072910.patch</filename>
            <type>text/plain</type>
            <size>19099</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDMzMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMTAtMDctMjkgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBzeW1ib2xpYyBDU1MzIGxpc3Qtc3R5bGUtdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NzM0CisKKyAgICAgICAgSW1wbGVtZW50cyBh
bGwgb2YgdGhlIHN5bWJvbGljIENTUzMgbGlzdC1zdHlsZS10eXBlcyBhcyBwZXIKKyAgICAgICAg
c2VjdGlvbiA0LjUgb2YgdGhlIENTUzMgTGlzdHMgbW9kdWxlIDxodHRwOi8vd3d3LnczLm9yZy9U
Ui9jc3MzLWxpc3RzLyNzeW1ib2xpYz4uCisKKyAgICAgICAgVGVzdDogZmFzdC9saXN0cy93My1j
c3MzLWxpc3Qtc3R5bGVzLXN5bWJvbGljLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUpOiBBZGRlZCBsaXN0IHN0eWxlIHR5cGVzIEFzdGVyaXNrcyBhbmQg
Rm9vdG5vdGVzLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOiBEaXR0by4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUNTU1Rva2VuaXplci5yZTJqczogRGl0
dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6KToKKyAgICAgICAgKFdlYkNvcmU6OnRvU2VxdWVuY2UpOiBSZW5hbWVkIChmb3Jt
ZXJseSB0b0FscGhhYmV0aWNPck51bWVyaWMpLgorICAgICAgICAoV2ViQ29yZTo6dG9TeW1ib2xp
Yyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9BbHBoYWJldGljKToKKyAgICAgICAgKFdl
YkNvcmU6OnRvTnVtZXJpYyk6CisgICAgICAgIChXZWJDb3JlOjpsaXN0TWFya2VyU3VmZml4KTog
QWRkZWQgbGlzdCBzdHlsZSB0eXBlcyBBc3Rlcmlza3MgYW5kIEZvb3Rub3Rlcy4KKyAgICAgICAg
KFdlYkNvcmU6Omxpc3RNYXJrZXJUZXh0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMaXN0TWFya2VyOjpwYWludCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlz
dE1hcmtlcjo6Y2FsY1ByZWZXaWR0aHMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxpc3RNYXJrZXI6OmdldFJlbGF0aXZlTWFya2VyUmVjdCk6IERpdHRvLgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6Oik6CisKIDIwMTAtMDctMjkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2NDMxOC4KSW5kZXg6
IFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHJldmlzaW9uIDY0MzMzKQor
KysgV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDA1LDYgKzEwMDUsOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTCiAgICAgY2FzZSBBcm1lbmlhbjoKICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlQXJtZW5pYW47CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXN0ZXJpc2tzOgorICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBc3Rlcmlza3M7CisgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQmluYXJ5TGlzdFN0eWxlOgogICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVC
aW5hcnk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTA4Niw2ICsxMDg5LDkgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTUwogICAgIGNhc2UgRXRoaW9waWNIYWxlaGFtZVRp
ZzoKICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZVRpZzsK
ICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb290bm90ZXM6CisgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUZvb3Rub3RlczsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHZW9yZ2lh
bjoKICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlR2VvcmdpYW47CiAgICAgICAgIGJy
ZWFrOwpJbmRleDogV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCShyZXZpc2lvbiA2NDMzMykKKysrIFdl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI4OCw2ICsy
ODgsOCBAQCB0aWdyaW55YS1ldC1hYmVnZWRlCiBldGhpb3BpYy1hYmVnZWRlLXRpLWV0CiB1cHBl
ci1ncmVlawogdXBwZXItbm9yd2VnaWFuCithc3Rlcmlza3MKK2Zvb3Rub3RlcwogaGVicmV3CiBh
cm1lbmlhbgogZ2VvcmdpYW4KSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VDU1NUb2tlbml6ZXIucmUyanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NvdXJjZUNTU1Rva2VuaXplci5yZTJqcwkocmV2aXNpb24gNjQzMzMpCisrKyBXZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlQ1NTVG9rZW5pemVyLnJlMmpzCSh3b3JraW5n
IGNvcHkpCkBAIC05OCw3ICs5OCw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VDU1NUb2tlbml6ZXIg
PSBmdW5jdGkKICAgICAKICAgICB0aGlzLl92YWx1ZUtleXdvcmRzID0gWwogICAgICAgICAiYWJv
dmUiLCAiYWJzb2x1dGUiLCAiYWN0aXZlYm9yZGVyIiwgImFjdGl2ZWNhcHRpb24iLCAiYWZhciIs
ICJhZnRlci13aGl0ZS1zcGFjZSIsICJhaGVhZCIsICJhbGlhcyIsICJhbGwiLCAiYWxsLXNjcm9s
bCIsCi0gICAgICAgICJhbHRlcm5hdGUiLCAiYWx3YXlzIiwiYW1oYXJpYyIsICJhbWhhcmljLWFi
ZWdlZGUiLCAiYW50aWFsaWFzZWQiLCAiYXBwd29ya3NwYWNlIiwgImFxdWEiLCAiYXJhYmljLWlu
ZGljIiwgImFybWVuaWFuIiwKKyAgICAgICAgImFsdGVybmF0ZSIsICJhbHdheXMiLCJhbWhhcmlj
IiwgImFtaGFyaWMtYWJlZ2VkZSIsICJhbnRpYWxpYXNlZCIsICJhcHB3b3Jrc3BhY2UiLCAiYXF1
YSIsICJhcmFiaWMtaW5kaWMiLCAiYXJtZW5pYW4iLCAiYXN0ZXJpc2tzIiwKICAgICAgICAgImF1
dG8iLCAiYXZvaWQiLCAiYmFja2dyb3VuZCIsICJiYWNrd2FyZHMiLCAiYmFzZWxpbmUiLCAiYmVs
b3ciLCAiYmlkaS1vdmVycmlkZSIsICJiaW5hcnkiLCAiYmVuZ2FsaSIsICJibGFjayIsICJibGlu
ayIsCiAgICAgICAgICJibG9jayIsICJibG9jay1heGlzIiwgImJsdWUiLCAiYm9sZCIsICJib2xk
ZXIiLCAiYm9yZGVyIiwgImJvcmRlci1ib3giLCAiYm90aCIsICJib3R0b20iLCAiYnJlYWstYWxs
IiwgImJyZWFrLXdvcmQiLCAiYnV0dG9uIiwKICAgICAgICAgImJ1dHRvbi1iZXZlbCIsICJidXR0
b25mYWNlIiwgImJ1dHRvbmhpZ2hsaWdodCIsICJidXR0b25zaGFkb3ciLCAiYnV0dG9udGV4dCIs
ICJjYW1ib2RpYW4iLCAiY2FwaXRhbGl6ZSIsICJjYXBzLWxvY2staW5kaWNhdG9yIiwKQEAgLTEx
MSw3ICsxMTEsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlQ1NTVG9rZW5pemVyID0gZnVuY3RpCiAg
ICAgICAgICJldGhpb3BpYy1hYmVnZWRlLXRpLWVyIiwgImV0aGlvcGljLWFiZWdlZGUtdGktZXQi
LCAiZXRoaW9waWMtaGFsZWhhbWUtYWEtZXIiLCAiZXRoaW9waWMtaGFsZWhhbWUtYWEtZXQiLAog
ICAgICAgICAiZXRoaW9waWMtaGFsZWhhbWUtYW0tZXQiLCAiZXRoaW9waWMtaGFsZWhhbWUtZ2V6
IiwgImV0aGlvcGljLWhhbGVoYW1lLW9tLWV0IiwgImV0aGlvcGljLWhhbGVoYW1lLXNpZC1ldCIs
CiAgICAgICAgICJldGhpb3BpYy1oYWxlaGFtZS1zby1ldCIsICJldGhpb3BpYy1oYWxlaGFtZS10
aS1lciIsICJldGhpb3BpYy1oYWxlaGFtZS10aS1ldCIsICJldGhpb3BpYy1oYWxlaGFtZS10aWci
LCAiZXctcmVzaXplIiwgImV4cGFuZGVkIiwKLSAgICAgICAgImV4dHJhLWNvbmRlbnNlZCIsICJl
eHRyYS1leHBhbmRlZCIsICJmYW50YXN5IiwgImZhc3QiLCAiZmlsbCIsICJmaXhlZCIsICJmbGF0
IiwgImZvcndhcmRzIiwgImZyb20iLCAiZnVjaHNpYSIsICJnZW9tZXRyaWNQcmVjaXNpb24iLAor
ICAgICAgICAiZXh0cmEtY29uZGVuc2VkIiwgImV4dHJhLWV4cGFuZGVkIiwgImZhbnRhc3kiLCAi
ZmFzdCIsICJmaWxsIiwgImZpeGVkIiwgImZsYXQiLCAiZm9vdG5vdGVzIiwgImZvcndhcmRzIiwg
ImZyb20iLCAiZnVjaHNpYSIsICJnZW9tZXRyaWNQcmVjaXNpb24iLAogICAgICAgICAiZ2Vvcmdp
YW4iLCAiZ3JheSIsICJncmF5dGV4dCIsICJncmVlbiIsICJncmV5IiwgImdyb292ZSIsICJndWph
cmF0aSIsICJndXJtdWtoaSIsICJoYW5kIiwgImhhbmd1bCIsICJoYW5ndWwtY29uc29uYW50Iiwg
ImhlYnJldyIsICJoZWxwIiwKICAgICAgICAgImhpZGRlbiIsICJoaWRlIiwgImhpZ2hlciIsICJo
aWdobGlnaHQiLCAiaGlnaGxpZ2h0dGV4dCIsICJoaXJhZ2FuYSIsICJoaXJhZ2FuYS1pcm9oYSIs
ICJob3Jpem9udGFsIiwgImhzbCIsICJoc2xhIiwgImljb24iLCAiaWdub3JlIiwKICAgICAgICAg
ImluYWN0aXZlYm9yZGVyIiwgImluYWN0aXZlY2FwdGlvbiIsICJpbmFjdGl2ZWNhcHRpb250ZXh0
IiwgImluZmluaXRlIiwgImluZm9iYWNrZ3JvdW5kIiwgImluZm90ZXh0IiwgImluaGVyaXQiLCAi
aW5pdGlhbCIsICJpbmxpbmUiLApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1h
cmtlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtl
ci5jcHAJKHJldmlzaW9uIDY0MzMzKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1h
cmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjb25zdCBpbnQgY01hcmtlclBhZGRpbmcgPSA3OwogCi1lbnVtIFNlcXVlbmNlVHlw
ZSB7IE51bWVyaWNTZXF1ZW5jZSwgQWxwaGFiZXRpY1NlcXVlbmNlIH07CitlbnVtIFNlcXVlbmNl
VHlwZSB7IE51bWVyaWNTZXF1ZW5jZSwgQWxwaGFiZXRpY1NlcXVlbmNlLCBTeW1ib2xpY1NlcXVl
bmNlIH07CiAKIHN0YXRpYyBTdHJpbmcgdG9Sb21hbihpbnQgbnVtYmVyLCBib29sIHVwcGVyKQog
ewpAQCAtODAsMTEgKzgwLDExIEBAIHN0YXRpYyBTdHJpbmcgdG9Sb21hbihpbnQgbnVtYmVyLCBi
b29sIHUKICAgICByZXR1cm4gU3RyaW5nKCZsZXR0ZXJzW2xldHRlcnNTaXplIC0gbGVuZ3RoXSwg
bGVuZ3RoKTsKIH0KIAotc3RhdGljIGlubGluZSBTdHJpbmcgdG9BbHBoYWJldGljT3JOdW1lcmlj
KGludCBudW1iZXIsIGNvbnN0IFVDaGFyKiBzZXF1ZW5jZSwgaW50IHNlcXVlbmNlU2l6ZSwgU2Vx
dWVuY2VUeXBlIHR5cGUpCitzdGF0aWMgaW5saW5lIFN0cmluZyB0b1NlcXVlbmNlKGludCBudW1i
ZXIsIGNvbnN0IFVDaGFyKiBzZXF1ZW5jZSwgaW50IHNlcXVlbmNlU2l6ZSwgU2VxdWVuY2VUeXBl
IHR5cGUpCiB7Ci0gICAgQVNTRVJUKHNlcXVlbmNlU2l6ZSA+PSAyKTsKKyAgICBBU1NFUlQoc2Vx
dWVuY2VTaXplID49ICh0eXBlID09IFN5bWJvbGljU2VxdWVuY2UgPyAxIDogMikpOwogCi0gICAg
Y29uc3QgaW50IGxldHRlcnNTaXplID0gc2l6ZW9mKG51bWJlcikgKiA4ICsgMTsgLy8gQmluYXJ5
IGlzIHRoZSB3b3JzdCBjYXNlOyByZXF1aXJlcyBvbmUgY2hhcmFjdGVyIHBlciBiaXQgcGx1cyBh
IG1pbnVzIHNpZ24uCisgICAgY29uc3QgaW50IGxldHRlcnNTaXplID0gc2l6ZW9mKG51bWJlcikg
KiA4ICsgMTsgLy8gVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIHJlcHJlc2VudCBhIGJpbmFy
eSBudW1iZXIgcGx1cyBhIG1pbnVzLgogCiAgICAgVUNoYXIgbGV0dGVyc1tsZXR0ZXJzU2l6ZV07
CiAKQEAgLTk3LDYgKzk3LDggQEAgc3RhdGljIGlubGluZSBTdHJpbmcgdG9BbHBoYWJldGljT3JO
dW1lcgogICAgICAgICBudW1iZXJTaGFkb3cgPSAtbnVtYmVyOwogICAgICAgICBpc05lZ2F0aXZl
TnVtYmVyID0gdHJ1ZTsKICAgICB9CisgICAgaWYgKHR5cGUgPT0gU3ltYm9saWNTZXF1ZW5jZSAm
JiBudW1iZXJTaGFkb3cgPiAwKQorICAgICAgICAtLW51bWJlclNoYWRvdzsKICAgICBsZXR0ZXJz
W2xldHRlcnNTaXplIC0gMV0gPSBzZXF1ZW5jZVtudW1iZXJTaGFkb3cgJSBzZXF1ZW5jZVNpemVd
OwogICAgIGludCBsZW5ndGggPSAxOwogCkBAIC0xMDUsMjggKzEwNyw0NSBAQCBzdGF0aWMgaW5s
aW5lIFN0cmluZyB0b0FscGhhYmV0aWNPck51bWVyCiAgICAgICAgICAgICAtLW51bWJlclNoYWRv
dzsKICAgICAgICAgICAgIGxldHRlcnNbbGV0dGVyc1NpemUgLSArK2xlbmd0aF0gPSBzZXF1ZW5j
ZVtudW1iZXJTaGFkb3cgJSBzZXF1ZW5jZVNpemVdOwogICAgICAgICB9CisgICAgfSBlbHNlIGlm
ICh0eXBlID09IFN5bWJvbGljU2VxdWVuY2UpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoZSBhc3Rl
cmlza3MgbGlzdC1zdHlsZS10eXBlIGlzIHRoZSB3b3JzdCBjYXNlOyB3ZSBzaG91bGQgc2hvdyB8
bnVtYmVyfCBhc3Rlcmlza3MuCisgICAgICAgIC8vIFdlIHVzZSBsZXR0ZXJzU2l6ZSBhcyBhbiB1
cHBlci1ib3VuZCBmb3Igc3ltYm9saWNzLiBUaGF0IGlzLCB3ZSBvbmx5IHNob3cgYXQgbW9zdAor
ICAgICAgICAvLyBsZXR0ZXJzU2l6ZSBzeW1ib2xzIGJlZm9yZSByZXBlYXRpbmcgdGhlIHNlcXVl
bmNlLgorICAgICAgICB1bnNpZ25lZCBudW1TeW1ib2xzID0gKG51bWJlclNoYWRvdyAvIHNlcXVl
bmNlU2l6ZSkgJSBsZXR0ZXJzU2l6ZTsKKyAgICAgICAgd2hpbGUgKG51bVN5bWJvbHMtLSkKKyAg
ICAgICAgICAgIGxldHRlcnNbbGV0dGVyc1NpemUgLSArK2xlbmd0aF0gPSBzZXF1ZW5jZVtudW1i
ZXJTaGFkb3cgJSBzZXF1ZW5jZVNpemVdOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHdoaWxlICgo
bnVtYmVyU2hhZG93IC89IHNlcXVlbmNlU2l6ZSkgPiAwKQogICAgICAgICAgICAgbGV0dGVyc1ts
ZXR0ZXJzU2l6ZSAtICsrbGVuZ3RoXSA9IHNlcXVlbmNlW251bWJlclNoYWRvdyAlIHNlcXVlbmNl
U2l6ZV07CiAgICAgfQotICAgIGlmIChpc05lZ2F0aXZlTnVtYmVyKQorICAgIGlmIChpc05lZ2F0
aXZlTnVtYmVyICYmIHR5cGUgIT0gU3ltYm9saWNTZXF1ZW5jZSkgLy8gV2UgZG8gbm90IHNob3cg
YSBtaW51cyBzaWduIGZvciBzeW1ib2xpY3MuCiAgICAgICAgIGxldHRlcnNbbGV0dGVyc1NpemUg
LSArK2xlbmd0aF0gPSBoeXBoZW5NaW51czsKIAogICAgIEFTU0VSVChsZW5ndGggPD0gbGV0dGVy
c1NpemUpOwogICAgIHJldHVybiBTdHJpbmcoJmxldHRlcnNbbGV0dGVyc1NpemUgLSBsZW5ndGhd
LCBsZW5ndGgpOwogfQogCitzdGF0aWMgU3RyaW5nIHRvU3ltYm9saWMoaW50IG51bWJlciwgY29u
c3QgVUNoYXIqIHN5bWJvbHMsIGludCBzeW1ib2xzU2l6ZSkKK3sKKyAgICByZXR1cm4gdG9TZXF1
ZW5jZShudW1iZXIsIHN5bWJvbHMsIHN5bWJvbHNTaXplLCBTeW1ib2xpY1NlcXVlbmNlKTsKK30K
Kwogc3RhdGljIFN0cmluZyB0b0FscGhhYmV0aWMoaW50IG51bWJlciwgY29uc3QgVUNoYXIqIGFs
cGhhYmV0LCBpbnQgYWxwaGFiZXRTaXplKQogewogICAgIGlmIChudW1iZXIgPCAxKQogICAgICAg
ICByZXR1cm4gU3RyaW5nOjpudW1iZXIobnVtYmVyKTsKIAotICAgIHJldHVybiB0b0FscGhhYmV0
aWNPck51bWVyaWMobnVtYmVyLCBhbHBoYWJldCwgYWxwaGFiZXRTaXplLCBBbHBoYWJldGljU2Vx
dWVuY2UpOworICAgIHJldHVybiB0b1NlcXVlbmNlKG51bWJlciwgYWxwaGFiZXQsIGFscGhhYmV0
U2l6ZSwgQWxwaGFiZXRpY1NlcXVlbmNlKTsKIH0KIAogc3RhdGljIFN0cmluZyB0b051bWVyaWMo
aW50IG51bWJlciwgY29uc3QgVUNoYXIqIG51bWVyYWxzLCBpbnQgbnVtZXJhbHNTaXplKQogewot
ICAgIHJldHVybiB0b0FscGhhYmV0aWNPck51bWVyaWMobnVtYmVyLCBudW1lcmFscywgbnVtZXJh
bHNTaXplLCBOdW1lcmljU2VxdWVuY2UpOworICAgIHJldHVybiB0b1NlcXVlbmNlKG51bWJlciwg
bnVtZXJhbHMsIG51bWVyYWxzU2l6ZSwgTnVtZXJpY1NlcXVlbmNlKTsKK30KKwordGVtcGxhdGUg
PHNpemVfdCBzaXplPiBzdGF0aWMgaW5saW5lIFN0cmluZyB0b1N5bWJvbGljKGludCBudW1iZXIs
IGNvbnN0IFVDaGFyKCZhbHBoYWJldClbc2l6ZV0pCit7CisgICAgcmV0dXJuIHRvU3ltYm9saWMo
bnVtYmVyLCBhbHBoYWJldCwgc2l6ZSk7CiB9CiAKIHRlbXBsYXRlIDxzaXplX3Qgc2l6ZT4gc3Rh
dGljIGlubGluZSBTdHJpbmcgdG9BbHBoYWJldGljKGludCBudW1iZXIsIGNvbnN0IFVDaGFyKCZh
bHBoYWJldClbc2l6ZV0pCkBAIC0zODQsOSArNDAzLDExIEBAIHN0YXRpYyBVQ2hhciBsaXN0TWFy
a2VyU3VmZml4KEVMaXN0U3R5bGUKICAgICAvLyBOb3RlLCB0aGUgZm9sbG93aW5nIHN3aXRjaCBz
dGF0ZW1lbnQgaGFzIGJlZW4gZXhwbGljaXRseQogICAgIC8vIGdyb3VwZWQgYnkgbGlzdC1zdHls
ZS10eXBlIHN1ZmZpeC4KICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIE5vbmVMaXN0U3R5
bGU6Ci0gICAgY2FzZSBEaXNjOgorICAgIGNhc2UgQXN0ZXJpc2tzOgogICAgIGNhc2UgQ2lyY2xl
OgorICAgIGNhc2UgRGlzYzoKKyAgICBjYXNlIEZvb3Rub3RlczoKKyAgICBjYXNlIE5vbmVMaXN0
U3R5bGU6CiAgICAgY2FzZSBTcXVhcmU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm4gJyAnOwpAQCAtNDc3LDEyICs0OTgsMjQgQEAgU3RyaW5nIGxpc3RNYXJr
ZXJUZXh0KEVMaXN0U3R5bGVUeXBlIHR5cAogICAgICAgICBjYXNlIE5vbmVMaXN0U3R5bGU6CiAg
ICAgICAgICAgICByZXR1cm4gIiI7CiAKKyAgICAgICAgY2FzZSBBc3Rlcmlza3M6IHsKKyAgICAg
ICAgICAgIHN0YXRpYyBjb25zdCBVQ2hhciBhc3Rlcmlza3NTeW1ib2xzWzFdID0geworICAgICAg
ICAgICAgICAgIDB4MDAyQQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJldHVybiB0b1N5
bWJvbGljKHZhbHVlLCBhc3Rlcmlza3NTeW1ib2xzKTsKKyAgICAgICAgfQogICAgICAgICAvLyBX
ZSB1c2UgdGhlIHNhbWUgY2hhcmFjdGVycyBmb3IgdGV4dCBzZWN1cml0eS4KICAgICAgICAgLy8g
U2VlIFJlbmRlclRleHQ6OnNldEludGVybmFsU3RyaW5nLgogICAgICAgICBjYXNlIENpcmNsZToK
ICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoJndoaXRlQnVsbGV0LCAxKTsKICAgICAgICAgY2Fz
ZSBEaXNjOgogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygmYnVsbGV0LCAxKTsKKyAgICAgICAg
Y2FzZSBGb290bm90ZXM6IHsKKyAgICAgICAgICAgIHN0YXRpYyBjb25zdCBVQ2hhciBmb290bm90
ZXNTeW1ib2xzWzRdID0geworICAgICAgICAgICAgICAgIDB4MDAyQSwgMHgyMDUxLCAweDIwMjAs
IDB4MjAyMQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJldHVybiB0b1N5bWJvbGljKHZh
bHVlLCBmb290bm90ZXNTeW1ib2xzKTsKKyAgICAgICAgfQogICAgICAgICBjYXNlIFNxdWFyZToK
ICAgICAgICAgICAgIC8vIFRoZSBDU1MgMi4xIHRlc3Qgc3VpdGUgdXNlcyBVKzI1RUUgQkxBQ0sg
TUVESVVNIFNNQUxMIFNRVUFSRQogICAgICAgICAgICAgLy8gaW5zdGVhZCwgYnV0IEkgdGhpbmsg
dGhpcyBsb29rcyBiZXR0ZXIuCkBAIC0xMDE3LDYgKzEwNTAsMTAgQEAgdm9pZCBSZW5kZXJMaXN0
TWFya2VyOjpwYWludChQYWludEluZm8mIAogCiAgICAgRUxpc3RTdHlsZVR5cGUgdHlwZSA9IHN0
eWxlKCktPmxpc3RTdHlsZVR5cGUoKTsKICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2Fz
ZSBBc3Rlcmlza3M6CisgICAgICAgIGNhc2UgRm9vdG5vdGVzOgorICAgICAgICAgICAgY29udGV4
dC0+ZHJhd1RleHQoc3R5bGUoKS0+Zm9udCgpLCBUZXh0UnVuKG1fdGV4dCksIG1hcmtlci5sb2Nh
dGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2FzZSBEaXNjOgogICAgICAg
ICAgICAgY29udGV4dC0+ZHJhd0VsbGlwc2UobWFya2VyKTsKICAgICAgICAgICAgIHJldHVybjsK
QEAgLTExOTgsNiArMTIzNSwxMSBAQCB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OmNhbGNQcmVmV2lk
dGhzKCkKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgY2FzZSBOb25lTGlzdFN0eWxlOgog
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXN0ZXJpc2tzOgorICAgICAgICBjYXNl
IEZvb3Rub3RlczoKKyAgICAgICAgICAgIG1fdGV4dCA9IGxpc3RNYXJrZXJUZXh0KHR5cGUsIG1f
bGlzdEl0ZW0tPnZhbHVlKCkpOworICAgICAgICAgICAgd2lkdGggPSBmb250LndpZHRoKG1fdGV4
dCk7IC8vIG5vIHN1ZmZpeCBmb3IgdGhlc2UgdHlwZXMKKyAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIENpcmNsZToKICAgICAgICAgY2FzZSBEaXNjOgogICAgICAgICBjYXNlIFNxdWFy
ZToKQEAgLTEzOTYsNiArMTQzOCwxMSBAQCBJbnRSZWN0IFJlbmRlckxpc3RNYXJrZXI6OmdldFJl
bGF0aXZlTWFyCiAKICAgICBFTGlzdFN0eWxlVHlwZSB0eXBlID0gc3R5bGUoKS0+bGlzdFN0eWxl
VHlwZSgpOwogICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFzdGVyaXNrczoKKyAg
ICAgICAgY2FzZSBGb290bm90ZXM6IHsKKyAgICAgICAgICAgIGNvbnN0IEZvbnQmIGZvbnQgPSBz
dHlsZSgpLT5mb250KCk7CisgICAgICAgICAgICByZXR1cm4gSW50UmVjdCh4KCksIHkoKSArIGZv
bnQuYXNjZW50KCksIGZvbnQud2lkdGgobV90ZXh0KSwgZm9udC5oZWlnaHQoKSk7CisgICAgICAg
IH0KICAgICAgICAgY2FzZSBEaXNjOgogICAgICAgICBjYXNlIENpcmNsZToKICAgICAgICAgY2Fz
ZSBTcXVhcmU6IHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29u
c3RhbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuaAkocmV2aXNpb24gNjQzMzMpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzYsNiArMjc2LDgg
QEAgZW51bSBFTGlzdFN0eWxlVHlwZSB7CiAgICAgRXRoaW9waWNBYmVnZWRlVGlFdCwKICAgICBV
cHBlckdyZWVrLAogICAgIFVwcGVyTm9yd2VnaWFuLAorICAgIEFzdGVyaXNrcywKKyAgICBGb290
bm90ZXMsCiAgICAgSGVicmV3LAogICAgIEFybWVuaWFuLAogICAgIEdlb3JnaWFuLApJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gNjQzMzMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNy0yOSAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHJp
bS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW1wbGVtZW50IHN5bWJvbGljIENTUzMgbGlzdC1zdHlsZS10eXBlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY3MzQKKworICAgICAgICBUZXN0cyB0
aGF0IGFsbCBvZiB0aGUgc3ltYm9saWMgQ1NTMyBsaXN0LXN0eWxlLXR5cGVzIGFyZSBzdXBwb3J0
ZWQuCisKKyAgICAgICAgKiBmYXN0L2xpc3RzL3czLWNzczMtbGlzdC1zdHlsZXMtc3ltYm9saWMu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9saXN0cy93My1jc3MzLWxpc3Qtc3R5bGVzLXN5
bWJvbGljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMDctMjkgIFZpY3RvciBXYW5nICA8
dmljdG9yd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIGNocm9t
aXVtIHRlc3QgZXhwZWN0YXRpb25zIGZvciB0ZXN0OgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9s
aXN0cy93My1jc3MzLWxpc3Qtc3R5bGVzLXN5bWJvbGljLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xpc3RzL3czLWNzczMtbGlzdC1zdHlsZXMtc3ltYm9saWMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9saXN0cy93My1j
c3MzLWxpc3Qtc3R5bGVzLXN5bWJvbGljLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw0NSBAQAorQ1NTMyBTeW1ib2xpYyBsaXN0LXN0eWxlLXR5cGUKKworYXN0ZXJpc2tzCisK
K1BBU1MgbGlzdCBtYXJrZXIgaXMgKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgKiouCitQQVNTIGxp
c3QgbWFya2VyIGlzICoqKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgKioqKi4KK1BBU1MgbGlzdCBt
YXJrZXIgaXMgKioqKiouCitQQVNTIGxpc3QgbWFya2VyIGlzICoqKioqKi4KK1BBU1MgbGlzdCBt
YXJrZXIgaXMgKioqKioqKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgKioqKioqKiouCitQQVNTIGxp
c3QgbWFya2VyIGlzICoqKioqKioqKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgKioqKioqKioqKi4K
K1BBU1MgbGlzdCBtYXJrZXIgaXMgKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgKiouCitQQVNTIGxp
c3QgbWFya2VyIGlzICouCitQQVNTIGxpc3QgbWFya2VyIGlzICouCitQQVNTIGxpc3QgbWFya2Vy
IGlzICoqLgorUEFTUyBsaXN0IG1hcmtlciBpcyAqLgorUEFTUyBsaXN0IG1hcmtlciBpcyAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKiouCitmb290bm90ZXMKKworUEFTUyBsaXN0IG1h
cmtlciBpcyAqLgorUEFTUyBsaXN0IG1hcmtlciBpcyDigZEuCitQQVNTIGxpc3QgbWFya2VyIGlz
IOKAoC4KK1BBU1MgbGlzdCBtYXJrZXIgaXMg4oChLgorUEFTUyBsaXN0IG1hcmtlciBpcyAqKi4K
K1BBU1MgbGlzdCBtYXJrZXIgaXMg4oGR4oGRLgorUEFTUyBsaXN0IG1hcmtlciBpcyDigKDigKAu
CitQQVNTIGxpc3QgbWFya2VyIGlzIOKAoeKAoS4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgKioqLgor
UEFTUyBsaXN0IG1hcmtlciBpcyDigZHigZHigZEuCitQQVNTIGxpc3QgbWFya2VyIGlzIOKAoOKA
oOKAoC4KK1BBU1MgbGlzdCBtYXJrZXIgaXMg4oCh4oCh4oChLgorUEFTUyBsaXN0IG1hcmtlciBp
cyAqKioqLgorUEFTUyBsaXN0IG1hcmtlciBpcyDigZHigZHigZHigZEuCitQQVNTIGxpc3QgbWFy
a2VyIGlzICouCitQQVNTIGxpc3QgbWFya2VyIGlzIOKBkS4KK1BBU1MgbGlzdCBtYXJrZXIgaXMg
Ki4KK1BBU1MgbGlzdCBtYXJrZXIgaXMg4oCg4oCg4oCg4oCg4oCg4oCg4oCg4oCg4oCg4oCg4oCg
4oCg4oCg4oCg4oCg4oCg4oCgLgorUEFTUyBsaXN0IG1hcmtlciBpcyDigKHigKHigKHigKHigKHi
gKHigKHigKHigKHigKHigKHigKHigKHigKHigKHigKHigKEuCitQQVNTIGxpc3QgbWFya2VyIGlz
IOKAoOKAoOKAoOKAoOKAoOKAoOKAoOKAoOKAoOKAoOKAoOKAoOKAoOKAoOKAoOKAoOKAoC4KK1BB
U1MgbGlzdCBtYXJrZXIgaXMg4oGR4oGR4oGR4oGR4oGR4oGR4oGR4oGR4oGR4oGR4oGR4oGR4oGR
4oGR4oGR4oGR4oGRLgorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xpc3RzL3czLWNzczMtbGlz
dC1zdHlsZXMtc3ltYm9saWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xp
c3RzL3czLWNzczMtbGlzdC1zdHlsZXMtc3ltYm9saWMuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvbGlzdHMvdzMtY3NzMy1saXN0LXN0eWxlcy1zeW1ib2xpYy5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk1IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGh0
dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04
IiAvPgorICAgIDxzdHlsZT4KKyAgICAgICAgLnRlc3Qgb2wgeyBwYWRkaW5nLWxlZnQ6IDMwMHB4
OyB9CisgICAgICAgIAorICAgICAgICAvKiAKKyAgICAgICAgVGhlIGZvbGxvd2luZyBzdHlsZXMg
YXJlIG9yZGVyZWQgYXMgdGhleSBhcHBlYXIgaW4gc2VjdGlvbiA0LjUuIG9mIHRoZSAKKyAgICAg
ICAgRHJhZnQgNyBOb3ZlbWJlciAyMDAyIGRyYWZ0IG9mIHRoZSBDU1MzIExpc3RzIG1vZHVsZSA8
aHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1saXN0cy8jc3ltYm9saWM+LgorICAgICAgICAqLwor
ICAgICAgICAKKyAgICAgICAgb2wuYXN0ZXJpc2tzIHsgbGlzdC1zdHlsZS10eXBlOiBhc3Rlcmlz
a3M7IH0KKyAgICAgICAgCisgICAgICAgIG9sLmZvb3Rub3RlcyB7IGxpc3Qtc3R5bGUtdHlwZTog
Zm9vdG5vdGVzOyB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2R1
bXAtbGlzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gcnVu
VGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGZp
bHRlckxpc3RzV2l0aFJlcGxhY2VtZW50KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0
IG9sIiksIHRlc3RMaXN0SXRlbU1hcmtlckVxdWFsc0xpc3RJdGVtVGV4dCk7CisgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNj
cmlwdGlvbiIpKTsgLy8gUmVtb3ZlIGRlc2NyaXB0aW9uIHdoZW4gcnVubmluZyBpbiBEUlQuCisg
ICAgICAgIH0KKyAgICAgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8aDE+Q1NTMyBTeW1ib2xpYyBsaXN0LXN0eWxlLXR5cGU8
L2gxPgorICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+VGhpcyB0ZXN0cyB0aGF0IGFsbCBvZiB0aGUg
c3ltYm9saWMgQ1NTMyBsaXN0LXN0eWxlLXR5cGVzIGFyZSBzdXBwb3J0ZWQgYXMgcGVyIDxhIGhy
ZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtbGlzdHMvI3N5bWJvbGljIj5zZWN0aW9uIDQu
NSBvZiB0aGUgc3BlYy4gQ1NTMyBMaXN0cyBtb2R1bGU8L2E+IChEcmFmdCA3IE5vdmVtYmVyIDIw
MDIpLiBUaGlzIHRlc3QgUEFTU0VEIGlmIHRoZSBsaXN0IGl0ZW0gbWF0Y2hlcyBpdHMgYnVsbGV0
IGZvciBldmVyeSBsaXN0IGl0ZW0gKGJlbG93KS4gRm9yIGV4YW1wbGUsIGZvciB0aGUgYXN0ZXJp
c2tzIHN5bWJvbGljIHN5c3RlbSB0aGUgc2Vjb25kICZsdDtsaSZndDsgKHdoaWNoIGNvcnJlc3Bv
bmRzIHRvIDIgaW4gdGhlIHN0YW5kYXJkIG9yZGVyaW5nIG9mIHRoZSBwb3NpdGl2ZSBpbnRlZ2Vy
cykgc2hvdWxkIGJlIHJlbmRlcmVkIGFzOiAmI3gwMDJBOyYjeDAwMkE7ICYjeDAwMkE7JiN4MDAy
QTs8L3A+CisgICAgPGRpdiBjbGFzcz0idGVzdCI+CisgICAgICAgIDxoMj5hc3Rlcmlza3M8L2gy
PgorICAgICAgICA8b2wgY2xhc3M9ImFzdGVyaXNrcyI+CisgICAgICAgICAgICA8bGk+JiN4MDAy
QTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICAg
ICAgPGxpPiYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4
MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAw
MkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxp
PiYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+Cisg
ICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYj
eDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTsmI3gw
MDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAg
ICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJB
OyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsm
I3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYj
eDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICA8L29sPgorICAgICAgICA8b2wgY2xhc3M9ImFz
dGVyaXNrcyIgc3RhcnQ9IjAiPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7PC9saT4KKyAgICAg
ICAgPC9vbD4KKyAgICAgICAgPG9sIGNsYXNzPSJhc3Rlcmlza3MiIHN0YXJ0PSItMiI+CisgICAg
ICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAy
QTs8L2xpPgorICAgICAgICA8L29sPgorICAgICAgICA8b2wgY2xhc3M9ImFzdGVyaXNrcyIgc3Rh
cnQ9IjIxNDc0ODM2NDciPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7PC9saT4KKyAgICAgICAg
ICAgIDxsaT4mI3gwMDJBOyYjeDAwMkE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gwMDJBOzwv
bGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gw
MDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAw
MkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAy
QTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJB
OyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7
PC9saT4KKyAgICAgICAgPC9vbD4KKyAgICA8L2Rpdj4KKyAgICAKKyAgICA8ZGl2IGNsYXNzPSJ0
ZXN0Ij4KKyAgICAgICAgPGgyPmZvb3Rub3RlczwvaDI+CisgICAgICAgIDxvbCBjbGFzcz0iZm9v
dG5vdGVzIj4KKyAgICAgICAgICAgIDxsaT4mI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+
JiN4MjA1MTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDIwMjA7PC9saT4KKyAgICAgICAgICAg
IDxsaT4mI3gyMDIxOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOzwvbGk+
CisgICAgICAgICAgICA8bGk+JiN4MjA1MTsmI3gyMDUxOzwvbGk+CisgICAgICAgICAgICA8bGk+
JiN4MjAyMDsmI3gyMDIwOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MjAyMTsmI3gyMDIxOzwv
bGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7PC9saT4KKyAgICAg
ICAgICAgIDxsaT4mI3gyMDUxOyYjeDIwNTE7JiN4MjA1MTs8L2xpPgorICAgICAgICAgICAgPGxp
PiYjeDIwMjA7JiN4MjAyMDsmI3gyMDIwOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MjAyMTsm
I3gyMDIxOyYjeDIwMjE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gwMDJBOyYjeDAwMkE7JiN4
MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MjA1MTsmI3gyMDUxOyYjeDIw
NTE7JiN4MjA1MTs8L2xpPgorICAgICAgICA8L29sPgorICAgICAgICA8b2wgY2xhc3M9ImZvb3Ru
b3RlcyIgc3RhcnQ9IjAiPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7PC9saT4KKyAgICAgICAg
PC9vbD4KKyAgICAgICAgPG9sIGNsYXNzPSJmb290bm90ZXMiIHN0YXJ0PSItMiI+CisgICAgICAg
ICAgICA8bGk+JiN4MjA1MTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7PC9saT4KKyAg
ICAgICAgPC9vbD4KKyAgICAgICAgIDxvbCBjbGFzcz0iZm9vdG5vdGVzIiBzdGFydD0iMjE0NzQ4
MzY0NyI+CisgICAgICAgICAgICA8bGk+JiN4MjAyMDsmI3gyMDIwOyYjeDIwMjA7JiN4MjAyMDsm
I3gyMDIwOyYjeDIwMjA7JiN4MjAyMDsmI3gyMDIwOyYjeDIwMjA7JiN4MjAyMDsmI3gyMDIwOyYj
eDIwMjA7JiN4MjAyMDsmI3gyMDIwOyYjeDIwMjA7JiN4MjAyMDsmI3gyMDIwOzwvbGk+CisgICAg
ICAgICAgICA8bGk+JiN4MjAyMTsmI3gyMDIxOyYjeDIwMjE7JiN4MjAyMTsmI3gyMDIxOyYjeDIw
MjE7JiN4MjAyMTsmI3gyMDIxOyYjeDIwMjE7JiN4MjAyMTsmI3gyMDIxOyYjeDIwMjE7JiN4MjAy
MTsmI3gyMDIxOyYjeDIwMjE7JiN4MjAyMTsmI3gyMDIxOzwvbGk+CisgICAgICAgICAgICA8bGk+
JiN4MjAyMDsmI3gyMDIwOyYjeDIwMjA7JiN4MjAyMDsmI3gyMDIwOyYjeDIwMjA7JiN4MjAyMDsm
I3gyMDIwOyYjeDIwMjA7JiN4MjAyMDsmI3gyMDIwOyYjeDIwMjA7JiN4MjAyMDsmI3gyMDIwOyYj
eDIwMjA7JiN4MjAyMDsmI3gyMDIwOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MjA1MTsmI3gy
MDUxOyYjeDIwNTE7JiN4MjA1MTsmI3gyMDUxOyYjeDIwNTE7JiN4MjA1MTsmI3gyMDUxOyYjeDIw
NTE7JiN4MjA1MTsmI3gyMDUxOyYjeDIwNTE7JiN4MjA1MTsmI3gyMDUxOyYjeDIwNTE7JiN4MjA1
MTsmI3gyMDUxOzwvbGk+CisgICAgICAgIDwvb2w+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64434</attachid>
            <date>2010-08-14 19:53:25 -0700</date>
            <delta_ts>2010-08-26 21:27:37 -0700</delta_ts>
            <desc>Patch with test case</desc>
            <filename>Bug36734_081410.patch</filename>
            <type>text/plain</type>
            <size>18002</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTM3MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMTAtMDgtMTQgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBzeW1ib2xpYyBDU1MzIGxpc3Qtc3R5bGUtdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NzM0CisKKyAgICAgICAgSW1wbGVtZW50cyBh
bGwgb2YgdGhlIHN5bWJvbGljIENTUzMgbGlzdC1zdHlsZS10eXBlcyBhcyBwZXIKKyAgICAgICAg
c2VjdGlvbiA0LjUgb2YgdGhlIENTUzMgTGlzdHMgbW9kdWxlIDxodHRwOi8vd3d3LnczLm9yZy9U
Ui9jc3MzLWxpc3RzLyNzeW1ib2xpYz4uCisKKyAgICAgICAgVGVzdDogZmFzdC9saXN0cy93My1j
c3MzLWxpc3Qtc3R5bGVzLXN5bWJvbGljLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUpOiBBZGRlZCBsaXN0IHN0eWxlIHR5cGVzIEFzdGVyaXNrcyBhbmQg
Rm9vdG5vdGVzLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOiBEaXR0by4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUNTU1Rva2VuaXplci5yZTJqczogRGl0
dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6KToKKyAgICAgICAgKFdlYkNvcmU6OnRvU2VxdWVuY2UpOiBSZW5hbWVkIChmb3Jt
ZXJseSB0b0FscGhhYmV0aWNPck51bWVyaWMpLgorICAgICAgICAoV2ViQ29yZTo6dG9TeW1ib2xp
Yyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9BbHBoYWJldGljKToKKyAgICAgICAgKFdl
YkNvcmU6OnRvTnVtZXJpYyk6CisgICAgICAgIChXZWJDb3JlOjpsaXN0TWFya2VyU3VmZml4KTog
QWRkZWQgbGlzdCBzdHlsZSB0eXBlcyBBc3Rlcmlza3MgYW5kIEZvb3Rub3Rlcy4KKyAgICAgICAg
KFdlYkNvcmU6Omxpc3RNYXJrZXJUZXh0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMaXN0TWFya2VyOjpwYWludCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlz
dE1hcmtlcjo6Y2FsY1ByZWZXaWR0aHMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxpc3RNYXJrZXI6OmdldFJlbGF0aXZlTWFya2VyUmVjdCk6IERpdHRvLgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6Oik6CisKIDIwMTAtMDgtMTQgIFRhc3VrdSBTdXp1a2kgIDx0YXN1a3Uuc3V6dWtpQG5v
a2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpJbmRleDogV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAkocmV2aXNpb24gNjUzNzEpCisrKyBX
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEwMDUsNiArMTAwNSw5IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1MKICAgICBjYXNlIEFybWVuaWFuOgogICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVB
cm1lbmlhbjsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBc3Rlcmlza3M6CisgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFzdGVyaXNrczsKKyAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBCaW5hcnlMaXN0U3R5bGU6CiAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJpbmFy
eTsKICAgICAgICAgYnJlYWs7CkBAIC0xMDg2LDYgKzEwODksOSBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTCiAgICAgY2FzZSBFdGhpb3BpY0hhbGVoYW1lVGlnOgog
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lVGlnOwogICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEZvb3Rub3RlczoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlRm9vdG5vdGVzOworICAgICAgICBicmVhazsKICAgICBjYXNlIEdlb3JnaWFuOgog
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVHZW9yZ2lhbjsKICAgICAgICAgYnJlYWs7
CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHJldmlzaW9uIDY1MzcxKQorKysgV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjg4LDYgKzI4OCw4
IEBAIHRpZ3JpbnlhLWV0LWFiZWdlZGUKIGV0aGlvcGljLWFiZWdlZGUtdGktZXQKIHVwcGVyLWdy
ZWVrCiB1cHBlci1ub3J3ZWdpYW4KK2FzdGVyaXNrcworZm9vdG5vdGVzCiBoZWJyZXcKIGFybWVu
aWFuCiBnZW9yZ2lhbgpJbmRleDogV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUNT
U1Rva2VuaXplci5yZTJqcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlQ1NTVG9rZW5pemVyLnJlMmpzCShyZXZpc2lvbiA2NTM3MSkKKysrIFdlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VDU1NUb2tlbml6ZXIucmUyanMJKHdvcmtpbmcgY29w
eSkKQEAgLTk4LDcgKzk4LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUNTU1Rva2VuaXplciA9IGZ1
bmN0aQogICAgIAogICAgIHRoaXMuX3ZhbHVlS2V5d29yZHMgPSBbCiAgICAgICAgICJhYm92ZSIs
ICJhYnNvbHV0ZSIsICJhY3RpdmVib3JkZXIiLCAiYWN0aXZlY2FwdGlvbiIsICJhZmFyIiwgImFm
dGVyLXdoaXRlLXNwYWNlIiwgImFoZWFkIiwgImFsaWFzIiwgImFsbCIsICJhbGwtc2Nyb2xsIiwK
LSAgICAgICAgImFsdGVybmF0ZSIsICJhbHdheXMiLCJhbWhhcmljIiwgImFtaGFyaWMtYWJlZ2Vk
ZSIsICJhbnRpYWxpYXNlZCIsICJhcHB3b3Jrc3BhY2UiLCAiYXF1YSIsICJhcmFiaWMtaW5kaWMi
LCAiYXJtZW5pYW4iLAorICAgICAgICAiYWx0ZXJuYXRlIiwgImFsd2F5cyIsImFtaGFyaWMiLCAi
YW1oYXJpYy1hYmVnZWRlIiwgImFudGlhbGlhc2VkIiwgImFwcHdvcmtzcGFjZSIsICJhcXVhIiwg
ImFyYWJpYy1pbmRpYyIsICJhcm1lbmlhbiIsICJhc3Rlcmlza3MiLAogICAgICAgICAiYXV0byIs
ICJhdm9pZCIsICJiYWNrZ3JvdW5kIiwgImJhY2t3YXJkcyIsICJiYXNlbGluZSIsICJiZWxvdyIs
ICJiaWRpLW92ZXJyaWRlIiwgImJpbmFyeSIsICJiZW5nYWxpIiwgImJsYWNrIiwgImJsaW5rIiwK
ICAgICAgICAgImJsb2NrIiwgImJsb2NrLWF4aXMiLCAiYmx1ZSIsICJib2xkIiwgImJvbGRlciIs
ICJib3JkZXIiLCAiYm9yZGVyLWJveCIsICJib3RoIiwgImJvdHRvbSIsICJicmVhay1hbGwiLCAi
YnJlYWstd29yZCIsICJidXR0b24iLAogICAgICAgICAiYnV0dG9uLWJldmVsIiwgImJ1dHRvbmZh
Y2UiLCAiYnV0dG9uaGlnaGxpZ2h0IiwgImJ1dHRvbnNoYWRvdyIsICJidXR0b250ZXh0IiwgImNh
bWJvZGlhbiIsICJjYXBpdGFsaXplIiwgImNhcHMtbG9jay1pbmRpY2F0b3IiLApAQCAtMTExLDcg
KzExMSw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VDU1NUb2tlbml6ZXIgPSBmdW5jdGkKICAgICAg
ICAgImV0aGlvcGljLWFiZWdlZGUtdGktZXIiLCAiZXRoaW9waWMtYWJlZ2VkZS10aS1ldCIsICJl
dGhpb3BpYy1oYWxlaGFtZS1hYS1lciIsICJldGhpb3BpYy1oYWxlaGFtZS1hYS1ldCIsCiAgICAg
ICAgICJldGhpb3BpYy1oYWxlaGFtZS1hbS1ldCIsICJldGhpb3BpYy1oYWxlaGFtZS1nZXoiLCAi
ZXRoaW9waWMtaGFsZWhhbWUtb20tZXQiLCAiZXRoaW9waWMtaGFsZWhhbWUtc2lkLWV0IiwKICAg
ICAgICAgImV0aGlvcGljLWhhbGVoYW1lLXNvLWV0IiwgImV0aGlvcGljLWhhbGVoYW1lLXRpLWVy
IiwgImV0aGlvcGljLWhhbGVoYW1lLXRpLWV0IiwgImV0aGlvcGljLWhhbGVoYW1lLXRpZyIsICJl
dy1yZXNpemUiLCAiZXhwYW5kZWQiLAotICAgICAgICAiZXh0cmEtY29uZGVuc2VkIiwgImV4dHJh
LWV4cGFuZGVkIiwgImZhbnRhc3kiLCAiZmFzdCIsICJmaWxsIiwgImZpeGVkIiwgImZsYXQiLCAi
Zm9yd2FyZHMiLCAiZnJvbSIsICJmdWNoc2lhIiwgImdlb21ldHJpY1ByZWNpc2lvbiIsCisgICAg
ICAgICJleHRyYS1jb25kZW5zZWQiLCAiZXh0cmEtZXhwYW5kZWQiLCAiZmFudGFzeSIsICJmYXN0
IiwgImZpbGwiLCAiZml4ZWQiLCAiZmxhdCIsICJmb290bm90ZXMiLCAiZm9yd2FyZHMiLCAiZnJv
bSIsICJmdWNoc2lhIiwgImdlb21ldHJpY1ByZWNpc2lvbiIsCiAgICAgICAgICJnZW9yZ2lhbiIs
ICJncmF5IiwgImdyYXl0ZXh0IiwgImdyZWVuIiwgImdyZXkiLCAiZ3Jvb3ZlIiwgImd1amFyYXRp
IiwgImd1cm11a2hpIiwgImhhbmQiLCAiaGFuZ3VsIiwgImhhbmd1bC1jb25zb25hbnQiLCAiaGVi
cmV3IiwgImhlbHAiLAogICAgICAgICAiaGlkZGVuIiwgImhpZGUiLCAiaGlnaGVyIiwgImhpZ2hs
aWdodCIsICJoaWdobGlnaHR0ZXh0IiwgImhpcmFnYW5hIiwgImhpcmFnYW5hLWlyb2hhIiwgImhv
cml6b250YWwiLCAiaHNsIiwgImhzbGEiLCAiaWNvbiIsICJpZ25vcmUiLAogICAgICAgICAiaW5h
Y3RpdmVib3JkZXIiLCAiaW5hY3RpdmVjYXB0aW9uIiwgImluYWN0aXZlY2FwdGlvbnRleHQiLCAi
aW5maW5pdGUiLCAiaW5mb2JhY2tncm91bmQiLCAiaW5mb3RleHQiLCAiaW5oZXJpdCIsICJpbml0
aWFsIiwgImlubGluZSIsCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNw
cAkocmV2aXNpb24gNjUzNzEpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2Vy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNvbnN0IGludCBjTWFya2VyUGFkZGluZyA9IDc7CiAKLWVudW0gU2VxdWVuY2VUeXBlIHsg
TnVtZXJpY1NlcXVlbmNlLCBBbHBoYWJldGljU2VxdWVuY2UgfTsKK2VudW0gU2VxdWVuY2VUeXBl
IHsgTnVtZXJpY1NlcXVlbmNlLCBBbHBoYWJldGljU2VxdWVuY2UsIFN5bWJvbGljU2VxdWVuY2Ug
fTsKIAogc3RhdGljIFN0cmluZyB0b1JvbWFuKGludCBudW1iZXIsIGJvb2wgdXBwZXIpCiB7CkBA
IC04MCw1MyArODAsODEgQEAgc3RhdGljIFN0cmluZyB0b1JvbWFuKGludCBudW1iZXIsIGJvb2wg
dQogICAgIHJldHVybiBTdHJpbmcoJmxldHRlcnNbbGV0dGVyc1NpemUgLSBsZW5ndGhdLCBsZW5n
dGgpOwogfQogCi1zdGF0aWMgaW5saW5lIFN0cmluZyB0b0FscGhhYmV0aWNPck51bWVyaWMoaW50
IG51bWJlciwgY29uc3QgVUNoYXIqIHNlcXVlbmNlLCBpbnQgc2VxdWVuY2VTaXplLCBTZXF1ZW5j
ZVR5cGUgdHlwZSkKK3N0YXRpYyBpbmxpbmUgU3RyaW5nIHRvU2VxdWVuY2UoaW50IG51bWJlciwg
Y29uc3QgVUNoYXIqIHNlcXVlbmNlLCB1bnNpZ25lZCBzZXF1ZW5jZVNpemUsIFNlcXVlbmNlVHlw
ZSB0eXBlKQogewotICAgIEFTU0VSVChzZXF1ZW5jZVNpemUgPj0gMik7Ci0KLSAgICBjb25zdCBp
bnQgbGV0dGVyc1NpemUgPSBzaXplb2YobnVtYmVyKSAqIDggKyAxOyAvLyBCaW5hcnkgaXMgdGhl
IHdvcnN0IGNhc2U7IHJlcXVpcmVzIG9uZSBjaGFyYWN0ZXIgcGVyIGJpdCBwbHVzIGEgbWludXMg
c2lnbi4KLQotICAgIFVDaGFyIGxldHRlcnNbbGV0dGVyc1NpemVdOworICAgIEFTU0VSVChzZXF1
ZW5jZVNpemUgPj0gKHR5cGUgPT0gU3ltYm9saWNTZXF1ZW5jZSA/IDEgOiAyKSk7CiAKICAgICBi
b29sIGlzTmVnYXRpdmVOdW1iZXIgPSBmYWxzZTsKICAgICB1bnNpZ25lZCBudW1iZXJTaGFkb3cg
PSBudW1iZXI7Ci0gICAgaWYgKHR5cGUgPT0gQWxwaGFiZXRpY1NlcXVlbmNlKSB7CisKKyAgICBz
d2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFscGhhYmV0aWNTZXF1ZW5jZToKICAgICAgICAgQVNT
RVJUKG51bWJlciA+IDApOwogICAgICAgICAtLW51bWJlclNoYWRvdzsKLSAgICB9IGVsc2UgaWYg
KG51bWJlciA8IDApIHsKLSAgICAgICAgbnVtYmVyU2hhZG93ID0gLW51bWJlcjsKLSAgICAgICAg
aXNOZWdhdGl2ZU51bWJlciA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTnVtZXJp
Y1NlcXVlbmNlOgorICAgIGNhc2UgU3ltYm9saWNTZXF1ZW5jZToKKyAgICAgICAgaWYgKG51bWJl
ciA8IDApIHsKKyAgICAgICAgICAgIG51bWJlclNoYWRvdyA9IC1udW1iZXI7CisgICAgICAgICAg
ICBpc05lZ2F0aXZlTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICBjb25zdCB1bnNpZ25lZCBsZXR0ZXJzU2l6ZSA9IHNpemVvZihudW1iZXIpICog
OCArIDE7IC8vIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byByZXByZXNlbnQgYSBiaW5hcnkg
bnVtYmVyIHBsdXMgYSBtaW51cy4KKyAgICBWZWN0b3I8VUNoYXIsIGxldHRlcnNTaXplPiBsZXR0
ZXJzOworCisgICAgaWYgKHR5cGUgPT0gU3ltYm9saWNTZXF1ZW5jZSkgeworICAgICAgICAvLyBU
aGUgYXN0ZXJpc2tzIGxpc3Qtc3R5bGUtdHlwZSBpcyB0aGUgd29yc3QgY2FzZTsgd2Ugc2hvdyB8
bnVtYmVyU2hhZG93fCBhc3Rlcmlza3MuCisgICAgICAgIGlmIChudW1iZXJTaGFkb3cgPiAwKQor
ICAgICAgICAgICAgLS1udW1iZXJTaGFkb3c7CisgICAgICAgIGxldHRlcnMuYXBwZW5kKHNlcXVl
bmNlW251bWJlclNoYWRvdyAlIHNlcXVlbmNlU2l6ZV0pOworICAgICAgICB1bnNpZ25lZCBudW1T
eW1ib2xzID0gbnVtYmVyU2hhZG93IC8gc2VxdWVuY2VTaXplOworICAgICAgICB3aGlsZSAobnVt
U3ltYm9scy0tKQorICAgICAgICAgICAgbGV0dGVycy5hcHBlbmQoc2VxdWVuY2VbbnVtYmVyU2hh
ZG93ICUgc2VxdWVuY2VTaXplXSk7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmFkb3B0KGxldHRl
cnMpOwogICAgIH0KLSAgICBsZXR0ZXJzW2xldHRlcnNTaXplIC0gMV0gPSBzZXF1ZW5jZVtudW1i
ZXJTaGFkb3cgJSBzZXF1ZW5jZVNpemVdOwotICAgIGludCBsZW5ndGggPSAxOwogCisgICAgbGV0
dGVycy5maWxsKDAsIGxldHRlcnNTaXplKTsKKyAgICBsZXR0ZXJzW2xldHRlcnNTaXplIC0gMV0g
PSBzZXF1ZW5jZVtudW1iZXJTaGFkb3cgJSBzZXF1ZW5jZVNpemVdOworICAgIHVuc2lnbmVkIGxl
bmd0aCA9IDE7CiAgICAgaWYgKHR5cGUgPT0gQWxwaGFiZXRpY1NlcXVlbmNlKSB7CiAgICAgICAg
IHdoaWxlICgobnVtYmVyU2hhZG93IC89IHNlcXVlbmNlU2l6ZSkgPiAwKSB7CiAgICAgICAgICAg
ICAtLW51bWJlclNoYWRvdzsKICAgICAgICAgICAgIGxldHRlcnNbbGV0dGVyc1NpemUgLSArK2xl
bmd0aF0gPSBzZXF1ZW5jZVtudW1iZXJTaGFkb3cgJSBzZXF1ZW5jZVNpemVdOwogICAgICAgICB9
Ci0gICAgfSBlbHNlIHsKKyAgICB9IGVsc2UgaWYgKHR5cGUgPT0gTnVtZXJpY1NlcXVlbmNlKSB7
CiAgICAgICAgIHdoaWxlICgobnVtYmVyU2hhZG93IC89IHNlcXVlbmNlU2l6ZSkgPiAwKQogICAg
ICAgICAgICAgbGV0dGVyc1tsZXR0ZXJzU2l6ZSAtICsrbGVuZ3RoXSA9IHNlcXVlbmNlW251bWJl
clNoYWRvdyAlIHNlcXVlbmNlU2l6ZV07CisgICAgICAgIGlmIChpc05lZ2F0aXZlTnVtYmVyKQor
ICAgICAgICAgICAgbGV0dGVyc1tsZXR0ZXJzU2l6ZSAtICsrbGVuZ3RoXSA9IGh5cGhlbk1pbnVz
OwogICAgIH0KLSAgICBpZiAoaXNOZWdhdGl2ZU51bWJlcikKLSAgICAgICAgbGV0dGVyc1tsZXR0
ZXJzU2l6ZSAtICsrbGVuZ3RoXSA9IGh5cGhlbk1pbnVzOwogCiAgICAgQVNTRVJUKGxlbmd0aCA8
PSBsZXR0ZXJzU2l6ZSk7CiAgICAgcmV0dXJuIFN0cmluZygmbGV0dGVyc1tsZXR0ZXJzU2l6ZSAt
IGxlbmd0aF0sIGxlbmd0aCk7CiB9CiAKK3N0YXRpYyBTdHJpbmcgdG9TeW1ib2xpYyhpbnQgbnVt
YmVyLCBjb25zdCBVQ2hhciogc3ltYm9scywgaW50IHN5bWJvbHNTaXplKQoreworICAgIHJldHVy
biB0b1NlcXVlbmNlKG51bWJlciwgc3ltYm9scywgc3ltYm9sc1NpemUsIFN5bWJvbGljU2VxdWVu
Y2UpOworfQorCiBzdGF0aWMgU3RyaW5nIHRvQWxwaGFiZXRpYyhpbnQgbnVtYmVyLCBjb25zdCBV
Q2hhciogYWxwaGFiZXQsIGludCBhbHBoYWJldFNpemUpCiB7CiAgICAgaWYgKG51bWJlciA8IDEp
CiAgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihudW1iZXIpOwogCi0gICAgcmV0dXJuIHRv
QWxwaGFiZXRpY09yTnVtZXJpYyhudW1iZXIsIGFscGhhYmV0LCBhbHBoYWJldFNpemUsIEFscGhh
YmV0aWNTZXF1ZW5jZSk7CisgICAgcmV0dXJuIHRvU2VxdWVuY2UobnVtYmVyLCBhbHBoYWJldCwg
YWxwaGFiZXRTaXplLCBBbHBoYWJldGljU2VxdWVuY2UpOwogfQogCiBzdGF0aWMgU3RyaW5nIHRv
TnVtZXJpYyhpbnQgbnVtYmVyLCBjb25zdCBVQ2hhciogbnVtZXJhbHMsIGludCBudW1lcmFsc1Np
emUpCiB7Ci0gICAgcmV0dXJuIHRvQWxwaGFiZXRpY09yTnVtZXJpYyhudW1iZXIsIG51bWVyYWxz
LCBudW1lcmFsc1NpemUsIE51bWVyaWNTZXF1ZW5jZSk7CisgICAgcmV0dXJuIHRvU2VxdWVuY2Uo
bnVtYmVyLCBudW1lcmFscywgbnVtZXJhbHNTaXplLCBOdW1lcmljU2VxdWVuY2UpOworfQorCit0
ZW1wbGF0ZSA8c2l6ZV90IHNpemU+IHN0YXRpYyBpbmxpbmUgU3RyaW5nIHRvU3ltYm9saWMoaW50
IG51bWJlciwgY29uc3QgVUNoYXIoJmFscGhhYmV0KVtzaXplXSkKK3sKKyAgICByZXR1cm4gdG9T
eW1ib2xpYyhudW1iZXIsIGFscGhhYmV0LCBzaXplKTsKIH0KIAogdGVtcGxhdGUgPHNpemVfdCBz
aXplPiBzdGF0aWMgaW5saW5lIFN0cmluZyB0b0FscGhhYmV0aWMoaW50IG51bWJlciwgY29uc3Qg
VUNoYXIoJmFscGhhYmV0KVtzaXplXSkKQEAgLTM4NCw5ICs0MTIsMTEgQEAgc3RhdGljIFVDaGFy
IGxpc3RNYXJrZXJTdWZmaXgoRUxpc3RTdHlsZQogICAgIC8vIE5vdGUsIHRoZSBmb2xsb3dpbmcg
c3dpdGNoIHN0YXRlbWVudCBoYXMgYmVlbiBleHBsaWNpdGx5CiAgICAgLy8gZ3JvdXBlZCBieSBs
aXN0LXN0eWxlLXR5cGUgc3VmZml4LgogICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2UgTm9u
ZUxpc3RTdHlsZToKLSAgICBjYXNlIERpc2M6CisgICAgY2FzZSBBc3Rlcmlza3M6CiAgICAgY2Fz
ZSBDaXJjbGU6CisgICAgY2FzZSBEaXNjOgorICAgIGNhc2UgRm9vdG5vdGVzOgorICAgIGNhc2Ug
Tm9uZUxpc3RTdHlsZToKICAgICBjYXNlIFNxdWFyZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIHJldHVybiAnICc7CkBAIC00NzcsMTIgKzUwNywyNCBAQCBTdHJpbmcg
bGlzdE1hcmtlclRleHQoRUxpc3RTdHlsZVR5cGUgdHlwCiAgICAgICAgIGNhc2UgTm9uZUxpc3RT
dHlsZToKICAgICAgICAgICAgIHJldHVybiAiIjsKIAorICAgICAgICBjYXNlIEFzdGVyaXNrczog
eworICAgICAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIGFzdGVyaXNrc1N5bWJvbHNbMV0gPSB7
CisgICAgICAgICAgICAgICAgMHgwMDJBCisgICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0
dXJuIHRvU3ltYm9saWModmFsdWUsIGFzdGVyaXNrc1N5bWJvbHMpOworICAgICAgICB9CiAgICAg
ICAgIC8vIFdlIHVzZSB0aGUgc2FtZSBjaGFyYWN0ZXJzIGZvciB0ZXh0IHNlY3VyaXR5LgogICAg
ICAgICAvLyBTZWUgUmVuZGVyVGV4dDo6c2V0SW50ZXJuYWxTdHJpbmcuCiAgICAgICAgIGNhc2Ug
Q2lyY2xlOgogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygmd2hpdGVCdWxsZXQsIDEpOwogICAg
ICAgICBjYXNlIERpc2M6CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCZidWxsZXQsIDEpOwor
ICAgICAgICBjYXNlIEZvb3Rub3RlczogeworICAgICAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFy
IGZvb3Rub3Rlc1N5bWJvbHNbNF0gPSB7CisgICAgICAgICAgICAgICAgMHgwMDJBLCAweDIwNTEs
IDB4MjAyMCwgMHgyMDIxCisgICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIHRvU3lt
Ym9saWModmFsdWUsIGZvb3Rub3Rlc1N5bWJvbHMpOworICAgICAgICB9CiAgICAgICAgIGNhc2Ug
U3F1YXJlOgogICAgICAgICAgICAgLy8gVGhlIENTUyAyLjEgdGVzdCBzdWl0ZSB1c2VzIFUrMjVF
RSBCTEFDSyBNRURJVU0gU01BTEwgU1FVQVJFCiAgICAgICAgICAgICAvLyBpbnN0ZWFkLCBidXQg
SSB0aGluayB0aGlzIGxvb2tzIGJldHRlci4KQEAgLTEwMTcsNiArMTA1OSwxMCBAQCB2b2lkIFJl
bmRlckxpc3RNYXJrZXI6OnBhaW50KFBhaW50SW5mbyYgCiAKICAgICBFTGlzdFN0eWxlVHlwZSB0
eXBlID0gc3R5bGUoKS0+bGlzdFN0eWxlVHlwZSgpOwogICAgIHN3aXRjaCAodHlwZSkgeworICAg
ICAgICBjYXNlIEFzdGVyaXNrczoKKyAgICAgICAgY2FzZSBGb290bm90ZXM6CisgICAgICAgICAg
ICBjb250ZXh0LT5kcmF3VGV4dChzdHlsZSgpLT5mb250KCksIFRleHRSdW4obV90ZXh0KSwgbWFy
a2VyLmxvY2F0aW9uKCkpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBjYXNlIERpc2M6
CiAgICAgICAgICAgICBjb250ZXh0LT5kcmF3RWxsaXBzZShtYXJrZXIpOwogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtMTE5OCw2ICsxMjQ0LDExIEBAIHZvaWQgUmVuZGVyTGlzdE1hcmtlcjo6Y2Fs
Y1ByZWZXaWR0aHMoKQogICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIE5vbmVMaXN0
U3R5bGU6CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBc3Rlcmlza3M6CisgICAg
ICAgIGNhc2UgRm9vdG5vdGVzOgorICAgICAgICAgICAgbV90ZXh0ID0gbGlzdE1hcmtlclRleHQo
dHlwZSwgbV9saXN0SXRlbS0+dmFsdWUoKSk7CisgICAgICAgICAgICB3aWR0aCA9IGZvbnQud2lk
dGgobV90ZXh0KTsgLy8gbm8gc3VmZml4IGZvciB0aGVzZSB0eXBlcworICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQ2lyY2xlOgogICAgICAgICBjYXNlIERpc2M6CiAgICAgICAgIGNh
c2UgU3F1YXJlOgpAQCAtMTM5Niw2ICsxNDQ3LDExIEBAIEludFJlY3QgUmVuZGVyTGlzdE1hcmtl
cjo6Z2V0UmVsYXRpdmVNYXIKIAogICAgIEVMaXN0U3R5bGVUeXBlIHR5cGUgPSBzdHlsZSgpLT5s
aXN0U3R5bGVUeXBlKCk7CiAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQXN0ZXJp
c2tzOgorICAgICAgICBjYXNlIEZvb3Rub3RlczogeworICAgICAgICAgICAgY29uc3QgRm9udCYg
Zm9udCA9IHN0eWxlKCktPmZvbnQoKTsKKyAgICAgICAgICAgIHJldHVybiBJbnRSZWN0KHgoKSwg
eSgpICsgZm9udC5hc2NlbnQoKSwgZm9udC53aWR0aChtX3RleHQpLCBmb250LmhlaWdodCgpKTsK
KyAgICAgICAgfQogICAgICAgICBjYXNlIERpc2M6CiAgICAgICAgIGNhc2UgQ2lyY2xlOgogICAg
ICAgICBjYXNlIFNxdWFyZTogewpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGVDb25zdGFudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZUNvbnN0YW50cy5oCShyZXZpc2lvbiA2NTM3MSkKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3Niw2
ICsyNzYsOCBAQCBlbnVtIEVMaXN0U3R5bGVUeXBlIHsKICAgICBFdGhpb3BpY0FiZWdlZGVUaUV0
LAogICAgIFVwcGVyR3JlZWssCiAgICAgVXBwZXJOb3J3ZWdpYW4sCisgICAgQXN0ZXJpc2tzLAor
ICAgIEZvb3Rub3RlcywKICAgICBIZWJyZXcsCiAgICAgQXJtZW5pYW4sCiAgICAgR2VvcmdpYW4s
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA2NTM3MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA4LTE0ICBEYW5pZWwgQmF0ZXMgIDxk
YmF0ZXNAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbXBsZW1lbnQgc3ltYm9saWMgQ1NTMyBsaXN0LXN0eWxlLXR5cGVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjczNAorCisgICAgICAg
IFRlc3RzIHRoYXQgYWxsIG9mIHRoZSBzeW1ib2xpYyBDU1MzIGxpc3Qtc3R5bGUtdHlwZXMgYXJl
IHN1cHBvcnRlZC4KKworICAgICAgICAqIGZhc3QvbGlzdHMvdzMtY3NzMy1saXN0LXN0eWxlcy1z
eW1ib2xpYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2xpc3RzL3czLWNzczMtbGlzdC1z
dHlsZXMtc3ltYm9saWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0wOC0xNCAgUm9iIEJ1
aXMgIDxyd2xidWlzQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVs
emUuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xpc3RzL3czLWNzczMtbGlzdC1zdHlsZXMtc3lt
Ym9saWMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbGlzdHMv
dzMtY3NzMy1saXN0LXN0eWxlcy1zeW1ib2xpYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2xpc3RzL3czLWNzczMtbGlzdC1zdHlsZXMtc3ltYm9saWMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM3IEBACitDU1MzIFN5bWJvbGljIGxp
c3Qtc3R5bGUtdHlwZQorCithc3Rlcmlza3MKKworUEFTUyBsaXN0IG1hcmtlciBpcyAqLgorUEFT
UyBsaXN0IG1hcmtlciBpcyAqKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgKioqLgorUEFTUyBsaXN0
IG1hcmtlciBpcyAqKioqLgorUEFTUyBsaXN0IG1hcmtlciBpcyAqKioqKi4KK1BBU1MgbGlzdCBt
YXJrZXIgaXMgKioqKioqLgorUEFTUyBsaXN0IG1hcmtlciBpcyAqKioqKioqLgorUEFTUyBsaXN0
IG1hcmtlciBpcyAqKioqKioqKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgKioqKioqKioqLgorUEFT
UyBsaXN0IG1hcmtlciBpcyAqKioqKioqKioqLgorUEFTUyBsaXN0IG1hcmtlciBpcyAqLgorUEFT
UyBsaXN0IG1hcmtlciBpcyAqKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgKi4KK2Zvb3Rub3Rlcwor
CitQQVNTIGxpc3QgbWFya2VyIGlzICouCitQQVNTIGxpc3QgbWFya2VyIGlzIOKBkS4KK1BBU1Mg
bGlzdCBtYXJrZXIgaXMg4oCgLgorUEFTUyBsaXN0IG1hcmtlciBpcyDigKEuCitQQVNTIGxpc3Qg
bWFya2VyIGlzICoqLgorUEFTUyBsaXN0IG1hcmtlciBpcyDigZHigZEuCitQQVNTIGxpc3QgbWFy
a2VyIGlzIOKAoOKAoC4KK1BBU1MgbGlzdCBtYXJrZXIgaXMg4oCh4oChLgorUEFTUyBsaXN0IG1h
cmtlciBpcyAqKiouCitQQVNTIGxpc3QgbWFya2VyIGlzIOKBkeKBkeKBkS4KK1BBU1MgbGlzdCBt
YXJrZXIgaXMg4oCg4oCg4oCgLgorUEFTUyBsaXN0IG1hcmtlciBpcyDigKHigKHigKEuCitQQVNT
IGxpc3QgbWFya2VyIGlzICoqKiouCitQQVNTIGxpc3QgbWFya2VyIGlzIOKBkeKBkeKBkeKBkS4K
K1BBU1MgbGlzdCBtYXJrZXIgaXMgKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMg4oGRLgorUEFTUyBs
aXN0IG1hcmtlciBpcyAqLgorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xpc3RzL3czLWNzczMt
bGlzdC1zdHlsZXMtc3ltYm9saWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2xpc3RzL3czLWNzczMtbGlzdC1zdHlsZXMtc3ltYm9saWMuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvbGlzdHMvdzMtY3NzMy1saXN0LXN0eWxlcy1zeW1ib2xpYy5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDgzIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRh
IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0
Zi04IiAvPgorICAgIDxzdHlsZT4KKyAgICAgICAgLnRlc3Qgb2wgeyBwYWRkaW5nLWxlZnQ6IDMw
MHB4OyB9CisgICAgICAgIAorICAgICAgICAvKiAKKyAgICAgICAgVGhlIGZvbGxvd2luZyBzdHls
ZXMgYXJlIG9yZGVyZWQgYXMgdGhleSBhcHBlYXIgaW4gc2VjdGlvbiA0LjUuIG9mIHRoZSAKKyAg
ICAgICAgRHJhZnQgNyBOb3ZlbWJlciAyMDAyIGRyYWZ0IG9mIHRoZSBDU1MzIExpc3RzIG1vZHVs
ZSA8aHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1saXN0cy8jc3ltYm9saWM+LgorICAgICAgICAq
LworICAgICAgICAKKyAgICAgICAgb2wuYXN0ZXJpc2tzIHsgbGlzdC1zdHlsZS10eXBlOiBhc3Rl
cmlza3M7IH0KKyAgICAgICAgCisgICAgICAgIG9sLmZvb3Rub3RlcyB7IGxpc3Qtc3R5bGUtdHlw
ZTogZm9vdG5vdGVzOyB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2R1bXAtbGlzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24g
cnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAg
IGZpbHRlckxpc3RzV2l0aFJlcGxhY2VtZW50KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50
ZXN0IG9sIiksIHRlc3RMaXN0SXRlbU1hcmtlckVxdWFsc0xpc3RJdGVtVGV4dCk7CisgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJk
ZXNjcmlwdGlvbiIpKTsgLy8gUmVtb3ZlIGRlc2NyaXB0aW9uIHdoZW4gcnVubmluZyBpbiBEUlQu
CisgICAgICAgIH0KKyAgICAgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8aDE+Q1NTMyBTeW1ib2xpYyBsaXN0LXN0eWxlLXR5
cGU8L2gxPgorICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+VGhpcyB0ZXN0cyB0aGF0IGFsbCBvZiB0
aGUgc3ltYm9saWMgQ1NTMyBsaXN0LXN0eWxlLXR5cGVzIGFyZSBzdXBwb3J0ZWQgYXMgcGVyIDxh
IGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtbGlzdHMvI3N5bWJvbGljIj5zZWN0aW9u
IDQuNSBvZiB0aGUgc3BlYy4gQ1NTMyBMaXN0cyBtb2R1bGU8L2E+IChEcmFmdCA3IE5vdmVtYmVy
IDIwMDIpLiBUaGlzIHRlc3QgUEFTU0VEIGlmIHRoZSBsaXN0IGl0ZW0gbWF0Y2hlcyBpdHMgYnVs
bGV0IGZvciBldmVyeSBsaXN0IGl0ZW0gKGJlbG93KS4gRm9yIGV4YW1wbGUsIGZvciB0aGUgYXN0
ZXJpc2tzIHN5bWJvbGljIHN5c3RlbSB0aGUgc2Vjb25kICZsdDtsaSZndDsgKHdoaWNoIGNvcnJl
c3BvbmRzIHRvIDIgaW4gdGhlIHN0YW5kYXJkIG9yZGVyaW5nIG9mIHRoZSBwb3NpdGl2ZSBpbnRl
Z2Vycykgc2hvdWxkIGJlIHJlbmRlcmVkIGFzOiAmI3gwMDJBOyYjeDAwMkE7ICYjeDAwMkE7JiN4
MDAyQTs8L3A+CisgICAgPGRpdiBjbGFzcz0idGVzdCI+CisgICAgICAgIDxoMj5hc3Rlcmlza3M8
L2gyPgorICAgICAgICA8b2wgY2xhc3M9ImFzdGVyaXNrcyI+CisgICAgICAgICAgICA8bGk+JiN4
MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAg
ICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+
JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxpPiYj
eDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICAgICAg
PGxpPiYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+
CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJB
OyYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTsm
I3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAg
ICAgICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gw
MDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAy
QTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJB
OyYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICA8L29sPgorICAgICAgICA8b2wgY2xhc3M9
ImFzdGVyaXNrcyIgc3RhcnQ9IjAiPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7PC9saT4KKyAg
ICAgICAgPC9vbD4KKyAgICAgICAgPG9sIGNsYXNzPSJhc3Rlcmlza3MiIHN0YXJ0PSItMiI+Cisg
ICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4
MDAyQTs8L2xpPgorICAgICAgICA8L29sPgorICAgIDwvZGl2PgorICAgIAorICAgIDxkaXYgY2xh
c3M9InRlc3QiPgorICAgICAgICA8aDI+Zm9vdG5vdGVzPC9oMj4KKyAgICAgICAgPG9sIGNsYXNz
PSJmb290bm90ZXMiPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7PC9saT4KKyAgICAgICAgICAg
IDxsaT4mI3gyMDUxOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MjAyMDs8L2xpPgorICAgICAg
ICAgICAgPGxpPiYjeDIwMjE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gwMDJBOyYjeDAwMkE7
PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gyMDUxOyYjeDIwNTE7PC9saT4KKyAgICAgICAgICAg
IDxsaT4mI3gyMDIwOyYjeDIwMjA7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gyMDIxOyYjeDIw
MjE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTs8L2xpPgor
ICAgICAgICAgICAgPGxpPiYjeDIwNTE7JiN4MjA1MTsmI3gyMDUxOzwvbGk+CisgICAgICAgICAg
ICA8bGk+JiN4MjAyMDsmI3gyMDIwOyYjeDIwMjA7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gy
MDIxOyYjeDIwMjE7JiN4MjAyMTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7JiN4MDAy
QTsmI3gwMDJBOyYjeDAwMkE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gyMDUxOyYjeDIwNTE7
JiN4MjA1MTsmI3gyMDUxOzwvbGk+CisgICAgICAgIDwvb2w+CisgICAgICAgIDxvbCBjbGFzcz0i
Zm9vdG5vdGVzIiBzdGFydD0iMCI+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTs8L2xpPgorICAg
ICAgICA8L29sPgorICAgICAgICA8b2wgY2xhc3M9ImZvb3Rub3RlcyIgc3RhcnQ9Ii0yIj4KKyAg
ICAgICAgICAgIDxsaT4mI3gyMDUxOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTs8L2xp
PgorICAgICAgICA8L29sPgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65675</attachid>
            <date>2010-08-26 21:27:37 -0700</date>
            <delta_ts>2010-08-27 10:48:01 -0700</delta_ts>
            <desc>Patch with test case</desc>
            <filename>Bug36734_f3.patch</filename>
            <type>text/plain</type>
            <size>18537</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjE3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMTAtMDgtMjYgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBzeW1ib2xpYyBDU1MzIGxpc3Qtc3R5bGUtdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NzM0CisKKyAgICAgICAgSW1wbGVtZW50cyBh
bGwgb2YgdGhlIHN5bWJvbGljIENTUzMgbGlzdC1zdHlsZS10eXBlcyBhcyBwZXIKKyAgICAgICAg
c2VjdGlvbiA0LjUgb2YgdGhlIENTUzMgTGlzdHMgbW9kdWxlIDxodHRwOi8vd3d3LnczLm9yZy9U
Ui9jc3MzLWxpc3RzLyNzeW1ib2xpYz4uCisKKyAgICAgICAgVGVzdDogZmFzdC9saXN0cy93My1j
c3MzLWxpc3Qtc3R5bGVzLXN5bWJvbGljLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUpOiBBZGRlZCBsaXN0IHN0eWxlIHR5cGVzIEFzdGVyaXNrcyBhbmQg
Rm9vdG5vdGVzLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOiBEaXR0by4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUNTU1Rva2VuaXplci5yZTJqczogRGl0
dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6KToKKyAgICAgICAgKFdlYkNvcmU6OnRvU2VxdWVuY2UpOiBSZW5hbWVkIChmb3Jt
ZXJseSB0b0FscGhhYmV0aWNPck51bWVyaWMpLgorICAgICAgICAoV2ViQ29yZTo6dG9TeW1ib2xp
Yyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9BbHBoYWJldGljKToKKyAgICAgICAgKFdl
YkNvcmU6OnRvTnVtZXJpYyk6CisgICAgICAgIChXZWJDb3JlOjpsaXN0TWFya2VyU3VmZml4KTog
QWRkZWQgbGlzdCBzdHlsZSB0eXBlcyBBc3Rlcmlza3MgYW5kIEZvb3Rub3Rlcy4KKyAgICAgICAg
KFdlYkNvcmU6Omxpc3RNYXJrZXJUZXh0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMaXN0TWFya2VyOjpwYWludCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlz
dE1hcmtlcjo6Y2FsY1ByZWZXaWR0aHMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxpc3RNYXJrZXI6OmdldFJlbGF0aXZlTWFya2VyUmVjdCk6IERpdHRvLgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6Oik6CisKIDIwMTAtMDgtMjYgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAkocmV2aXNpb24gNjYxNzApCisrKyBXZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMDUsNiArMTAw
NSw5IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1MKICAgICBjYXNl
IEFybWVuaWFuOgogICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBcm1lbmlhbjsKICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBBc3Rlcmlza3M6CisgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZUFzdGVyaXNrczsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCaW5hcnlMaXN0
U3R5bGU6CiAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJpbmFyeTsKICAgICAgICAg
YnJlYWs7CkBAIC0xMDg2LDYgKzEwODksOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTCiAgICAgY2FzZSBFdGhpb3BpY0hhbGVoYW1lVGlnOgogICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lVGlnOwogICAgICAgICBicmVhazsK
KyAgICBjYXNlIEZvb3Rub3RlczoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRm9v
dG5vdGVzOworICAgICAgICBicmVhazsKICAgICBjYXNlIEdlb3JnaWFuOgogICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVHZW9yZ2lhbjsKICAgICAgICAgYnJlYWs7CkluZGV4OiBXZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4JKHJldmlzaW9uIDY2MTcwKQorKysgV2ViQ29yZS9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjg4LDYgKzI4OCw4IEBAIHRpZ3Jpbnlh
LWV0LWFiZWdlZGUKIGV0aGlvcGljLWFiZWdlZGUtdGktZXQKIHVwcGVyLWdyZWVrCiB1cHBlci1u
b3J3ZWdpYW4KK2FzdGVyaXNrcworZm9vdG5vdGVzCiBoZWJyZXcKIGFybWVuaWFuCiBnZW9yZ2lh
bgpJbmRleDogV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUNTU1Rva2VuaXplci5y
ZTJqcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlQ1NT
VG9rZW5pemVyLnJlMmpzCShyZXZpc2lvbiA2NjE3MCkKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VDU1NUb2tlbml6ZXIucmUyanMJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcg
KzQ4LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUNTU1Rva2VuaXplciA9IGZ1bmN0aQogCiAgICAg
dGhpcy5fdmFsdWVLZXl3b3JkcyA9IFsKICAgICAgICAgImFib3ZlIiwgImFic29sdXRlIiwgImFj
dGl2ZWJvcmRlciIsICJhY3RpdmVjYXB0aW9uIiwgImFmYXIiLCAiYWZ0ZXItd2hpdGUtc3BhY2Ui
LCAiYWhlYWQiLCAiYWxpYXMiLCAiYWxsIiwgImFsbC1zY3JvbGwiLAotICAgICAgICAiYWx0ZXJu
YXRlIiwgImFsd2F5cyIsImFtaGFyaWMiLCAiYW1oYXJpYy1hYmVnZWRlIiwgImFudGlhbGlhc2Vk
IiwgImFwcHdvcmtzcGFjZSIsICJhcXVhIiwgImFyYWJpYy1pbmRpYyIsICJhcm1lbmlhbiIsCisg
ICAgICAgICJhbHRlcm5hdGUiLCAiYWx3YXlzIiwiYW1oYXJpYyIsICJhbWhhcmljLWFiZWdlZGUi
LCAiYW50aWFsaWFzZWQiLCAiYXBwd29ya3NwYWNlIiwgImFxdWEiLCAiYXJhYmljLWluZGljIiwg
ImFybWVuaWFuIiwgImFzdGVyaXNrcyIsCiAgICAgICAgICJhdXRvIiwgImF2b2lkIiwgImJhY2tn
cm91bmQiLCAiYmFja3dhcmRzIiwgImJhc2VsaW5lIiwgImJlbG93IiwgImJpZGktb3ZlcnJpZGUi
LCAiYmluYXJ5IiwgImJlbmdhbGkiLCAiYmxhY2siLCAiYmxpbmsiLAogICAgICAgICAiYmxvY2si
LCAiYmxvY2stYXhpcyIsICJibHVlIiwgImJvbGQiLCAiYm9sZGVyIiwgImJvcmRlciIsICJib3Jk
ZXItYm94IiwgImJvdGgiLCAiYm90dG9tIiwgImJyZWFrLWFsbCIsICJicmVhay13b3JkIiwgImJ1
dHRvbiIsCiAgICAgICAgICJidXR0b24tYmV2ZWwiLCAiYnV0dG9uZmFjZSIsICJidXR0b25oaWdo
bGlnaHQiLCAiYnV0dG9uc2hhZG93IiwgImJ1dHRvbnRleHQiLCAiY2FtYm9kaWFuIiwgImNhcGl0
YWxpemUiLCAiY2Fwcy1sb2NrLWluZGljYXRvciIsCkBAIC02MSw3ICs2MSw3IEBAIFdlYkluc3Bl
Y3Rvci5Tb3VyY2VDU1NUb2tlbml6ZXIgPSBmdW5jdGkKICAgICAgICAgImV0aGlvcGljLWFiZWdl
ZGUtdGktZXIiLCAiZXRoaW9waWMtYWJlZ2VkZS10aS1ldCIsICJldGhpb3BpYy1oYWxlaGFtZS1h
YS1lciIsICJldGhpb3BpYy1oYWxlaGFtZS1hYS1ldCIsCiAgICAgICAgICJldGhpb3BpYy1oYWxl
aGFtZS1hbS1ldCIsICJldGhpb3BpYy1oYWxlaGFtZS1nZXoiLCAiZXRoaW9waWMtaGFsZWhhbWUt
b20tZXQiLCAiZXRoaW9waWMtaGFsZWhhbWUtc2lkLWV0IiwKICAgICAgICAgImV0aGlvcGljLWhh
bGVoYW1lLXNvLWV0IiwgImV0aGlvcGljLWhhbGVoYW1lLXRpLWVyIiwgImV0aGlvcGljLWhhbGVo
YW1lLXRpLWV0IiwgImV0aGlvcGljLWhhbGVoYW1lLXRpZyIsICJldy1yZXNpemUiLCAiZXhwYW5k
ZWQiLAotICAgICAgICAiZXh0cmEtY29uZGVuc2VkIiwgImV4dHJhLWV4cGFuZGVkIiwgImZhbnRh
c3kiLCAiZmFzdCIsICJmaWxsIiwgImZpeGVkIiwgImZsYXQiLCAiZm9yd2FyZHMiLCAiZnJvbSIs
ICJmdWNoc2lhIiwgImdlb21ldHJpY1ByZWNpc2lvbiIsCisgICAgICAgICJleHRyYS1jb25kZW5z
ZWQiLCAiZXh0cmEtZXhwYW5kZWQiLCAiZmFudGFzeSIsICJmYXN0IiwgImZpbGwiLCAiZml4ZWQi
LCAiZmxhdCIsICJmb290bm90ZXMiLCAiZm9yd2FyZHMiLCAiZnJvbSIsICJmdWNoc2lhIiwgImdl
b21ldHJpY1ByZWNpc2lvbiIsCiAgICAgICAgICJnZW9yZ2lhbiIsICJncmF5IiwgImdyYXl0ZXh0
IiwgImdyZWVuIiwgImdyZXkiLCAiZ3Jvb3ZlIiwgImd1amFyYXRpIiwgImd1cm11a2hpIiwgImhh
bmQiLCAiaGFuZ3VsIiwgImhhbmd1bC1jb25zb25hbnQiLCAiaGVicmV3IiwgImhlbHAiLAogICAg
ICAgICAiaGlkZGVuIiwgImhpZGUiLCAiaGlnaGVyIiwgImhpZ2hsaWdodCIsICJoaWdobGlnaHR0
ZXh0IiwgImhpcmFnYW5hIiwgImhpcmFnYW5hLWlyb2hhIiwgImhvcml6b250YWwiLCAiaHNsIiwg
ImhzbGEiLCAiaWNvbiIsICJpZ25vcmUiLAogICAgICAgICAiaW5hY3RpdmVib3JkZXIiLCAiaW5h
Y3RpdmVjYXB0aW9uIiwgImluYWN0aXZlY2FwdGlvbnRleHQiLCAiaW5maW5pdGUiLCAiaW5mb2Jh
Y2tncm91bmQiLCAiaW5mb3RleHQiLCAiaW5oZXJpdCIsICJpbml0aWFsIiwgImlubGluZSIsCklu
ZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAkocmV2aXNpb24gNjYxNzAp
CisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IGludCBjTWFy
a2VyUGFkZGluZyA9IDc7CiAKLWVudW0gU2VxdWVuY2VUeXBlIHsgTnVtZXJpY1NlcXVlbmNlLCBB
bHBoYWJldGljU2VxdWVuY2UgfTsKK2VudW0gU2VxdWVuY2VUeXBlIHsgTnVtZXJpY1NlcXVlbmNl
LCBBbHBoYWJldGljU2VxdWVuY2UsIFN5bWJvbGljU2VxdWVuY2UgfTsKIAogc3RhdGljIFN0cmlu
ZyB0b1JvbWFuKGludCBudW1iZXIsIGJvb2wgdXBwZXIpCiB7CkBAIC03OSw1MCArNzksNzEgQEAg
c3RhdGljIFN0cmluZyB0b1JvbWFuKGludCBudW1iZXIsIGJvb2wgdQogICAgIHJldHVybiBTdHJp
bmcoJmxldHRlcnNbbGV0dGVyc1NpemUgLSBsZW5ndGhdLCBsZW5ndGgpOwogfQogCi1zdGF0aWMg
aW5saW5lIFN0cmluZyB0b0FscGhhYmV0aWNPck51bWVyaWMoaW50IG51bWJlciwgY29uc3QgVUNo
YXIqIHNlcXVlbmNlLCBpbnQgc2VxdWVuY2VTaXplLCBTZXF1ZW5jZVR5cGUgdHlwZSkKK3N0YXRp
YyBpbmxpbmUgU3RyaW5nIHRvU2VxdWVuY2UoaW50IG51bWJlciwgY29uc3QgVUNoYXIqIHNlcXVl
bmNlLCB1bnNpZ25lZCBzZXF1ZW5jZVNpemUsIFNlcXVlbmNlVHlwZSB0eXBlKQogewotICAgIEFT
U0VSVChzZXF1ZW5jZVNpemUgPj0gMik7Ci0KLSAgICBjb25zdCBpbnQgbGV0dGVyc1NpemUgPSBz
aXplb2YobnVtYmVyKSAqIDggKyAxOyAvLyBCaW5hcnkgaXMgdGhlIHdvcnN0IGNhc2U7IHJlcXVp
cmVzIG9uZSBjaGFyYWN0ZXIgcGVyIGJpdCBwbHVzIGEgbWludXMgc2lnbi4KLQotICAgIFVDaGFy
IGxldHRlcnNbbGV0dGVyc1NpemVdOworICAgIEFTU0VSVChzZXF1ZW5jZVNpemUgPj0gKHR5cGUg
PT0gU3ltYm9saWNTZXF1ZW5jZSA/IDEgOiAyKSk7CiAKICAgICBib29sIGlzTmVnYXRpdmVOdW1i
ZXIgPSBmYWxzZTsKICAgICB1bnNpZ25lZCBudW1iZXJTaGFkb3cgPSBudW1iZXI7Ci0gICAgaWYg
KHR5cGUgPT0gQWxwaGFiZXRpY1NlcXVlbmNlKSB7CisKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAg
ICBjYXNlIEFscGhhYmV0aWNTZXF1ZW5jZToKKyAgICBjYXNlIFN5bWJvbGljU2VxdWVuY2U6CiAg
ICAgICAgIEFTU0VSVChudW1iZXIgPiAwKTsKICAgICAgICAgLS1udW1iZXJTaGFkb3c7Ci0gICAg
fSBlbHNlIGlmIChudW1iZXIgPCAwKSB7Ci0gICAgICAgIG51bWJlclNoYWRvdyA9IC1udW1iZXI7
Ci0gICAgICAgIGlzTmVnYXRpdmVOdW1iZXIgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIE51bWVyaWNTZXF1ZW5jZToKKyAgICAgICAgaWYgKG51bWJlciA8IDApIHsKKyAgICAgICAg
ICAgIG51bWJlclNoYWRvdyA9IC1udW1iZXI7CisgICAgICAgICAgICBpc05lZ2F0aXZlTnVtYmVy
ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKICAgICB9Ci0gICAgbGV0dGVyc1ts
ZXR0ZXJzU2l6ZSAtIDFdID0gc2VxdWVuY2VbbnVtYmVyU2hhZG93ICUgc2VxdWVuY2VTaXplXTsK
LSAgICBpbnQgbGVuZ3RoID0gMTsKIAorICAgIGNvbnN0IHVuc2lnbmVkIGxldHRlcnNTaXplID0g
c2l6ZW9mKG51bWJlcikgKiA4ICsgMTsgLy8gVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIHJl
cHJlc2VudCBhIGJpbmFyeSBudW1iZXIgcGx1cyBhIG1pbnVzLgorICAgIFZlY3RvcjxVQ2hhciwg
bGV0dGVyc1NpemU+IGxldHRlcnM7CisKKyAgICBpZiAodHlwZSA9PSBTeW1ib2xpY1NlcXVlbmNl
KSB7CisgICAgICAgIC8vIFRoZSBhc3Rlcmlza3MgbGlzdC1zdHlsZS10eXBlIGlzIHRoZSB3b3Jz
dCBjYXNlOyB3ZSBzaG93IHxudW1iZXJTaGFkb3d8IGFzdGVyaXNrcy4KKyAgICAgICAgbGV0dGVy
cy5hcHBlbmQoc2VxdWVuY2VbbnVtYmVyU2hhZG93ICUgc2VxdWVuY2VTaXplXSk7CisgICAgICAg
IHVuc2lnbmVkIG51bVN5bWJvbHMgPSBudW1iZXJTaGFkb3cgLyBzZXF1ZW5jZVNpemU7CisgICAg
ICAgIHdoaWxlIChudW1TeW1ib2xzLS0pCisgICAgICAgICAgICBsZXR0ZXJzLmFwcGVuZChzZXF1
ZW5jZVtudW1iZXJTaGFkb3cgJSBzZXF1ZW5jZVNpemVdKTsKKyAgICAgICAgcmV0dXJuIFN0cmlu
Zzo6YWRvcHQobGV0dGVycyk7CisgICAgfQorCisgICAgbGV0dGVycy5maWxsKDAsIGxldHRlcnNT
aXplKTsKKyAgICBsZXR0ZXJzW2xldHRlcnNTaXplIC0gMV0gPSBzZXF1ZW5jZVtudW1iZXJTaGFk
b3cgJSBzZXF1ZW5jZVNpemVdOworICAgIHVuc2lnbmVkIGxlbmd0aCA9IDE7CiAgICAgaWYgKHR5
cGUgPT0gQWxwaGFiZXRpY1NlcXVlbmNlKSB7CiAgICAgICAgIHdoaWxlICgobnVtYmVyU2hhZG93
IC89IHNlcXVlbmNlU2l6ZSkgPiAwKSB7CiAgICAgICAgICAgICAtLW51bWJlclNoYWRvdzsKICAg
ICAgICAgICAgIGxldHRlcnNbbGV0dGVyc1NpemUgLSArK2xlbmd0aF0gPSBzZXF1ZW5jZVtudW1i
ZXJTaGFkb3cgJSBzZXF1ZW5jZVNpemVdOwogICAgICAgICB9Ci0gICAgfSBlbHNlIHsKKyAgICB9
IGVsc2UgaWYgKHR5cGUgPT0gTnVtZXJpY1NlcXVlbmNlKSB7CiAgICAgICAgIHdoaWxlICgobnVt
YmVyU2hhZG93IC89IHNlcXVlbmNlU2l6ZSkgPiAwKQogICAgICAgICAgICAgbGV0dGVyc1tsZXR0
ZXJzU2l6ZSAtICsrbGVuZ3RoXSA9IHNlcXVlbmNlW251bWJlclNoYWRvdyAlIHNlcXVlbmNlU2l6
ZV07CisgICAgICAgIGlmIChpc05lZ2F0aXZlTnVtYmVyKQorICAgICAgICAgICAgbGV0dGVyc1ts
ZXR0ZXJzU2l6ZSAtICsrbGVuZ3RoXSA9IGh5cGhlbk1pbnVzOwogICAgIH0KLSAgICBpZiAoaXNO
ZWdhdGl2ZU51bWJlcikKLSAgICAgICAgbGV0dGVyc1tsZXR0ZXJzU2l6ZSAtICsrbGVuZ3RoXSA9
IGh5cGhlbk1pbnVzOwogCiAgICAgQVNTRVJUKGxlbmd0aCA8PSBsZXR0ZXJzU2l6ZSk7CiAgICAg
cmV0dXJuIFN0cmluZygmbGV0dGVyc1tsZXR0ZXJzU2l6ZSAtIGxlbmd0aF0sIGxlbmd0aCk7CiB9
CiAKK3N0YXRpYyBTdHJpbmcgdG9TeW1ib2xpYyhpbnQgbnVtYmVyLCBjb25zdCBVQ2hhciogc3lt
Ym9scywgaW50IHN5bWJvbHNTaXplKQoreworICAgIHJldHVybiB0b1NlcXVlbmNlKG51bWJlciwg
c3ltYm9scywgc3ltYm9sc1NpemUsIFN5bWJvbGljU2VxdWVuY2UpOworfQorCiBzdGF0aWMgU3Ry
aW5nIHRvQWxwaGFiZXRpYyhpbnQgbnVtYmVyLCBjb25zdCBVQ2hhciogYWxwaGFiZXQsIGludCBh
bHBoYWJldFNpemUpCiB7Ci0gICAgcmV0dXJuIHRvQWxwaGFiZXRpY09yTnVtZXJpYyhudW1iZXIs
IGFscGhhYmV0LCBhbHBoYWJldFNpemUsIEFscGhhYmV0aWNTZXF1ZW5jZSk7CisgICAgcmV0dXJu
IHRvU2VxdWVuY2UobnVtYmVyLCBhbHBoYWJldCwgYWxwaGFiZXRTaXplLCBBbHBoYWJldGljU2Vx
dWVuY2UpOwogfQogCiBzdGF0aWMgU3RyaW5nIHRvTnVtZXJpYyhpbnQgbnVtYmVyLCBjb25zdCBV
Q2hhciogbnVtZXJhbHMsIGludCBudW1lcmFsc1NpemUpCiB7Ci0gICAgcmV0dXJuIHRvQWxwaGFi
ZXRpY09yTnVtZXJpYyhudW1iZXIsIG51bWVyYWxzLCBudW1lcmFsc1NpemUsIE51bWVyaWNTZXF1
ZW5jZSk7CisgICAgcmV0dXJuIHRvU2VxdWVuY2UobnVtYmVyLCBudW1lcmFscywgbnVtZXJhbHNT
aXplLCBOdW1lcmljU2VxdWVuY2UpOwogfQogCiB0ZW1wbGF0ZSA8c2l6ZV90IHNpemU+IHN0YXRp
YyBpbmxpbmUgU3RyaW5nIHRvQWxwaGFiZXRpYyhpbnQgbnVtYmVyLCBjb25zdCBVQ2hhcigmYWxw
aGFiZXQpW3NpemVdKQpAQCAtMTM1LDYgKzE1NiwxMSBAQCB0ZW1wbGF0ZSA8c2l6ZV90IHNpemU+
IHN0YXRpYyBpbmxpbmUgU3RyCiAgICAgcmV0dXJuIHRvTnVtZXJpYyhudW1iZXIsIGFscGhhYmV0
LCBzaXplKTsKIH0KIAordGVtcGxhdGUgPHNpemVfdCBzaXplPiBzdGF0aWMgaW5saW5lIFN0cmlu
ZyB0b1N5bWJvbGljKGludCBudW1iZXIsIGNvbnN0IFVDaGFyKCZhbHBoYWJldClbc2l6ZV0pCit7
ICAgIAorICAgIHJldHVybiB0b1N5bWJvbGljKG51bWJlciwgYWxwaGFiZXQsIHNpemUpOworfQor
CiBzdGF0aWMgaW50IHRvSGVicmV3VW5kZXIxMDAwKGludCBudW1iZXIsIFVDaGFyIGxldHRlcnNb
NV0pCiB7CiAgICAgLy8gRklYTUU6IENTUzMgbWVudGlvbnMgdmFyaW91cyByZWZpbmVtZW50cyBu
b3QgaW1wbGVtZW50ZWQgaGVyZS4KQEAgLTQxOSw2ICs0NDUsNyBAQCBzdGF0aWMgRUxpc3RTdHls
ZVR5cGUgZWZmZWN0aXZlTGlzdE1hcmtlCiAgICAgY2FzZSBBZmFyOgogICAgIGNhc2UgQW1oYXJp
YzoKICAgICBjYXNlIEFtaGFyaWNBYmVnZWRlOgorICAgIGNhc2UgQXN0ZXJpc2tzOgogICAgIGNh
c2UgQ2prRWFydGhseUJyYW5jaDoKICAgICBjYXNlIENqa0hlYXZlbmx5U3RlbToKICAgICBjYXNl
IEV0aGlvcGljOgpAQCAtNDM3LDYgKzQ2NCw3IEBAIHN0YXRpYyBFTGlzdFN0eWxlVHlwZSBlZmZl
Y3RpdmVMaXN0TWFya2UKICAgICBjYXNlIEV0aGlvcGljSGFsZWhhbWVUaUVyOgogICAgIGNhc2Ug
RXRoaW9waWNIYWxlaGFtZVRpRXQ6CiAgICAgY2FzZSBFdGhpb3BpY0hhbGVoYW1lVGlnOgorICAg
IGNhc2UgRm9vdG5vdGVzOgogICAgIGNhc2UgSGFuZ3VsOgogICAgIGNhc2UgSGFuZ3VsQ29uc29u
YW50OgogICAgIGNhc2UgSGlyYWdhbmE6CkBAIC00NzUsOSArNTAzLDExIEBAIHN0YXRpYyBVQ2hh
ciBsaXN0TWFya2VyU3VmZml4KEVMaXN0U3R5bGUKICAgICAvLyBOb3RlLCB0aGUgZm9sbG93aW5n
IHN3aXRjaCBzdGF0ZW1lbnQgaGFzIGJlZW4gZXhwbGljaXRseQogICAgIC8vIGdyb3VwZWQgYnkg
bGlzdC1zdHlsZS10eXBlIHN1ZmZpeC4KICAgICBzd2l0Y2ggKGVmZmVjdGl2ZVR5cGUpIHsKLSAg
ICBjYXNlIE5vbmVMaXN0U3R5bGU6Ci0gICAgY2FzZSBEaXNjOgorICAgIGNhc2UgQXN0ZXJpc2tz
OgogICAgIGNhc2UgQ2lyY2xlOgorICAgIGNhc2UgRGlzYzoKKyAgICBjYXNlIEZvb3Rub3RlczoK
KyAgICBjYXNlIE5vbmVMaXN0U3R5bGU6CiAgICAgY2FzZSBTcXVhcmU6CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gJyAnOwpAQCAtNTcwLDEyICs2MDAsMjQg
QEAgU3RyaW5nIGxpc3RNYXJrZXJUZXh0KEVMaXN0U3R5bGVUeXBlIHR5cAogICAgICAgICBjYXNl
IE5vbmVMaXN0U3R5bGU6CiAgICAgICAgICAgICByZXR1cm4gIiI7CiAKKyAgICAgICAgY2FzZSBB
c3Rlcmlza3M6IHsKKyAgICAgICAgICAgIHN0YXRpYyBjb25zdCBVQ2hhciBhc3Rlcmlza3NTeW1i
b2xzWzFdID0geworICAgICAgICAgICAgICAgIDB4MDAyQQorICAgICAgICAgICAgfTsKKyAgICAg
ICAgICAgIHJldHVybiB0b1N5bWJvbGljKHZhbHVlLCBhc3Rlcmlza3NTeW1ib2xzKTsKKyAgICAg
ICAgfQogICAgICAgICAvLyBXZSB1c2UgdGhlIHNhbWUgY2hhcmFjdGVycyBmb3IgdGV4dCBzZWN1
cml0eS4KICAgICAgICAgLy8gU2VlIFJlbmRlclRleHQ6OnNldEludGVybmFsU3RyaW5nLgogICAg
ICAgICBjYXNlIENpcmNsZToKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoJndoaXRlQnVsbGV0
LCAxKTsKICAgICAgICAgY2FzZSBEaXNjOgogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygmYnVs
bGV0LCAxKTsKKyAgICAgICAgY2FzZSBGb290bm90ZXM6IHsKKyAgICAgICAgICAgIHN0YXRpYyBj
b25zdCBVQ2hhciBmb290bm90ZXNTeW1ib2xzWzRdID0geworICAgICAgICAgICAgICAgIDB4MDAy
QSwgMHgyMDUxLCAweDIwMjAsIDB4MjAyMQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJl
dHVybiB0b1N5bWJvbGljKHZhbHVlLCBmb290bm90ZXNTeW1ib2xzKTsKKyAgICAgICAgfQogICAg
ICAgICBjYXNlIFNxdWFyZToKICAgICAgICAgICAgIC8vIFRoZSBDU1MgMi4xIHRlc3Qgc3VpdGUg
dXNlcyBVKzI1RUUgQkxBQ0sgTUVESVVNIFNNQUxMIFNRVUFSRQogICAgICAgICAgICAgLy8gaW5z
dGVhZCwgYnV0IEkgdGhpbmsgdGhpcyBsb29rcyBiZXR0ZXIuCkBAIC0xMTEwLDYgKzExNTIsMTAg
QEAgdm9pZCBSZW5kZXJMaXN0TWFya2VyOjpwYWludChQYWludEluZm8mIAogCiAgICAgRUxpc3RT
dHlsZVR5cGUgdHlwZSA9IHN0eWxlKCktPmxpc3RTdHlsZVR5cGUoKTsKICAgICBzd2l0Y2ggKHR5
cGUpIHsKKyAgICAgICAgY2FzZSBBc3Rlcmlza3M6CisgICAgICAgIGNhc2UgRm9vdG5vdGVzOgor
ICAgICAgICAgICAgY29udGV4dC0+ZHJhd1RleHQoc3R5bGUoKS0+Zm9udCgpLCBUZXh0UnVuKG1f
dGV4dCksIG1hcmtlci5sb2NhdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
Y2FzZSBEaXNjOgogICAgICAgICAgICAgY29udGV4dC0+ZHJhd0VsbGlwc2UobWFya2VyKTsKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTEyOTEsNiArMTMzNywxMSBAQCB2b2lkIFJlbmRlckxpc3RN
YXJrZXI6OmNhbGNQcmVmV2lkdGhzKCkKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgY2Fz
ZSBOb25lTGlzdFN0eWxlOgogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXN0ZXJp
c2tzOgorICAgICAgICBjYXNlIEZvb3Rub3RlczoKKyAgICAgICAgICAgIG1fdGV4dCA9IGxpc3RN
YXJrZXJUZXh0KHR5cGUsIG1fbGlzdEl0ZW0tPnZhbHVlKCkpOworICAgICAgICAgICAgd2lkdGgg
PSBmb250LndpZHRoKG1fdGV4dCk7IC8vIG5vIHN1ZmZpeCBmb3IgdGhlc2UgdHlwZXMKKyAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENpcmNsZToKICAgICAgICAgY2FzZSBEaXNjOgog
ICAgICAgICBjYXNlIFNxdWFyZToKQEAgLTE0ODksNiArMTU0MCwxMSBAQCBJbnRSZWN0IFJlbmRl
ckxpc3RNYXJrZXI6OmdldFJlbGF0aXZlTWFyCiAKICAgICBFTGlzdFN0eWxlVHlwZSB0eXBlID0g
c3R5bGUoKS0+bGlzdFN0eWxlVHlwZSgpOwogICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBj
YXNlIEFzdGVyaXNrczoKKyAgICAgICAgY2FzZSBGb290bm90ZXM6IHsKKyAgICAgICAgICAgIGNv
bnN0IEZvbnQmIGZvbnQgPSBzdHlsZSgpLT5mb250KCk7CisgICAgICAgICAgICByZXR1cm4gSW50
UmVjdCh4KCksIHkoKSArIGZvbnQuYXNjZW50KCksIGZvbnQud2lkdGgobV90ZXh0KSwgZm9udC5o
ZWlnaHQoKSk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBEaXNjOgogICAgICAgICBjYXNlIENp
cmNsZToKICAgICAgICAgY2FzZSBTcXVhcmU6IHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAkocmV2aXNpb24gNjYxNzApCisrKyBXZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNzYsNiArMjc2LDggQEAgZW51bSBFTGlzdFN0eWxlVHlwZSB7CiAgICAgRXRoaW9waWNB
YmVnZWRlVGlFdCwKICAgICBVcHBlckdyZWVrLAogICAgIFVwcGVyTm9yd2VnaWFuLAorICAgIEFz
dGVyaXNrcywKKyAgICBGb290bm90ZXMsCiAgICAgSGVicmV3LAogICAgIEFybWVuaWFuLAogICAg
IEdlb3JnaWFuLApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjYxNzApCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wOC0yNiAgRGFuaWVs
IEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHN5bWJvbGljIENTUzMgbGlzdC1zdHlsZS10eXBl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY3MzQK
KworICAgICAgICBUZXN0cyB0aGF0IGFsbCBvZiB0aGUgc3ltYm9saWMgQ1NTMyBsaXN0LXN0eWxl
LXR5cGVzIGFyZSBzdXBwb3J0ZWQuCisKKyAgICAgICAgKiBmYXN0L2xpc3RzL3czLWNzczMtbGlz
dC1zdHlsZXMtc3ltYm9saWMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9saXN0cy93My1j
c3MzLWxpc3Qtc3R5bGVzLXN5bWJvbGljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMDgt
MjYgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9saXN0cy93My1jc3MzLWxpc3Qt
c3R5bGVzLXN5bWJvbGljLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2xpc3RzL3czLWNzczMtbGlzdC1zdHlsZXMtc3ltYm9saWMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9saXN0cy93My1jc3MzLWxpc3Qtc3R5bGVzLXN5
bWJvbGljLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNyBAQAorQ1NTMyBT
eW1ib2xpYyBsaXN0LXN0eWxlLXR5cGUKKworYXN0ZXJpc2tzCisKK1BBU1MgbGlzdCBtYXJrZXIg
aXMgKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgKiouCitQQVNTIGxpc3QgbWFya2VyIGlzICoqKi4K
K1BBU1MgbGlzdCBtYXJrZXIgaXMgKioqKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgKioqKiouCitQ
QVNTIGxpc3QgbWFya2VyIGlzICoqKioqKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgKioqKioqKi4K
K1BBU1MgbGlzdCBtYXJrZXIgaXMgKioqKioqKiouCitQQVNTIGxpc3QgbWFya2VyIGlzICoqKioq
KioqKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgKioqKioqKioqKi4KK1BBU1MgbGlzdCBtYXJrZXIg
aXMgMC4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgLTIuCitQQVNTIGxpc3QgbWFya2VyIGlzIC0xLgor
Zm9vdG5vdGVzCisKK1BBU1MgbGlzdCBtYXJrZXIgaXMgKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMg
4oGRLgorUEFTUyBsaXN0IG1hcmtlciBpcyDigKAuCitQQVNTIGxpc3QgbWFya2VyIGlzIOKAoS4K
K1BBU1MgbGlzdCBtYXJrZXIgaXMgKiouCitQQVNTIGxpc3QgbWFya2VyIGlzIOKBkeKBkS4KK1BB
U1MgbGlzdCBtYXJrZXIgaXMg4oCg4oCgLgorUEFTUyBsaXN0IG1hcmtlciBpcyDigKHigKEuCitQ
QVNTIGxpc3QgbWFya2VyIGlzICoqKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMg4oGR4oGR4oGRLgor
UEFTUyBsaXN0IG1hcmtlciBpcyDigKDigKDigKAuCitQQVNTIGxpc3QgbWFya2VyIGlzIOKAoeKA
oeKAoS4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgKioqKi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMg4oGR
4oGR4oGR4oGRLgorUEFTUyBsaXN0IG1hcmtlciBpcyAwLgorUEFTUyBsaXN0IG1hcmtlciBpcyAt
Mi4KK1BBU1MgbGlzdCBtYXJrZXIgaXMgLTEuCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbGlz
dHMvdzMtY3NzMy1saXN0LXN0eWxlcy1zeW1ib2xpYy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvbGlzdHMvdzMtY3NzMy1saXN0LXN0eWxlcy1zeW1ib2xpYy5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9saXN0cy93My1jc3MzLWxpc3Qtc3R5bGVzLXN5
bWJvbGljLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODMgQEAKKzxodG1sPgorPGhlYWQ+
CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9dXRmLTgiIC8+CisgICAgPHN0eWxlPgorICAgICAgICAudGVzdCBvbCB7IHBhZGRp
bmctbGVmdDogMzAwcHg7IH0KKyAgICAgICAgCisgICAgICAgIC8qIAorICAgICAgICBUaGUgZm9s
bG93aW5nIHN0eWxlcyBhcmUgb3JkZXJlZCBhcyB0aGV5IGFwcGVhciBpbiBzZWN0aW9uIDQuNS4g
b2YgdGhlIAorICAgICAgICBEcmFmdCA3IE5vdmVtYmVyIDIwMDIgZHJhZnQgb2YgdGhlIENTUzMg
TGlzdHMgbW9kdWxlIDxodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWxpc3RzLyNzeW1ib2xpYz4u
CisgICAgICAgICovCisgICAgICAgIAorICAgICAgICBvbC5hc3Rlcmlza3MgeyBsaXN0LXN0eWxl
LXR5cGU6IGFzdGVyaXNrczsgfQorICAgICAgICAKKyAgICAgICAgb2wuZm9vdG5vdGVzIHsgbGlz
dC1zdHlsZS10eXBlOiBmb290bm90ZXM7IH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvZHVtcC1saXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgICAgICAgICAgZmlsdGVyTGlzdHNXaXRoUmVwbGFjZW1lbnQoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiLnRlc3Qgb2wiKSwgdGVzdExpc3RJdGVtTWFya2VyRXF1YWxzTGlzdEl0ZW1UZXh0
KTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImRlc2NyaXB0aW9uIikpOyAvLyBSZW1vdmUgZGVzY3JpcHRpb24gd2hlbiBydW5u
aW5nIGluIERSVC4KKyAgICAgICAgfQorICAgICAgICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsK
KyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxoMT5DU1MzIFN5bWJvbGljIGxp
c3Qtc3R5bGUtdHlwZTwvaDE+CisgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj5UaGlzIHRlc3RzIHRo
YXQgYWxsIG9mIHRoZSBzeW1ib2xpYyBDU1MzIGxpc3Qtc3R5bGUtdHlwZXMgYXJlIHN1cHBvcnRl
ZCBhcyBwZXIgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1saXN0cy8jc3ltYm9s
aWMiPnNlY3Rpb24gNC41IG9mIHRoZSBzcGVjLiBDU1MzIExpc3RzIG1vZHVsZTwvYT4gKERyYWZ0
IDcgTm92ZW1iZXIgMjAwMikuIFRoaXMgdGVzdCBQQVNTRUQgaWYgdGhlIGxpc3QgaXRlbSBtYXRj
aGVzIGl0cyBidWxsZXQgZm9yIGV2ZXJ5IGxpc3QgaXRlbSAoYmVsb3cpLiBGb3IgZXhhbXBsZSwg
Zm9yIHRoZSBhc3Rlcmlza3Mgc3ltYm9saWMgc3lzdGVtIHRoZSBzZWNvbmQgJmx0O2xpJmd0OyAo
d2hpY2ggY29ycmVzcG9uZHMgdG8gMiBpbiB0aGUgc3RhbmRhcmQgb3JkZXJpbmcgb2YgdGhlIHBv
c2l0aXZlIGludGVnZXJzKSBzaG91bGQgYmUgcmVuZGVyZWQgYXM6ICYjeDAwMkE7JiN4MDAyQTsg
JiN4MDAyQTsmI3gwMDJBOzwvcD4KKyAgICA8ZGl2IGNsYXNzPSJ0ZXN0Ij4KKyAgICAgICAgPGgy
PmFzdGVyaXNrczwvaDI+CisgICAgICAgIDxvbCBjbGFzcz0iYXN0ZXJpc2tzIj4KKyAgICAgICAg
ICAgIDxsaT4mI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOzwv
bGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7PC9saT4KKyAgICAg
ICAgICAgIDxsaT4mI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAg
ICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+Cisg
ICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYj
eDAwMkE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gw
MDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAy
QTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJB
OzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsm
I3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7PC9saT4KKyAgICAgICAgICAg
IDxsaT4mI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gw
MDJBOyYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgIDwvb2w+CisgICAgICAg
IDxvbCBjbGFzcz0iYXN0ZXJpc2tzIiBzdGFydD0iMCI+CisgICAgICAgICAgICA8bGk+MDwvbGk+
CisgICAgICAgIDwvb2w+CisgICAgICAgIDxvbCBjbGFzcz0iYXN0ZXJpc2tzIiBzdGFydD0iLTIi
PgorICAgICAgICAgICAgPGxpPi0yPC9saT4KKyAgICAgICAgICAgIDxsaT4tMTwvbGk+CisgICAg
ICAgIDwvb2w+CisgICAgPC9kaXY+CisgICAgCisgICAgPGRpdiBjbGFzcz0idGVzdCI+CisgICAg
ICAgIDxoMj5mb290bm90ZXM8L2gyPgorICAgICAgICA8b2wgY2xhc3M9ImZvb3Rub3RlcyI+Cisg
ICAgICAgICAgICA8bGk+JiN4MDAyQTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDIwNTE7PC9s
aT4KKyAgICAgICAgICAgIDxsaT4mI3gyMDIwOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MjAy
MTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTs8L2xpPgorICAgICAgICAg
ICAgPGxpPiYjeDIwNTE7JiN4MjA1MTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDIwMjA7JiN4
MjAyMDs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDIwMjE7JiN4MjAyMTs8L2xpPgorICAgICAg
ICAgICAgPGxpPiYjeDAwMkE7JiN4MDAyQTsmI3gwMDJBOzwvbGk+CisgICAgICAgICAgICA8bGk+
JiN4MjA1MTsmI3gyMDUxOyYjeDIwNTE7PC9saT4KKyAgICAgICAgICAgIDxsaT4mI3gyMDIwOyYj
eDIwMjA7JiN4MjAyMDs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDIwMjE7JiN4MjAyMTsmI3gy
MDIxOzwvbGk+CisgICAgICAgICAgICA8bGk+JiN4MDAyQTsmI3gwMDJBOyYjeDAwMkE7JiN4MDAy
QTs8L2xpPgorICAgICAgICAgICAgPGxpPiYjeDIwNTE7JiN4MjA1MTsmI3gyMDUxOyYjeDIwNTE7
PC9saT4KKyAgICAgICAgPC9vbD4KKyAgICAgICAgPG9sIGNsYXNzPSJmb290bm90ZXMiIHN0YXJ0
PSIwIj4KKyAgICAgICAgICAgIDxsaT4wPC9saT4KKyAgICAgICAgPC9vbD4KKyAgICAgICAgPG9s
IGNsYXNzPSJmb290bm90ZXMiIHN0YXJ0PSItMiI+CisgICAgICAgICAgICA8bGk+LTI8L2xpPgor
ICAgICAgICAgICAgPGxpPi0xPC9saT4KKyAgICAgICAgPC9vbD4KKyAgICA8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="54508"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>