<?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>6252</bug_id>
          
          <creation_ts>2005-12-27 09:11:08 -0800</creation_ts>
          <short_desc>JavaScript 1.6 Array.lastIndexOf</short_desc>
          <delta_ts>2006-12-17 08:17:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>420+</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Haygood">jhaygood</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>arthur_webkit</cc>
    
    <cc>ian</cc>
    
    <cc>jwalden+bwo</cc>
    
    <cc>karlfschramm</cc>
    
    <cc>vladimir.olexa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>26733</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2005-12-27 09:11:08 -0800</bug_when>
    <thetext>Just to match our indexOf implementation, here is the corresponding lastIndexOf.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26734</commentid>
    <comment_count>1</comment_count>
      <attachid>5301</attachid>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2005-12-27 09:18:57 -0800</bug_when>
    <thetext>Created attachment 5301
Array.lastIndexOf implementation

Testcases for several edge cases in:

tests/mozilla/js1_6/Array/regress-310425-01.js
tests/mozilla/js1_6/Array/regress-310425-02.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26833</commentid>
    <comment_count>2</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-27 14:49:54 -0800</bug_when>
    <thetext>Shouldn&apos;t index be capped at length - 1, not length, since a[length] is off the end of the array?

+    if (d &gt; 0) {
+        if (d &gt; length)
+            index = length;

(you&apos;d have to cast (length -1) to unsigned since for length 0 it could be -1).

A test case that would see the difference is something like:

a = new Array();
a.length = 1;
alert(a.lastIndexOf(undefined,1));

I think the right answer is 0 but the code here would give 1.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26834</commentid>
    <comment_count>3</comment_count>
      <attachid>5301</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-27 14:50:18 -0800</bug_when>
    <thetext>Comment on attachment 5301
Array.lastIndexOf implementation

r- due to possible minor bug, otherwise looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26880</commentid>
    <comment_count>4</comment_count>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2005-12-27 16:05:02 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 5301 [edit])
&gt; r- due to possible minor bug, otherwise looks fine.
&gt; 
javascript:var a = new Array();a.length=1;alert(a.lastIndexOf(undefined,1))
gives me an alert with -1.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30373</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-01-27 18:38:35 -0800</bug_when>
    <thetext>*** Bug 5382 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34457</commentid>
    <comment_count>6</comment_count>
      <attachid>6777</attachid>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2006-02-28 13:46:46 -0800</bug_when>
    <thetext>Created attachment 6777
Updated lastIndexOf implementation

Updated implementation, should take care of the minor bug. No testcase yet, not even tested until I get a replacement machine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34529</commentid>
    <comment_count>7</comment_count>
      <attachid>6777</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-28 20:36:34 -0800</bug_when>
    <thetext>Comment on attachment 6777
Updated lastIndexOf implementation

This code looks like it won&apos;t work in a couple of ways:

    1) If 0 is passed it looks like it will search the entire array, but that&apos;s not what the documentation seems to call for.

    2) The for loop seems to stop with index == 1, so it will miss index == 0.

In any case, we need a test case and change log to land a change like this. Please add a test case that covers both of these issues and test the code before putting it up for review again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46631</commentid>
    <comment_count>8</comment_count>
      <attachid>8961</attachid>
    <who name="Karl Schramm">karlfschramm</who>
    <bug_when>2006-06-22 04:03:44 -0700</bug_when>
    <thetext>Created attachment 8961
lastIndexOf improved patch

This patch should fix some of the problems seen in the previous iterations. However, there&apos;s a confusing bit in the docs about what to do when the index is negative:

&quot;Note that even when the index is negative, the array is still searched from back to front. If the calculated index is less than 0, -1 is returned, i.e. the array will not be searched.&quot;

The second sentence seems to contradict the first (is the array searched or not??). This patch went with the second sentence. Firefox, it seems, went with the first.

When that mess gets sorted this patch will need a changelog &amp; a test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52841</commentid>
    <comment_count>9</comment_count>
      <attachid>10094</attachid>
    <who name="Vladimir Olexa (vladinecko)">vladimir.olexa</who>
    <bug_when>2006-08-17 10:57:52 -0700</bug_when>
    <thetext>Created attachment 10094
lastIndexOf javascript mozilla extension function

Actually, the specs are neither ambiguous nor contradicting. What they&apos;re saying is that if the index is negative, calculate a new index by offsetting it from the end of the array. If the calculated index is negative (e.g., array length is 3 and index passed in is -5), then return -1. This patch fixes this scenario adds that additional functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52842</commentid>
    <comment_count>10</comment_count>
      <attachid>10095</attachid>
    <who name="Vladimir Olexa (vladinecko)">vladimir.olexa</who>
    <bug_when>2006-08-17 11:26:32 -0700</bug_when>
    <thetext>Created attachment 10095
lastIndexOf javascript patch

please see my comment above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52880</commentid>
    <comment_count>11</comment_count>
      <attachid>10095</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-08-17 14:22:56 -0700</bug_when>
    <thetext>Comment on attachment 10095
lastIndexOf javascript patch

&gt;+      double d = args[1]-&gt;toInteger(exec);

Why are you converting an int back to a double here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52924</commentid>
    <comment_count>12</comment_count>
    <who name="Vladimir Olexa (vladinecko)">vladimir.olexa</who>
    <bug_when>2006-08-18 07:09:38 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Why are you converting an int back to a double here?
&gt; 

because the variable &quot;length&quot; is declared as unsigned and declaring &quot;d&quot; as int would break a lot of things in the comparisons for obvious reasons. i didn&apos;t want to investigate why &quot;length&quot; was declared as unsigned (although it&apos;s cast as int anyway) because that would require going through all functions that use it and making sure it&apos;s not going to break anything. this can definitely be done but i think it&apos;s beyond the scope of this particular bug. 
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52925</commentid>
    <comment_count>13</comment_count>
    <who name="Vladimir Olexa (vladinecko)">vladimir.olexa</who>
    <bug_when>2006-08-18 07:22:13 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Why are you converting an int back to a double here?
&gt; 

also, i didn&apos;t touch that piece of code anyway since it&apos;s already been implemented in IndexOf case and no bugs were raised regarding that. actually, IndexOf and LastIndexOf are practically identical, only logic behind is a little different so there was only a little to change to go from one to the other.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52926</commentid>
    <comment_count>14</comment_count>
      <attachid>10095</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-08-18 08:28:37 -0700</bug_when>
    <thetext>Comment on attachment 10095
lastIndexOf javascript patch

Generally looks good!

I see a number of minor mistakes:

+          index = static_cast&lt;unsigned&gt; (d);

It makes no sense to cast d to unsigned here. The types involved are int and double. This should be changed to a cast to int. Also, we don&apos;t use a space after the &quot;&gt;&quot; and before the &quot;(&quot;.

+      if ((d + length) &lt; 0)
+          return jsNumber(-1);
+      if (d &lt; 0)
+          d += length;      

I think it&apos;s a shame that this adds length to d twice. How about this instead:

    if (d &lt; 0) {
        d += length;      
        if (d &lt; 0)
            return jsNumber(-1);
    }

Or it could be structured more like the IndexOf version above.

+      for (; index &gt;= 0; --index) {
+          JSValue* e = getProperty(exec, thisObj, index);
+          if (!e)
+              e = jsUndefined();
+          if (strictEqual(exec, searchElement, e))
+          return jsNumber(index);
+          }

Indentation above is incorrect. The return statement needs to be indented and the ending brace needs to be outdented.

There are other indentation problems: The top two comment lines are not indented the same amount, the ending brace for the entire case is at the wrong level, the return statement doesn&apos;t line up with the rest of the code, and there&apos;s a stray tab character in the patch (so we&apos;ll get an error due to the pre-commit test that checks for tabs).

I&apos;d also like to see a new test that tests all the different edge cases. It&apos;s nice that this fixes some JavaScript tests, but ideally you&apos;d have a new test like the one we added when we added indexOf (see LayoutTests/fast/js/array-indexof.html for that one).
None of these are major, but I&apos;m going to mark this review- so that we can fix some or all of these issues. The biggest one for me would be having a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52929</commentid>
    <comment_count>15</comment_count>
    <who name="Vladimir Olexa (vladinecko)">vladimir.olexa</who>
    <bug_when>2006-08-18 09:13:13 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 10095 [edit])
&gt; +      if ((d + length) &lt; 0)
&gt; +          return jsNumber(-1);
&gt; +      if (d &lt; 0)
&gt; +          d += length;      
&gt; 
&gt; I think it&apos;s a shame that this adds length to d twice. How about this instead:
&gt; 
&gt;     if (d &lt; 0) {
&gt;         d += length;      
&gt;         if (d &lt; 0)
&gt;             return jsNumber(-1);
&gt;     }

sounds good. i have a couple of questions about the above statement, however. i had a similar short version of the if block as you proposed before but at the end decided to go with my version since in case (d+length) is negative, the script stops before performing other tests and thus saves an extra operation. but then again, if it&apos;s not less than zero then it adds an expense of an extra addition comparison so it&apos;s kind of 50-50. what do you think? </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52933</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-08-18 10:48:24 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; (From update of attachment 10095 [edit] [edit])
&gt; &gt; +      if ((d + length) &lt; 0)
&gt; &gt; +          return jsNumber(-1);
&gt; &gt; +      if (d &lt; 0)
&gt; &gt; +          d += length;      
&gt; &gt; 
&gt; &gt; I think it&apos;s a shame that this adds length to d twice. How about this instead:
&gt; &gt; 
&gt; &gt;     if (d &lt; 0) {
&gt; &gt;         d += length;      
&gt; &gt;         if (d &lt; 0)
&gt; &gt;             return jsNumber(-1);
&gt; &gt;     }
&gt; 
&gt; sounds good. i have a couple of questions about the above statement, however. i
&gt; had a similar short version of the if block as you proposed before but at the
&gt; end decided to go with my version since in case (d+length) is negative, the
&gt; script stops before performing other tests and thus saves an extra operation.
&gt; but then again, if it&apos;s not less than zero then it adds an expense of an extra
&gt; addition comparison so it&apos;s kind of 50-50. what do you think? 
This is not super-important, but I&apos;d be happy to explain my thinking.

When making a decision like this I consider what&apos;s the normal case and what&apos;s exceptional. In the common case, d is not negative, and in that case my suggested code does only a single branch. It&apos;s not as important to optimize the &quot;highly negative&quot; case because that one usually reflects an error in a script. It&apos;s usually best to structure things so that the normal case has as few branches as possible.

We need to be sure this does the right thing in the NaN case as well as negative and positive infinity -- the best way to ensure those is to make sure we have test cases that cover those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52954</commentid>
    <comment_count>17</comment_count>
      <attachid>10132</attachid>
    <who name="Vladimir Olexa (vladinecko)">vladimir.olexa</who>
    <bug_when>2006-08-18 12:54:00 -0700</bug_when>
    <thetext>Created attachment 10132
lastIndexOf javascript patch REVISION

This my modified patch from before with following changes:

- minimized the if block ala Darin&apos;s suggestion
- fixed indentation issues
- added test cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52959</commentid>
    <comment_count>18</comment_count>
      <attachid>10132</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-08-18 15:09:45 -0700</bug_when>
    <thetext>Comment on attachment 10132
lastIndexOf javascript patch REVISION

Looks good. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52996</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-08-21 10:37:32 -0700</bug_when>
    <thetext>Committed revision 15952.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5301</attachid>
            <date>2005-12-27 09:18:57 -0800</date>
            <delta_ts>2006-02-28 13:46:46 -0800</delta_ts>
            <desc>Array.lastIndexOf implementation</desc>
            <filename>array_lastindexof.patch</filename>
            <type>text/plain</type>
            <size>2376</size>
            <attacher name="Justin Haygood">jhaygood</attacher>
            
              <data encoding="base64">SW5kZXg6IGtqcy9hcnJheV9vYmplY3QuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2N2cy9y
b290L0phdmFTY3JpcHRDb3JlL2tqcy9hcnJheV9vYmplY3QuY3BwLHYNCnJldHJpZXZpbmcgcmV2
aXNpb24gMS42MQ0KZGlmZiAtdSAtcjEuNjEgYXJyYXlfb2JqZWN0LmNwcA0KLS0tIGtqcy9hcnJh
eV9vYmplY3QuY3BwCTI3IERlYyAyMDA1IDExOjA3OjQ4IC0wMDAwCTEuNjENCisrKyBranMvYXJy
YXlfb2JqZWN0LmNwcAkyNyBEZWMgMjAwNSAxNzoxNTozNyAtMDAwMA0KQEAgLTM5Miw3ICszOTIs
OCBAQA0KICAgZXZlcnkgICAgICAgICAgQXJyYXlQcm90b0Z1bmM6OkV2ZXJ5ICAgICAgICAgIERv
bnRFbnVtfEZ1bmN0aW9uIDUNCiAgIGZvckVhY2ggICAgICAgIEFycmF5UHJvdG9GdW5jOjpGb3JF
YWNoICAgICAgICBEb250RW51bXxGdW5jdGlvbiA1DQogICBzb21lICAgICAgICAgICBBcnJheVBy
b3RvRnVuYzo6U29tZSAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gNQ0KLSAgaW5kZXhPZiAg
ICAgICAgQXJyYXlQcm90b0Z1bmM6OkluZGV4T2YgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQ0K
KyAgaW5kZXhPZiAgICAgICAgQXJyYXlQcm90b0Z1bmM6OkluZGV4T2YgICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uIDENCisgIGxhc3RJbmRleE9mICAgIEFycmF5UHJvdG9GdW5jOjpMYXN0SW5kZXhP
ZiAgICBEb250RW51bXxGdW5jdGlvbiAxDQogQGVuZA0KICovDQogDQpAQCAtODM4LDYgKzgzOSwz
OCBAQA0KIA0KICAgICByZXR1cm4ganNOdW1iZXIoLTEpOw0KICAgfQ0KKyAgDQorICBjYXNlIExh
c3RJbmRleE9mOiB7DQorICANCisgICAgLy8gSmF2YVNjcmlwdCAxLjYgRXh0ZW5zaW9uIGJ5IE1v
emlsbGENCisgICAgLy8gRG9jdW1lbnRhdGlvbjogaHR0cDovL2RldmVsb3Blci5tb3ppbGxhLm9y
Zy9lbi9kb2NzL0NvcmVfSmF2YVNjcmlwdF8xLjVfUmVmZXJlbmNlOkdsb2JhbF9PYmplY3RzOkFy
cmF5Omxhc3RJbmRleE9mDQorICAgIA0KKyAgICB1bnNpZ25lZCBpbmRleCA9IGxlbmd0aDsNCisg
ICAgZG91YmxlIGQgPSBhcmdzWzFdLT50b0ludGVnZXIoZXhlYyk7DQorICAgIGlmIChkIDwgMCkN
CisgICAgICAgIGQgKz0gbGVuZ3RoOw0KKyAgICBpZiAoZCA+IDApIHsNCisgICAgICAgIGlmIChk
ID4gbGVuZ3RoKQ0KKyAgICAgICAgICAgIGluZGV4ID0gbGVuZ3RoOw0KKyAgICAgICAgZWxzZQ0K
KyAgICAgICAgICAgIGluZGV4ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGQpOw0KKyAgICB9DQor
DQorICAgIGlmIChsZW5ndGggPT0gMCkgLy8gUmV0dXJuIC0xIGluc3RlYWQgb2YgMCBmb3IgYXJy
YXkgd2l0aCBsZW5ndGggMC4NCisgICAgICAgIHJldHVybiBqc051bWJlcigtMSk7DQorDQorICAg
IEpTVmFsdWUqIHNlYXJjaEVsZW1lbnQgPSBhcmdzWzBdOw0KKyAgICBmb3IgKDsgaW5kZXggPj0g
MDsgLS1pbmRleCkgew0KKyAgICAgICAgSlNWYWx1ZSogZSA9IGdldFByb3BlcnR5KGV4ZWMsIHRo
aXNPYmosIGluZGV4KTsNCisgICAgICAgIGlmICghZSkNCisgICAgICAgICAgICBlID0ganNVbmRl
ZmluZWQoKTsNCisgICAgICAgIGlmIChzdHJpY3RFcXVhbChleGVjLCBzZWFyY2hFbGVtZW50LCBl
KSkNCisgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5kZXgpOw0KKyAgICB9DQorDQorICAg
IHJldHVybiBqc051bWJlcigtMSk7DQorICANCisgIH0NCiANCiAgIGRlZmF1bHQ6DQogICAgIGFz
c2VydCgwKTsNCkluZGV4OiBranMvYXJyYXlfb2JqZWN0LmgNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL2FycmF5X29iamVjdC5oLHYNCnJldHJpZXZp
bmcgcmV2aXNpb24gMS4xOA0KZGlmZiAtdSAtcjEuMTggYXJyYXlfb2JqZWN0LmgNCi0tLSBranMv
YXJyYXlfb2JqZWN0LmgJMTkgRGVjIDIwMDUgMDA6Mjc6MjggLTAwMDAJMS4xOA0KKysrIGtqcy9h
cnJheV9vYmplY3QuaAkyNyBEZWMgMjAwNSAxNzoxMzoxNSAtMDAwMA0KQEAgLTQ1LDcgKzQ1LDcg
QEANCiANCiAgICAgZW51bSB7IFRvU3RyaW5nLCBUb0xvY2FsZVN0cmluZywgQ29uY2F0LCBKb2lu
LCBQb3AsIFB1c2gsDQogICAgICAgICAgIFJldmVyc2UsIFNoaWZ0LCBTbGljZSwgU29ydCwgU3Bs
aWNlLCBVblNoaWZ0LCANCi0gICAgICAgICAgRXZlcnksIEZvckVhY2gsIFNvbWUsIEluZGV4T2Yg
fTsNCisgICAgICAgICAgRXZlcnksIEZvckVhY2gsIFNvbWUsIEluZGV4T2YsIExhc3RJbmRleE9m
IH07DQogICBwcml2YXRlOg0KICAgICBpbnQgaWQ7DQogICB9Ow0K
</data>
<flag name="review"
          id="1111"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6777</attachid>
            <date>2006-02-28 13:46:46 -0800</date>
            <delta_ts>2006-08-17 13:09:45 -0700</delta_ts>
            <desc>Updated lastIndexOf implementation</desc>
            <filename>jscore_array_lastindexof.patch</filename>
            <type>text/plain</type>
            <size>2342</size>
            <attacher name="Justin Haygood">jhaygood</attacher>
            
              <data encoding="base64">SW5kZXg6IEQ6L1Byb2plY3RzL0FwcGxlV2ViS2l0L0phdmFTY3JpcHRDb3JlL2tqcy9hcnJheV9v
YmplY3QuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gRDovUHJvamVjdHMvQXBwbGVXZWJLaXQvSmF2YVNj
cmlwdENvcmUva2pzL2FycmF5X29iamVjdC5jcHAJKHJldmlzaW9uIDEzMDU4KQ0KKysrIEQ6L1By
b2plY3RzL0FwcGxlV2ViS2l0L0phdmFTY3JpcHRDb3JlL2tqcy9hcnJheV9vYmplY3QuY3BwCSh3
b3JraW5nIGNvcHkpDQpAQCAtNDE1LDYgKzQxNSw3IEBADQogICBpbmRleE9mICAgICAgICBBcnJh
eVByb3RvRnVuYzo6SW5kZXhPZiAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQogICBmaWx0ZXIg
ICAgICAgICBBcnJheVByb3RvRnVuYzo6RmlsdGVyICAgICAgICAgRG9udEVudW18RnVuY3Rpb24g
MQogICBtYXAgICAgICAgICAgICBBcnJheVByb3RvRnVuYzo6TWFwICAgICAgICAgICAgRG9udEVu
dW18RnVuY3Rpb24gMQorICBsYXN0SW5kZXhPZiAgICBBcnJheVByb3RvRnVuYzo6TGFzdEluZGV4
T2YgICAgRG9udEVudW18RnVuY3Rpb24gMQogQGVuZAogKi8KIApAQCAtODc3LDcgKzg3OCw3IEBA
DQogICB9CiAKICAgY2FzZSBJbmRleE9mOiB7Ci0gICAgLy8gSmF2YVNjcmlwdCAxLjUgRXh0ZW5z
aW9uIGJ5IE1vemlsbGEKKyAgICAvLyBKYXZhU2NyaXB0IDEuNiBFeHRlbnNpb24gYnkgTW96aWxs
YQogICAgIC8vIERvY3VtZW50YXRpb246IGh0dHA6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4v
ZG9jcy9Db3JlX0phdmFTY3JpcHRfMS41X1JlZmVyZW5jZTpHbG9iYWxfT2JqZWN0czpBcnJheTpp
bmRleE9mCiAKICAgICB1bnNpZ25lZCBpbmRleCA9IDA7CkBAIC05MDIsNiArOTAzLDM0IEBADQog
CiAgICAgcmV0dXJuIGpzTnVtYmVyKC0xKTsKICAgfQorICAKKyAgY2FzZSBMYXN0SW5kZXhPZjog
eworICAgIC8vIEphdmFTY3JpcHQgMS42IEV4dGVuc2lvbiBieSBNb3ppbGxhCisgICAgLy8gRG9j
dW1lbnRhdGlvbjogaHR0cDovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9kb2NzL0NvcmVfSmF2
YVNjcmlwdF8xLjVfUmVmZXJlbmNlOkdsb2JhbF9PYmplY3RzOkFycmF5Omxhc3RJbmRleE9mIAor
ICAKKyAgICB1bnNpZ25lZCBpbmRleCA9IGxlbmd0aCAtIDE7CisgICAgZG91YmxlIGQgPSBhcmdz
WzFdLT50b0ludGVnZXIoZXhlYyk7CisgICAgCisgICAgaWYgKGQgPCAwKQorICAgICAgICBkICs9
IGxlbmd0aDsKKyAgICBpZiAoZCA+IDApIHsKKyAgICAgICAgaWYgKGQgPiBsZW5ndGgpCisgICAg
ICAgICAgICBpbmRleCA9IGxlbmd0aCAtIDE7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlu
ZGV4ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGQpOworICAgIH0KKyAgICAKKyAgICBKU1ZhbHVl
KiBzZWFyY2hFbGVtZW50ID0gYXJnc1swXTsKKyAgICBmb3IgKDsgaW5kZXg7IC0taW5kZXgpIHsK
KyAgICAgICAgSlNWYWx1ZSogZSA9IGdldFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGluZGV4KTsK
KyAgICAgICAgaWYgKCFlKQorICAgICAgICAgICAgZSA9IGpzVW5kZWZpbmVkKCk7CisgICAgICAg
IGlmIChzdHJpY3RFcXVhbChleGVjLCBzZWFyY2hFbGVtZW50LCBlKSkKKyAgICAgICAgICAgIHJl
dHVybiBqc051bWJlcihpbmRleCk7CisgICAgfQorICAgIAorICAgIHJldHVybiBqc051bWJlcigt
MSk7CisgIH0KIAogICBkZWZhdWx0OgogICAgIGFzc2VydCgwKTsKSW5kZXg6IEQ6L1Byb2plY3Rz
L0FwcGxlV2ViS2l0L0phdmFTY3JpcHRDb3JlL2tqcy9hcnJheV9vYmplY3QuaA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIEQ6L1Byb2plY3RzL0FwcGxlV2ViS2l0L0phdmFTY3JpcHRDb3JlL2tqcy9hcnJheV9v
YmplY3QuaAkocmV2aXNpb24gMTMwNTgpDQorKysgRDovUHJvamVjdHMvQXBwbGVXZWJLaXQvSmF2
YVNjcmlwdENvcmUva2pzL2FycmF5X29iamVjdC5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNDUsNyAr
NDUsNyBAQA0KIAogICAgIGVudW0geyBUb1N0cmluZywgVG9Mb2NhbGVTdHJpbmcsIENvbmNhdCwg
Sm9pbiwgUG9wLCBQdXNoLAogICAgICAgICAgIFJldmVyc2UsIFNoaWZ0LCBTbGljZSwgU29ydCwg
U3BsaWNlLCBVblNoaWZ0LCAKLSAgICAgICAgICBFdmVyeSwgRm9yRWFjaCwgU29tZSwgSW5kZXhP
ZiwgRmlsdGVyLCBNYXAgfTsKKyAgICAgICAgICBFdmVyeSwgRm9yRWFjaCwgU29tZSwgSW5kZXhP
ZiwgRmlsdGVyLCBNYXAsIExhc3RJbmRleE9mIH07CiAgIHByaXZhdGU6CiAgICAgaW50IGlkOwog
ICB9Owo=
</data>
<flag name="review"
          id="1734"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8961</attachid>
            <date>2006-06-22 04:03:44 -0700</date>
            <delta_ts>2006-08-17 13:09:59 -0700</delta_ts>
            <desc>lastIndexOf improved patch</desc>
            <filename>lastIndexOf</filename>
            <type>text/plain</type>
            <size>1943</size>
            <attacher name="Karl Schramm">karlfschramm</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9hcnJheV9vYmplY3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL2tqcy9hcnJheV9vYmplY3QuY3BwCShyZXZpc2lvbiAxNDk2OCkKKysr
IEphdmFTY3JpcHRDb3JlL2tqcy9hcnJheV9vYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MDYsNiArNDA2LDcgQEAgY29uc3QgQ2xhc3NJbmZvIEFycmF5UHJvdG90eXBlOjppbmZvID0gewog
ICBpbmRleE9mICAgICAgICBBcnJheVByb3RvRnVuYzo6SW5kZXhPZiAgICAgICAgRG9udEVudW18
RnVuY3Rpb24gMQogICBmaWx0ZXIgICAgICAgICBBcnJheVByb3RvRnVuYzo6RmlsdGVyICAgICAg
ICAgRG9udEVudW18RnVuY3Rpb24gMQogICBtYXAgICAgICAgICAgICBBcnJheVByb3RvRnVuYzo6
TWFwICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQorICBsYXN0SW5kZXhPZiAgICBBcnJh
eVByb3RvRnVuYzo6TGFzdEluZGV4T2YgICAgRG9udEVudW18RnVuY3Rpb24gMQogQGVuZAogKi8K
IApAQCAtODkzLDYgKzg5NCwzMCBAQCBKU1ZhbHVlICpBcnJheVByb3RvRnVuYzo6Y2FsbEFzRnVu
Y3Rpb24oCiAKICAgICByZXR1cm4ganNOdW1iZXIoLTEpOwogICB9CisgIAorICBjYXNlIExhc3RJ
bmRleE9mOiB7CisgICAgLy8gSmF2YVNjcmlwdCAxLjYgRXh0ZW5zaW9uIGJ5IE1vemlsbGEKKyAg
ICAvLyBEb2N1bWVudGF0aW9uOiBodHRwOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuL2RvY3Mv
Q29yZV9KYXZhU2NyaXB0XzEuNV9SZWZlcmVuY2U6R2xvYmFsX09iamVjdHM6QXJyYXk6bGFzdElu
ZGV4T2YgCisgIAorICAgIGludCBpbmRleCA9IGxlbmd0aCAtIDE7CisgICAgZG91YmxlIGQgPSBh
cmdzWzFdLT50b0ludGVnZXIoZXhlYyk7CisJCisgICAgaWYgKGQgPCAwKQorICAgICAgICBkICs9
IGxlbmd0aDsKKyAgICBpZiAoZCA8IGxlbmd0aCAmJiAhYXJnc1sxXS0+aXNVbmRlZmluZWQoKSkK
KyAgICAgICAgaW5kZXggPSBzdGF0aWNfY2FzdDxpbnQ+KGQpOworICAgIAorICAgIEpTVmFsdWUq
IHNlYXJjaEVsZW1lbnQgPSBhcmdzWzBdOworICAgIGZvciAoOyBpbmRleCA+PSAwOyAtLWluZGV4
KSB7CisgICAgICAgIEpTVmFsdWUqIGUgPSBnZXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBpbmRl
eCk7CisgICAgICAgIGlmICghZSkKKyAgICAgICAgICAgIGUgPSBqc1VuZGVmaW5lZCgpOworICAg
ICAgICBpZiAoc3RyaWN0RXF1YWwoZXhlYywgc2VhcmNoRWxlbWVudCwgZSkpCisgICAgICAgICAg
ICByZXR1cm4ganNOdW1iZXIoaW5kZXgpOworICAgIH0KKyAgICAKKyAgICByZXR1cm4ganNOdW1i
ZXIoLTEpOworICB9CiAKICAgZGVmYXVsdDoKICAgICBhc3NlcnQoMCk7CkluZGV4OiBKYXZhU2Ny
aXB0Q29yZS9ranMvYXJyYXlfb2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
a2pzL2FycmF5X29iamVjdC5oCShyZXZpc2lvbiAxNDk2OCkKKysrIEphdmFTY3JpcHRDb3JlL2tq
cy9hcnJheV9vYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3Bh
Y2UgS0pTIHsKIAogICAgIGVudW0geyBUb1N0cmluZywgVG9Mb2NhbGVTdHJpbmcsIENvbmNhdCwg
Sm9pbiwgUG9wLCBQdXNoLAogICAgICAgICAgIFJldmVyc2UsIFNoaWZ0LCBTbGljZSwgU29ydCwg
U3BsaWNlLCBVblNoaWZ0LCAKLSAgICAgICAgICBFdmVyeSwgRm9yRWFjaCwgU29tZSwgSW5kZXhP
ZiwgRmlsdGVyLCBNYXAgfTsKKyAgICAgICAgICBFdmVyeSwgRm9yRWFjaCwgU29tZSwgSW5kZXhP
ZiwgRmlsdGVyLCBNYXAsIExhc3RJbmRleE9mIH07CiAgIHByaXZhdGU6CiAgICAgaW50IGlkOwog
ICB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10094</attachid>
            <date>2006-08-17 10:57:52 -0700</date>
            <delta_ts>2006-08-17 11:26:32 -0700</delta_ts>
            <desc>lastIndexOf javascript mozilla extension function</desc>
            <filename>lastIndexOfPatch.txt</filename>
            <type>text/plain</type>
            <size>2597</size>
            <attacher name="Vladimir Olexa (vladinecko)">vladimir.olexa</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTI1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDYtMDgt
MTcgIFZsYWRpbWlyIE9sZXhhICA8dmxhZGltaXIub2xleGFAZ21haWwuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoga2pzL2FycmF5X29iamVj
dC5jcHA6CisgICAgICAgIChBcnJheVByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24pOgorICAgICAg
ICAqIGtqcy9hcnJheV9vYmplY3QuaDoKKyAgICAgICAgKEtKUzo6QXJyYXlQcm90b0Z1bmM6Oik6
CisKIDIwMDYtMDgtMTUgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBtanMuCkluZGV4OiBranMvYXJyYXlfb2JqZWN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBranMvYXJyYXlfb2JqZWN0LmNwcAkocmV2aXNpb24gMTU4MzcpCisrKyBranMv
YXJyYXlfb2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAzLDYgKzQwMyw3IEBAIGNvbnN0
IENsYXNzSW5mbyBBcnJheVByb3RvdHlwZTo6aW5mbyA9IHsKICAgZm9yRWFjaCAgICAgICAgQXJy
YXlQcm90b0Z1bmM6OkZvckVhY2ggICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgc29tZSAg
ICAgICAgICAgQXJyYXlQcm90b0Z1bmM6OlNvbWUgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9u
IDEKICAgaW5kZXhPZiAgICAgICAgQXJyYXlQcm90b0Z1bmM6OkluZGV4T2YgICAgICAgIERvbnRF
bnVtfEZ1bmN0aW9uIDEKKyAgbGFzdEluZGV4T2YgICAgQXJyYXlQcm90b0Z1bmM6Okxhc3RJbmRl
eE9mICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgZmlsdGVyICAgICAgICAgQXJyYXlQcm90b0Z1
bmM6OkZpbHRlciAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgbWFwICAgICAgICAgICAg
QXJyYXlQcm90b0Z1bmM6Ok1hcCAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKIEBlbmQK
QEAgLTg5Miw3ICs4OTMsMzEgQEAgSlNWYWx1ZSAqQXJyYXlQcm90b0Z1bmM6OmNhbGxBc0Z1bmN0
aW9uKAogCiAgICAgcmV0dXJuIGpzTnVtYmVyKC0xKTsKICAgfQotCisgIGNhc2UgTGFzdEluZGV4
T2Y6IHsKKyAgICAgICAvLyBKYXZhU2NyaXB0IDEuNiBFeHRlbnNpb24gYnkgTW96aWxsYQorICAg
ICAgLy8gRG9jdW1lbnRhdGlvbjogaHR0cDovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9kb2Nz
L0NvcmVfSmF2YVNjcmlwdF8xLjVfUmVmZXJlbmNlOkdsb2JhbF9PYmplY3RzOkFycmF5Omxhc3RJ
bmRleE9mIAorICAgICAgICAKKyAgICAgIGludCBpbmRleCA9IGxlbmd0aCAtIDE7CisgICAgICBk
b3VibGUgZCA9IGFyZ3NbMV0tPnRvSW50ZWdlcihleGVjKTsKKyAgICAgIAkgICAgICAKKyAgICAg
IGlmICgoZCArIGxlbmd0aCkgPCAwKQorICAgICAgICAgIHJldHVybiBqc051bWJlcigtMSk7Cisg
ICAgICBpZiAoZCA8IDApCisgICAgICAgICAgZCArPSBsZW5ndGg7ICAgICAgCisgICAgICBpZiAo
ZCA8IGxlbmd0aCkKKyAgICAgICAgICBpbmRleCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPiAoZCk7
CisgICAgICAgICAgCisgICAgICBKU1ZhbHVlKiBzZWFyY2hFbGVtZW50ID0gYXJnc1swXTsKKyAg
ICAgIGZvciAoOyBpbmRleCA+PSAwOyAtLWluZGV4KSB7CisgICAgICAgICAgSlNWYWx1ZSogZSA9
IGdldFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGluZGV4KTsKKyAgICAgICAgICBpZiAoIWUpCisg
ICAgICAgICAgICAgIGUgPSBqc1VuZGVmaW5lZCgpOworICAgICAgICAgIGlmIChzdHJpY3RFcXVh
bChleGVjLCBzZWFyY2hFbGVtZW50LCBlKSkKKyAgICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5k
ZXgpOworICAgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgIHJldHVybiBqc051bWJlcigt
MSk7CisgICAgICB9CiAgIGRlZmF1bHQ6CiAgICAgYXNzZXJ0KDApOwogICAgIHJlc3VsdCA9IDA7
CkluZGV4OiBranMvYXJyYXlfb2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pzL2FycmF5X29iamVj
dC5oCShyZXZpc2lvbiAxNTgzNykKKysrIGtqcy9hcnJheV9vYmplY3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgS0pTIHsKIAogICAgIGVudW0geyBUb1N0cmlu
ZywgVG9Mb2NhbGVTdHJpbmcsIENvbmNhdCwgSm9pbiwgUG9wLCBQdXNoLAogICAgICAgICAgIFJl
dmVyc2UsIFNoaWZ0LCBTbGljZSwgU29ydCwgU3BsaWNlLCBVblNoaWZ0LCAKLSAgICAgICAgICBF
dmVyeSwgRm9yRWFjaCwgU29tZSwgSW5kZXhPZiwgRmlsdGVyLCBNYXAgfTsKKyAgICAgICAgICBF
dmVyeSwgRm9yRWFjaCwgU29tZSwgSW5kZXhPZiwgRmlsdGVyLCBNYXAsIExhc3RJbmRleE9mIH07
CiAgIHByaXZhdGU6CiAgICAgaW50IGlkOwogICB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10095</attachid>
            <date>2006-08-17 11:26:32 -0700</date>
            <delta_ts>2006-08-18 12:54:00 -0700</delta_ts>
            <desc>lastIndexOf javascript patch</desc>
            <filename>lastIndexOfPatch.txt</filename>
            <type>text/plain</type>
            <size>28559</size>
            <attacher name="Vladimir Olexa (vladinecko)">vladimir.olexa</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTI1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDYtMDgt
MTcgIFZsYWRpbWlyIE9sZXhhICA8dmxhZGltaXIub2xleGFAZ21haWwuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoga2pzL2FycmF5X29iamVj
dC5jcHA6CisgICAgICAgIChBcnJheVByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24pOiBmaXhlZCBs
b2dpYyBlcnJvcnMgaW4gaWYgc3RhdGVtZW50cworICAgICAgICAqIGtqcy9hcnJheV9vYmplY3Qu
aDoKKyAgICAgICAgKEtKUzo6QXJyYXlQcm90b0Z1bmM6Oik6IGFkZGVkIExhc3RJbmRleE9mIHRv
IGVudW0gc3RydWN0CisKIDIwMDYtMDgtMTUgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBtanMuCkluZGV4OiBranMvYXJyYXlfb2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBranMvYXJyYXlfb2JqZWN0LmNwcAkocmV2aXNpb24gMTU4
MzcpCisrKyBranMvYXJyYXlfb2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAzLDYgKzQw
Myw3IEBAIGNvbnN0IENsYXNzSW5mbyBBcnJheVByb3RvdHlwZTo6aW5mbyA9IHsKICAgZm9yRWFj
aCAgICAgICAgQXJyYXlQcm90b0Z1bmM6OkZvckVhY2ggICAgICAgIERvbnRFbnVtfEZ1bmN0aW9u
IDEKICAgc29tZSAgICAgICAgICAgQXJyYXlQcm90b0Z1bmM6OlNvbWUgICAgICAgICAgIERvbnRF
bnVtfEZ1bmN0aW9uIDEKICAgaW5kZXhPZiAgICAgICAgQXJyYXlQcm90b0Z1bmM6OkluZGV4T2Yg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKKyAgbGFzdEluZGV4T2YgICAgQXJyYXlQcm90b0Z1
bmM6Okxhc3RJbmRleE9mICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgZmlsdGVyICAgICAgICAg
QXJyYXlQcm90b0Z1bmM6OkZpbHRlciAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgbWFw
ICAgICAgICAgICAgQXJyYXlQcm90b0Z1bmM6Ok1hcCAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0
aW9uIDEKIEBlbmQKQEAgLTg5Miw3ICs4OTMsMzEgQEAgSlNWYWx1ZSAqQXJyYXlQcm90b0Z1bmM6
OmNhbGxBc0Z1bmN0aW9uKAogCiAgICAgcmV0dXJuIGpzTnVtYmVyKC0xKTsKICAgfQotCisgIGNh
c2UgTGFzdEluZGV4T2Y6IHsKKyAgICAgICAvLyBKYXZhU2NyaXB0IDEuNiBFeHRlbnNpb24gYnkg
TW96aWxsYQorICAgICAgLy8gRG9jdW1lbnRhdGlvbjogaHR0cDovL2RldmVsb3Blci5tb3ppbGxh
Lm9yZy9lbi9kb2NzL0NvcmVfSmF2YVNjcmlwdF8xLjVfUmVmZXJlbmNlOkdsb2JhbF9PYmplY3Rz
OkFycmF5Omxhc3RJbmRleE9mIAorICAgICAgICAKKyAgICAgIGludCBpbmRleCA9IGxlbmd0aCAt
IDE7CisgICAgICBkb3VibGUgZCA9IGFyZ3NbMV0tPnRvSW50ZWdlcihleGVjKTsKKyAgICAgIAkg
ICAgICAKKyAgICAgIGlmICgoZCArIGxlbmd0aCkgPCAwKQorICAgICAgICAgIHJldHVybiBqc051
bWJlcigtMSk7CisgICAgICBpZiAoZCA8IDApCisgICAgICAgICAgZCArPSBsZW5ndGg7ICAgICAg
CisgICAgICBpZiAoZCA8IGxlbmd0aCkKKyAgICAgICAgICBpbmRleCA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPiAoZCk7CisgICAgICAgICAgCisgICAgICBKU1ZhbHVlKiBzZWFyY2hFbGVtZW50ID0g
YXJnc1swXTsKKyAgICAgIGZvciAoOyBpbmRleCA+PSAwOyAtLWluZGV4KSB7CisgICAgICAgICAg
SlNWYWx1ZSogZSA9IGdldFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGluZGV4KTsKKyAgICAgICAg
ICBpZiAoIWUpCisgICAgICAgICAgICAgIGUgPSBqc1VuZGVmaW5lZCgpOworICAgICAgICAgIGlm
IChzdHJpY3RFcXVhbChleGVjLCBzZWFyY2hFbGVtZW50LCBlKSkKKyAgICAgICAgICByZXR1cm4g
anNOdW1iZXIoaW5kZXgpOworICAgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgIHJldHVy
biBqc051bWJlcigtMSk7CisgICAgICB9CiAgIGRlZmF1bHQ6CiAgICAgYXNzZXJ0KDApOwogICAg
IHJlc3VsdCA9IDA7CkluZGV4OiBranMvYXJyYXlfb2JqZWN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pz
L2FycmF5X29iamVjdC5oCShyZXZpc2lvbiAxNTgzNykKKysrIGtqcy9hcnJheV9vYmplY3QuaAko
d29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgS0pTIHsKIAogICAgIGVu
dW0geyBUb1N0cmluZywgVG9Mb2NhbGVTdHJpbmcsIENvbmNhdCwgSm9pbiwgUG9wLCBQdXNoLAog
ICAgICAgICAgIFJldmVyc2UsIFNoaWZ0LCBTbGljZSwgU29ydCwgU3BsaWNlLCBVblNoaWZ0LCAK
LSAgICAgICAgICBFdmVyeSwgRm9yRWFjaCwgU29tZSwgSW5kZXhPZiwgRmlsdGVyLCBNYXAgfTsK
KyAgICAgICAgICBFdmVyeSwgRm9yRWFjaCwgU29tZSwgSW5kZXhPZiwgRmlsdGVyLCBNYXAsIExh
c3RJbmRleE9mIH07CiAgIHByaXZhdGU6CiAgICAgaW50IGlkOwogICB9OwpJbmRleDogdGVzdHMv
bW96aWxsYS9leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRlc3RzL21vemlsbGEvZXhwZWN0
ZWQuaHRtbAkocmV2aXNpb24gMTU4MzcpCisrKyB0ZXN0cy9tb3ppbGxhL2V4cGVjdGVkLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTcsMTEgKzcsMTEgQEAKIDxwIGNsYXNzPSdyZXN1bHRzX3N1bW1h
cnknPgogVGVzdCBMaXN0OiBBbGwgdGVzdHM8YnI+CiBTa2lwIExpc3Q6IChub25lKTxicj4KLTEx
MzUgdGVzdChzKSBzZWxlY3RlZCwgMTEyNyB0ZXN0KHMpIGNvbXBsZXRlZCwgNzQgZmFpbHVyZXMg
cmVwb3J0ZWQgKDYuNTYlIGZhaWxlZCk8YnI+Ci1FbmdpbmUgY29tbWFuZCBsaW5lOiAvVXNlcnMv
ZGFyaW4vc3ltcm9vdHMvRGVidWcvdGVzdGtqcyA8YnI+Ci1PUyB0eXBlOiBEYXJ3aW4gZGFyaW4t
YWRsZXJzLXBvd2VyLW1hYy1nNC5sb2NhbCA4LjcuMCBEYXJ3aW4gS2VybmVsIFZlcnNpb24gOC43
LjA6IEZyaSBNYXkgMjYgMTU6MjA6NTMgUERUIDIwMDY7IHJvb3Q6eG51LTc5Mi42Ljc2Lm9ian4x
L1JFTEVBU0VfUFBDIFBvd2VyIE1hY2ludG9zaCBwb3dlcnBjPGJyPgotVGVzdGNhc2UgZXhlY3V0
aW9uIHRpbWU6IDggbWludXRlcywgMzcgc2Vjb25kcy48YnI+Ci1UZXN0cyBjb21wbGV0ZWQgb24g
U2F0IEp1bCAyOSAxNjoxMTowNCAyMDA2Ljxicj48YnI+CisxMTM1IHRlc3Qocykgc2VsZWN0ZWQs
IDExMjcgdGVzdChzKSBjb21wbGV0ZWQsIDcyIGZhaWx1cmVzIHJlcG9ydGVkICg2LjM4JSBmYWls
ZWQpPGJyPgorRW5naW5lIGNvbW1hbmQgbGluZTogL1VzZXJzL3ZsYWRvL1dlYktpdC9XZWJLaXRC
dWlsZC9EZWJ1Zy90ZXN0a2pzIDxicj4KK09TIHR5cGU6IERhcndpbiBYUC1TQ0subG9jYWwgOC43
LjAgRGFyd2luIEtlcm5lbCBWZXJzaW9uIDguNy4wOiBGcmkgTWF5IDI2IDE1OjIwOjUzIFBEVCAy
MDA2OyByb290OnhudS03OTIuNi43Ni5vYmp+MS9SRUxFQVNFX1BQQyBQb3dlciBNYWNpbnRvc2gg
cG93ZXJwYzxicj4KK1Rlc3RjYXNlIGV4ZWN1dGlvbiB0aW1lOiA2IG1pbnV0ZXMsIDQ4IHNlY29u
ZHMuPGJyPgorVGVzdHMgY29tcGxldGVkIG9uIFRodSBBdWcgMTcgMTI6MDU6NTAgMjAwNi48YnI+
PGJyPgogWyA8YSBocmVmPScjZmFpbF9kZXRhaWwnPkZhaWx1cmUgRGV0YWlsczwvYT4gfCA8YSBo
cmVmPScjcmV0ZXN0X2xpc3QnPlJldGVzdCBMaXN0PC9hPiB8IDxhIGhyZWY9J21lbnUuaHRtbCc+
VGVzdCBTZWxlY3Rpb24gUGFnZTwvYT4gXTxicj4KIDxocj4KIDxhIG5hbWU9J2ZhaWxfZGV0YWls
Jz48L2E+CkBAIC03Myw3ICs3Myw3IEBAIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJy
PgogTEVBSzogNjE4IEtKUzo6Tm9kZTxicj4KIC0tPiBSZWdFeHAvaGV4LTAwMS5qcyBKUyByZWdl
eHAgYW5jaG9yaW5nIG9uIGVtcHR5IG1hdGNoIGJ1Zzxicj4KIC0tPiBCVUdOVU1CRVI6IGh0dHA6
Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1Nzxicj4KLVs5MzUyXSAu
L2VjbWFfMi9SZWdFeHAvcmVncmVzcy0wMDEuanMgbGluZSAxODogVHlwZUVycm9yOiBPYmplY3Qg
L2F8fGIvIChyZXN1bHQgb2YgZXhwcmVzc2lvbiAvYXx8Yi8pIGRvZXMgbm90IGFsbG93IGNhbGxz
Ljxicj4KK1syNDkwNl0gLi9lY21hXzIvUmVnRXhwL3JlZ3Jlc3MtMDAxLmpzIGxpbmUgMTg6IFR5
cGVFcnJvcjogT2JqZWN0IC9hfHxiLyAocmVzdWx0IG9mIGV4cHJlc3Npb24gL2F8fGIvKSBkb2Vz
IG5vdCBhbGxvdyBjYWxscy48YnI+CiA8L3R0Pjxicj4KIDxhIG5hbWU9J2ZhaWx1cmU2Jz48L2E+
PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2VjbWFfMi9S
ZWdFeHAvdW5pY29kZS0wMDEuanMnPmVjbWFfMi9SZWdFeHAvdW5pY29kZS0wMDEuanM8L2E+IGZh
aWxlZDwvYj4gPGJyPgogIFsgPGEgaHJlZj0nI2ZhaWx1cmU1Jz5QcmV2aW91cyBGYWlsdXJlPC9h
PiB8IDxhIGhyZWY9JyNmYWlsdXJlNyc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBw
eV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgpAQCAtODIsMjYgKzgyLDI2IEBAIFRlc3RjYXNl
IHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3
YXM6PGJyPgogTEVBSzogNjcxIEtKUzo6Tm9kZTxicj4KIC0tPiBSZWdFeHAvdW5pY29kZS0wMDEu
anMgbmV3IFJlZ0V4cCggcGF0dGVybiwgZmxhZ3MgKTxicj4KLVs5MzUzXSAuL2VjbWFfMi9SZWdF
eHAvdW5pY29kZS0wMDEuanMgbGluZSAzMzogVHlwZUVycm9yOiBOdWxsIHZhbHVlPGJyPgorWzI0
OTA3XSAuL2VjbWFfMi9SZWdFeHAvdW5pY29kZS0wMDEuanMgbGluZSAzMzogVHlwZUVycm9yOiBO
dWxsIHZhbHVlPGJyPgogPC90dD48YnI+CiA8YSBuYW1lPSdmYWlsdXJlNyc+PC9hPjxkZD48Yj5U
ZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9lY21hXzMvRGF0ZS8xNS45
LjUuNy5qcyc+ZWNtYV8zL0RhdGUvMTUuOS41LjcuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgogIFsg
PGEgaHJlZj0nI2ZhaWx1cmU2Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWls
dXJlOCc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdl
PC9hPiBdPGJyPgogPHR0Pjxicj4KIEZhaWx1cmUgbWVzc2FnZXMgd2VyZTo8YnI+Ci0tLT4gKFdl
ZCBEZWMgMzEgMTk2OSAxNjowMDowMCBHTVQtMDgwMCAoUFNUKSkudG9Mb2NhbGVUaW1lU3RyaW5n
KCkgPSA0OjAwOjAwIFBNIFBTVCBGQUlMRUQhIGV4cGVjdGVkOiAxNjowMDowMDxicj4KLS0tPiAo
V2VkIERlYyAzMSAxOTY5IDA4OjAwOjAwIEdNVC0wODAwIChQU1QpKS50b0xvY2FsZVRpbWVTdHJp
bmcoKSA9IDg6MDA6MDAgQU0gUFNUIEZBSUxFRCEgZXhwZWN0ZWQ6IDA4OjAwOjAwPGJyPgotLS0+
IChTdW4gRGVjIDMxIDE4OTkgMTY6MDA6MDAgR01ULTA4MDAgKFBTVCkpLnRvTG9jYWxlVGltZVN0
cmluZygpID0gNTowMDowMCBQTSBQRFQgRkFJTEVEISBleHBlY3RlZDogMTY6MDA6MDA8YnI+Ci0t
LT4gKE1vbiBKYW4gMDEgMTkwMCAwMDowMDowMCBHTVQtMDgwMCAoUFNUKSkudG9Mb2NhbGVUaW1l
U3RyaW5nKCkgPSAxOjAwOjAwIEFNIFBEVCBGQUlMRUQhIGV4cGVjdGVkOiAwMDowMDowMDxicj4K
LS0tPiAoRnJpIERlYyAzMSAxOTk5IDE2OjAwOjAwIEdNVC0wODAwIChQU1QpKS50b0xvY2FsZVRp
bWVTdHJpbmcoKSA9IDQ6MDA6MDAgUE0gUFNUIEZBSUxFRCEgZXhwZWN0ZWQ6IDE2OjAwOjAwPGJy
PgotLS0+IChTYXQgSmFuIDAxIDIwMDAgMDA6MDA6MDAgR01ULTA4MDAgKFBTVCkpLnRvTG9jYWxl
VGltZVN0cmluZygpID0gMTI6MDA6MDAgQU0gUFNUIEZBSUxFRCEgZXhwZWN0ZWQ6IDAwOjAwOjAw
PGJyPgotLS0+IChNb24gRmViIDI4IDIwMDAgMTY6MDA6MDAgR01ULTA4MDAgKFBTVCkpLnRvTG9j
YWxlVGltZVN0cmluZygpID0gNDowMDowMCBQTSBQU1QgRkFJTEVEISBleHBlY3RlZDogMTY6MDA6
MDA8YnI+Ci0tLT4gKE1vbiBGZWIgMjggMjAwMCAxNTo1OTo1OSBHTVQtMDgwMCAoUFNUKSkudG9M
b2NhbGVUaW1lU3RyaW5nKCkgPSAzOjU5OjU5IFBNIFBTVCBGQUlMRUQhIGV4cGVjdGVkOiAxNTo1
OTo1OTxicj4KLS0tPiAoVHVlIEZlYiAyOSAyMDAwIDAwOjAwOjAwIEdNVC0wODAwIChQU1QpKS50
b0xvY2FsZVRpbWVTdHJpbmcoKSA9IDEyOjAwOjAwIEFNIFBTVCBGQUlMRUQhIGV4cGVjdGVkOiAw
MDowMDowMDxicj4KLS0tPiAoU2F0IEp1bCAyOSAyMDA2IDE2OjA5OjMzIEdNVC0wNzAwIChQRFQp
KS50b0xvY2FsZVRpbWVTdHJpbmcoKSA9IDQ6MDk6MzMgUE0gUERUIEZBSUxFRCEgZXhwZWN0ZWQ6
IDE2OjA5OjMzPGJyPgotLS0+IChTdW4gSnVsIDMwIDIwMDYgMDA6MDk6MzMgR01ULTA3MDAgKFBE
VCkpLnRvTG9jYWxlVGltZVN0cmluZygpID0gMTI6MDk6MzMgQU0gUERUIEZBSUxFRCEgZXhwZWN0
ZWQ6IDAwOjA5OjMzPGJyPgotLS0+IChGcmkgRGVjIDMxIDIwMDQgMTY6MDA6MDAgR01ULTA4MDAg
KFBTVCkpLnRvTG9jYWxlVGltZVN0cmluZygpID0gNDowMDowMCBQTSBQU1QgRkFJTEVEISBleHBl
Y3RlZDogMTY6MDA6MDA8YnI+Ci0tLT4gKEZyaSBEZWMgMzEgMjAwNCAxNTo1OTo1OSBHTVQtMDgw
MCAoUFNUKSkudG9Mb2NhbGVUaW1lU3RyaW5nKCkgPSAzOjU5OjU5IFBNIFBTVCBGQUlMRUQhIGV4
cGVjdGVkOiAxNTo1OTo1OTxicj4KLS0tPiAoU2F0IEphbiAwMSAyMDA1IDAwOjAwOjAwIEdNVC0w
ODAwIChQU1QpKS50b0xvY2FsZVRpbWVTdHJpbmcoKSA9IDEyOjAwOjAwIEFNIFBTVCBGQUlMRUQh
IGV4cGVjdGVkOiAwMDowMDowMDxicj4KKy0tPiAoV2VkIERlYyAzMSAxOTY5IDE5OjAwOjAwIEdN
VC0wNTAwIChFU1QpKS50b0xvY2FsZVRpbWVTdHJpbmcoKSA9IDc6MDA6MDAgUE0gRVNUIEZBSUxF
RCEgZXhwZWN0ZWQ6IDE5OjAwOjAwPGJyPgorLS0+IChXZWQgRGVjIDMxIDE5NjkgMTQ6MDA6MDAg
R01ULTA1MDAgKEVTVCkpLnRvTG9jYWxlVGltZVN0cmluZygpID0gMjowMDowMCBQTSBFU1QgRkFJ
TEVEISBleHBlY3RlZDogMTQ6MDA6MDA8YnI+CistLT4gKFN1biBEZWMgMzEgMTg5OSAxOTowMDow
MCBHTVQtMDUwMCAoRVNUKSkudG9Mb2NhbGVUaW1lU3RyaW5nKCkgPSA4OjAwOjAwIFBNIEVEVCBG
QUlMRUQhIGV4cGVjdGVkOiAxOTowMDowMDxicj4KKy0tPiAoTW9uIEphbiAwMSAxOTAwIDAwOjAw
OjAwIEdNVC0wNTAwIChFU1QpKS50b0xvY2FsZVRpbWVTdHJpbmcoKSA9IDE6MDA6MDAgQU0gRURU
IEZBSUxFRCEgZXhwZWN0ZWQ6IDAwOjAwOjAwPGJyPgorLS0+IChGcmkgRGVjIDMxIDE5OTkgMTk6
MDA6MDAgR01ULTA1MDAgKEVTVCkpLnRvTG9jYWxlVGltZVN0cmluZygpID0gNzowMDowMCBQTSBF
U1QgRkFJTEVEISBleHBlY3RlZDogMTk6MDA6MDA8YnI+CistLT4gKFNhdCBKYW4gMDEgMjAwMCAw
MDowMDowMCBHTVQtMDUwMCAoRVNUKSkudG9Mb2NhbGVUaW1lU3RyaW5nKCkgPSAxMjowMDowMCBB
TSBFU1QgRkFJTEVEISBleHBlY3RlZDogMDA6MDA6MDA8YnI+CistLT4gKE1vbiBGZWIgMjggMjAw
MCAxOTowMDowMCBHTVQtMDUwMCAoRVNUKSkudG9Mb2NhbGVUaW1lU3RyaW5nKCkgPSA3OjAwOjAw
IFBNIEVTVCBGQUlMRUQhIGV4cGVjdGVkOiAxOTowMDowMDxicj4KKy0tPiAoTW9uIEZlYiAyOCAy
MDAwIDE4OjU5OjU5IEdNVC0wNTAwIChFU1QpKS50b0xvY2FsZVRpbWVTdHJpbmcoKSA9IDY6NTk6
NTkgUE0gRVNUIEZBSUxFRCEgZXhwZWN0ZWQ6IDE4OjU5OjU5PGJyPgorLS0+IChUdWUgRmViIDI5
IDIwMDAgMDA6MDA6MDAgR01ULTA1MDAgKEVTVCkpLnRvTG9jYWxlVGltZVN0cmluZygpID0gMTI6
MDA6MDAgQU0gRVNUIEZBSUxFRCEgZXhwZWN0ZWQ6IDAwOjAwOjAwPGJyPgorLS0+IChUaHUgQXVn
IDE3IDIwMDYgMTI6MDQ6MzAgR01ULTA0MDAgKEVEVCkpLnRvTG9jYWxlVGltZVN0cmluZygpID0g
MTI6MDQ6MzAgUE0gRURUIEZBSUxFRCEgZXhwZWN0ZWQ6IDEyOjA0OjMwPGJyPgorLS0+IChUaHUg
QXVnIDE3IDIwMDYgMTc6MDQ6MzAgR01ULTA0MDAgKEVEVCkpLnRvTG9jYWxlVGltZVN0cmluZygp
ID0gNTowNDozMCBQTSBFRFQgRkFJTEVEISBleHBlY3RlZDogMTc6MDQ6MzA8YnI+CistLT4gKEZy
aSBEZWMgMzEgMjAwNCAxOTowMDowMCBHTVQtMDUwMCAoRVNUKSkudG9Mb2NhbGVUaW1lU3RyaW5n
KCkgPSA3OjAwOjAwIFBNIEVTVCBGQUlMRUQhIGV4cGVjdGVkOiAxOTowMDowMDxicj4KKy0tPiAo
RnJpIERlYyAzMSAyMDA0IDE4OjU5OjU5IEdNVC0wNTAwIChFU1QpKS50b0xvY2FsZVRpbWVTdHJp
bmcoKSA9IDY6NTk6NTkgUE0gRVNUIEZBSUxFRCEgZXhwZWN0ZWQ6IDE4OjU5OjU5PGJyPgorLS0+
IChTYXQgSmFuIDAxIDIwMDUgMDA6MDA6MDAgR01ULTA1MDAgKEVTVCkpLnRvTG9jYWxlVGltZVN0
cmluZygpID0gMTI6MDA6MDAgQU0gRVNUIEZBSUxFRCEgZXhwZWN0ZWQ6IDAwOjAwOjAwPGJyPgog
PC90dD48YnI+CiA8YSBuYW1lPSdmYWlsdXJlOCc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJn
ZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9lY21hXzMvRnVuRXhwci9mZS0wMDEuanMnPmVjbWFf
My9GdW5FeHByL2ZlLTAwMS5qczwvYT4gZmFpbGVkPC9iPiA8YnI+CiAgWyA8YSBocmVmPScjZmFp
bHVyZTcnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU5Jz5OZXh0IEZh
aWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+CkBA
IC01NzgsNyArNTc4LDcgQEAgRmFpbHVyZSBtZXNzYWdlcyB3ZXJlOjxicj4KIFRlc3RjYXNlIHRl
cm1pbmF0ZWQgd2l0aCBzaWduYWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6
PGJyPgogTEVBSzogMzk3IEtKUzo6Tm9kZTxicj4KLVs5NTA5XSAuL2VjbWFfMy9TdGF0ZW1lbnRz
L3JlZ3Jlc3MtMTk0MzY0LmpzIGxpbmUgMTogU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yPGJyPgor
WzI1MDY0XSAuL2VjbWFfMy9TdGF0ZW1lbnRzL3JlZ3Jlc3MtMTk0MzY0LmpzIGxpbmUgMTogU3lu
dGF4RXJyb3I6IFBhcnNlIGVycm9yPGJyPgogPC90dD48YnI+CiA8YSBuYW1lPSdmYWlsdXJlMjAn
PjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vZWNt
YV8zL1VuaWNvZGUvdWMtMDAyLmpzJz5lY21hXzMvVW5pY29kZS91Yy0wMDIuanM8L2E+IGZhaWxl
ZDwvYj4gPGEgaHJlZj0naHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzYxMycgdGFyZ2V0PSdvdGhlcl93aW5kb3cnPkJ1ZyBOdW1iZXIgMjM2MTM8L2E+PGJyPgog
IFsgPGEgaHJlZj0nI2ZhaWx1cmUxOSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScj
ZmFpbHVyZTIxJz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9m
IFBhZ2U8L2E+IF08YnI+CkBAIC01OTUsNyArNTk1LDcgQEAgVGVzdGNhc2UgdGVybWluYXRlZCB3
aXRoIHNpZ25hbCAwPGJyPgogQ29tcGxldGUgdGVzdGNhc2Ugb3V0cHV0IHdhczo8YnI+CiBMRUFL
OiA0MDMgS0pTOjpOb2RlPGJyPgogLS0+IEpTMV8yIE9iamVjdC50b1N0cmluZygpPGJyPgotWzk1
MzBdIC4vanMxXzIvT2JqZWN0cy90b1N0cmluZy0wMDEuanMgbGluZSAxMDM6IFR5cGVFcnJvcjog
T2JqZWN0IC9eXHsoLiopXH0kLyAocmVzdWx0IG9mIGV4cHJlc3Npb24gL15ceyguKilcfSQvKSBk
b2VzIG5vdCBhbGxvdyBjYWxscy48YnI+CitbMjUwODVdIC4vanMxXzIvT2JqZWN0cy90b1N0cmlu
Zy0wMDEuanMgbGluZSAxMDM6IFR5cGVFcnJvcjogT2JqZWN0IC9eXHsoLiopXH0kLyAocmVzdWx0
IG9mIGV4cHJlc3Npb24gL15ceyguKilcfSQvKSBkb2VzIG5vdCBhbGxvdyBjYWxscy48YnI+CiA8
L3R0Pjxicj4KIDxhIG5hbWU9J2ZhaWx1cmUyMic+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJn
ZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfMi9TdHJpbmcvY29uY2F0LmpzJz5qczFfMi9T
dHJpbmcvY29uY2F0LmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KICBbIDxhIGhyZWY9JyNmYWlsdXJl
MjEnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmUyMyc+TmV4dCBGYWls
dXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgpAQCAt
NjQ1LDcgKzY0NSw3IEBAIFRlc3RjYXNlIHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwgMDxicj4KIENv
bXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgogTEVBSzogMzMzIEtKUzo6Tm9kZTxicj4K
IC0tPiBKU18xLjIgVGhlIHZhcmlhYmxlIHN0YXRtZW50PGJyPgotWzk1NDNdIC4vanMxXzIvZnVu
Y3Rpb24vcmVnZXhwYXJnLTEuanMgbGluZSA4MDogVHlwZUVycm9yOiBPYmplY3QgL2FiYy8gKHJl
c3VsdCBvZiBleHByZXNzaW9uIHgpIGRvZXMgbm90IGFsbG93IGNhbGxzLjxicj4KK1syNTA5OF0g
Li9qczFfMi9mdW5jdGlvbi9yZWdleHBhcmctMS5qcyBsaW5lIDgwOiBUeXBlRXJyb3I6IE9iamVj
dCAvYWJjLyAocmVzdWx0IG9mIGV4cHJlc3Npb24geCkgZG9lcyBub3QgYWxsb3cgY2FsbHMuPGJy
PgogPC90dD48YnI+CiA8YSBuYW1lPSdmYWlsdXJlMjgnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEg
dGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzIvZnVuY3Rpb24vdG9zdHJpbmctMS5q
cyc+anMxXzIvZnVuY3Rpb24vdG9zdHJpbmctMS5qczwvYT4gZmFpbGVkPC9iPiA8YnI+CiAgWyA8
YSBocmVmPScjZmFpbHVyZTI3Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWls
dXJlMjknPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFn
ZTwvYT4gXTxicj4KQEAgLTcxOSw3ICs3MTksNyBAQCBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQg
d2FzOjxicj4KIExFQUs6IDMyOSBLSlM6Ok5vZGU8YnI+CiAtLT4gRXhlY3V0aW5nIHNjcmlwdDog
Y29tcGlsZS5qczxicj4KIC0tPiBBcyBkZXNjcmliZWQgaW4gTmV0c2NhcGUgZG9jICJXaGF0cyBu
ZXcgaW4gSmF2YVNjcmlwdCAxLjIiIFJlZ0V4cDogY29tcGlsZTxicj4KLVs5NTcwXSAuL2pzMV8y
L3JlZ2V4cC9jb21waWxlLmpzIGxpbmUgNDM6IFR5cGVFcnJvcjogVmFsdWUgdW5kZWZpbmVkIChy
ZXN1bHQgb2YgZXhwcmVzc2lvbiByZWd1bGFyRXhwcmVzc2lvbi5jb21waWxlKSBpcyBub3Qgb2Jq
ZWN0Ljxicj4KK1syNTEyNV0gLi9qczFfMi9yZWdleHAvY29tcGlsZS5qcyBsaW5lIDQzOiBUeXBl
RXJyb3I6IFZhbHVlIHVuZGVmaW5lZCAocmVzdWx0IG9mIGV4cHJlc3Npb24gcmVndWxhckV4cHJl
c3Npb24uY29tcGlsZSkgaXMgbm90IG9iamVjdC48YnI+CiA8L3R0Pjxicj4KIDxhIG5hbWU9J2Zh
aWx1cmUzNic+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJl
Zj0nLi9qczFfMi9yZWdleHAvZW5kTGluZS5qcyc+anMxXzIvcmVnZXhwL2VuZExpbmUuanM8L2E+
IGZhaWxlZDwvYj4gPGJyPgogIFsgPGEgaHJlZj0nI2ZhaWx1cmUzNSc+UHJldmlvdXMgRmFpbHVy
ZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTM3Jz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0n
I3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+CkBAIC03MzQsNyArNzM0LDcgQEAgVGVz
dGNhc2UgdGVybWluYXRlZCB3aXRoIHNpZ25hbCAwPGJyPgogQ29tcGxldGUgdGVzdGNhc2Ugb3V0
cHV0IHdhczo8YnI+CiBMRUFLOiAzMjkgS0pTOjpOb2RlPGJyPgogLS0+IEJVR05VTUJFUjogaHR0
cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02MzU5PGJyPgotWzk1ODZd
IC4vanMxXzIvcmVnZXhwL3JlZ3Jlc3MtNjM1OS5qcyBsaW5lIDU2OiBUeXBlRXJyb3I6IE9iamVj
dCAvKGEqKWJcMSsvIChyZXN1bHQgb2YgZXhwcmVzc2lvbiAvKGEqKWJcMSsvKSBkb2VzIG5vdCBh
bGxvdyBjYWxscy48YnI+CitbMjUxNDFdIC4vanMxXzIvcmVnZXhwL3JlZ3Jlc3MtNjM1OS5qcyBs
aW5lIDU2OiBUeXBlRXJyb3I6IE9iamVjdCAvKGEqKWJcMSsvIChyZXN1bHQgb2YgZXhwcmVzc2lv
biAvKGEqKWJcMSsvKSBkb2VzIG5vdCBhbGxvdyBjYWxscy48YnI+CiA8L3R0Pjxicj4KIDxhIG5h
bWU9J2ZhaWx1cmUzOCc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRv
dycgaHJlZj0nLi9qczFfMi9yZWdleHAvcmVncmVzcy05MTQxLmpzJz5qczFfMi9yZWdleHAvcmVn
cmVzcy05MTQxLmpzPC9hPiBmYWlsZWQ8L2I+IDxhIGhyZWY9J2h0dHA6Ly9idWd6aWxsYS5tb3pp
bGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9aHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3df
YnVnLmNnaT9pZD05MTQxJyB0YXJnZXQ9J290aGVyX3dpbmRvdyc+QnVnIE51bWJlciBodHRwOi8v
YnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTkxNDE8L2E+PGJyPgogIFsgPGEg
aHJlZj0nI2ZhaWx1cmUzNyc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVy
ZTM5Jz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8
L2E+IF08YnI+CkBAIC03NDMsNyArNzQzLDcgQEAgVGVzdGNhc2UgdGVybWluYXRlZCB3aXRoIHNp
Z25hbCAwPGJyPgogQ29tcGxldGUgdGVzdGNhc2Ugb3V0cHV0IHdhczo8YnI+CiBMRUFLOiAzMjkg
S0pTOjpOb2RlPGJyPgogLS0+IEJVR05VTUJFUjogaHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MTQxPGJyPgotWzk1ODddIC4vanMxXzIvcmVnZXhwL3JlZ3Jlc3Mt
OTE0MS5qcyBsaW5lIDczOiBUeXBlRXJyb3I6IE9iamVjdCAvKD86eHh8eCkqLyAocmVzdWx0IG9m
IGV4cHJlc3Npb24gLyg/Onh4fHgpKi8pIGRvZXMgbm90IGFsbG93IGNhbGxzLjxicj4KK1syNTE0
Ml0gLi9qczFfMi9yZWdleHAvcmVncmVzcy05MTQxLmpzIGxpbmUgNzM6IFR5cGVFcnJvcjogT2Jq
ZWN0IC8oPzp4eHx4KSovIChyZXN1bHQgb2YgZXhwcmVzc2lvbiAvKD86eHh8eCkqLykgZG9lcyBu
b3QgYWxsb3cgY2FsbHMuPGJyPgogPC90dD48YnI+CiA8YSBuYW1lPSdmYWlsdXJlMzknPjwvYT48
ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzIvcmVn
ZXhwL3NpbXBsZV9mb3JtLmpzJz5qczFfMi9yZWdleHAvc2ltcGxlX2Zvcm0uanM8L2E+IGZhaWxl
ZDwvYj4gPGJyPgogIFsgPGEgaHJlZj0nI2ZhaWx1cmUzOCc+UHJldmlvdXMgRmFpbHVyZTwvYT4g
fCA8YSBocmVmPScjZmFpbHVyZTQwJz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5
X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+CkBAIC03NTMsNyArNzUzLDcgQEAgQ29tcGxldGUg
dGVzdGNhc2Ugb3V0cHV0IHdhczo8YnI+CiBMRUFLOiAzMjkgS0pTOjpOb2RlPGJyPgogLS0+IEV4
ZWN1dGluZyBzY3JpcHQ6IHNpbXBsZV9mb3JtLmpzPGJyPgogLS0+IEFzIGRlc2NyaWJlZCBpbiBO
ZXRzY2FwZSBkb2MgIldoYXRzIG5ldyBpbiBKYXZhU2NyaXB0IDEuMiIgUmVnRXhwOiBzaW1wbGUg
Zm9ybTxicj4KLVs5NTg4XSAuL2pzMV8yL3JlZ2V4cC9zaW1wbGVfZm9ybS5qcyBsaW5lIDQzOiBU
eXBlRXJyb3I6IE9iamVjdCAvWzAtOV17M30vIChyZXN1bHQgb2YgZXhwcmVzc2lvbiAvWzAtOV17
M30vKSBkb2VzIG5vdCBhbGxvdyBjYWxscy48YnI+CitbMjUxNDNdIC4vanMxXzIvcmVnZXhwL3Np
bXBsZV9mb3JtLmpzIGxpbmUgNDM6IFR5cGVFcnJvcjogT2JqZWN0IC9bMC05XXszfS8gKHJlc3Vs
dCBvZiBleHByZXNzaW9uIC9bMC05XXszfS8pIGRvZXMgbm90IGFsbG93IGNhbGxzLjxicj4KIDwv
dHQ+PGJyPgogPGEgbmFtZT0nZmFpbHVyZTQwJz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdl
dD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV8yL3JlZ2V4cC9zcGVjaWFsX2NoYXJhY3RlcnMu
anMnPmpzMV8yL3JlZ2V4cC9zcGVjaWFsX2NoYXJhY3RlcnMuanM8L2E+IGZhaWxlZDwvYj4gPGJy
PgogIFsgPGEgaHJlZj0nI2ZhaWx1cmUzOSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVm
PScjZmFpbHVyZTQxJz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9w
IG9mIFBhZ2U8L2E+IF08YnI+CkBAIC04MDIsNyArODAyLDcgQEAgVGVzdGNhc2UgdGVybWluYXRl
ZCB3aXRoIHNpZ25hbCAwPGJyPgogQ29tcGxldGUgdGVzdGNhc2Ugb3V0cHV0IHdhczo8YnI+CiBM
RUFLOiAzODkgS0pTOjpOb2RlPGJyPgogLS0+IHNjcmlwdC0wMDEgTmF0aXZlU2NyaXB0PGJyPgot
Wzk2MTRdIC4vanMxXzMvU2NyaXB0L3NjcmlwdC0wMDEuanMgbGluZSAxMzM6IFJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTY3JpcHQ8YnI+CitbMjUxNjldIC4vanMxXzMvU2Ny
aXB0L3NjcmlwdC0wMDEuanMgbGluZSAxMzM6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBTY3JpcHQ8YnI+CiA8L3R0Pjxicj4KIDxhIG5hbWU9J2ZhaWx1cmU0Nic+PC9hPjxk
ZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfMy9yZWdy
ZXNzL2Z1bmN0aW9uLTAwMS1uLmpzJz5qczFfMy9yZWdyZXNzL2Z1bmN0aW9uLTAwMS1uLmpzPC9h
PiBmYWlsZWQ8L2I+IDxhIGhyZWY9J2h0dHA6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAyNzgnIHRhcmdldD0nb3RoZXJfd2luZG93Jz5CdWcgTnVtYmVyIDEwMjc4PC9h
Pjxicj4KICBbIDxhIGhyZWY9JyNmYWlsdXJlNDUnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEg
aHJlZj0nI2ZhaWx1cmU0Nyc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3An
PlRvcCBvZiBQYWdlPC9hPiBdPGJyPgpAQCAtODQyLDcgKzg0Miw3IEBAIExFQUs6IDMyMyBLSlM6
Ok5vZGU8YnI+CiBUZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21wbGV0
ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4KIExFQUs6IDQ3MyBLSlM6Ok5vZGU8YnI+Ci1bOTY1
OV0gLi9qczFfNS9FeGNlcHRpb25zL2VycnN0YWNrLTAwMS5qcyBsaW5lIDI0NzogVHlwZUVycm9y
OiBVbmRlZmluZWQgdmFsdWU8YnI+CitbMjUyMTVdIC4vanMxXzUvRXhjZXB0aW9ucy9lcnJzdGFj
ay0wMDEuanMgbGluZSAyNDc6IFR5cGVFcnJvcjogVW5kZWZpbmVkIHZhbHVlPGJyPgogPC90dD48
YnI+CiA8YSBuYW1lPSdmYWlsdXJlNTEnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdv
dGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzUvRXhjZXB0aW9ucy9yZWdyZXNzLTUwNDQ3LmpzJz5q
czFfNS9FeGNlcHRpb25zL3JlZ3Jlc3MtNTA0NDcuanM8L2E+IGZhaWxlZDwvYj4gPGEgaHJlZj0n
aHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD01MDQ0NycgdGFyZ2V0
PSdvdGhlcl93aW5kb3cnPkJ1ZyBOdW1iZXIgNTA0NDc8L2E+PGJyPgogIFsgPGEgaHJlZj0nI2Zh
aWx1cmU1MCc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTUyJz5OZXh0
IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+
CkBAIC04NTIsNyArODUyLDcgQEAgQ29tcGxldGUgdGVzdGNhc2Ugb3V0cHV0IHdhczo8YnI+CiBM
RUFLOiA2NTQgS0pTOjpOb2RlPGJyPgogLS0+IEJVR05VTUJFUjogNTA0NDc8YnI+CiAtLT4gU1RB
VFVTOiBUZXN0IChub24tRUNNQSkgRXJyb3Igb2JqZWN0IHByb3BlcnRpZXMgZmlsZU5hbWUsIGxp
bmVOdW1iZXI8YnI+Ci1bOTY2MF0gLi9qczFfNS9FeGNlcHRpb25zL3JlZ3Jlc3MtNTA0NDcuanMg
bGluZSA2NTogVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWU8YnI+CitbMjUyMTZdIC4vanMxXzUv
RXhjZXB0aW9ucy9yZWdyZXNzLTUwNDQ3LmpzIGxpbmUgNjU6IFR5cGVFcnJvcjogVW5kZWZpbmVk
IHZhbHVlPGJyPgogPC90dD48YnI+CiA8YSBuYW1lPSdmYWlsdXJlNTInPjwvYT48ZGQ+PGI+VGVz
dGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzUvR2V0U2V0L2dldHNl
dC0wMDEuanMnPmpzMV81L0dldFNldC9nZXRzZXQtMDAxLmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4K
ICBbIDxhIGhyZWY9JyNmYWlsdXJlNTEnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0n
I2ZhaWx1cmU1Myc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBv
ZiBQYWdlPC9hPiBdPGJyPgpAQCAtODgxLDcgKzg4MSw3IEBAIExFQUs6IDMyMyBLSlM6Ok5vZGU8
YnI+CiBUZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21wbGV0ZSB0ZXN0
Y2FzZSBvdXRwdXQgd2FzOjxicj4KIExFQUs6IDc2NSBLSlM6Ok5vZGU8YnI+Ci1bOTY3NV0gLi9q
czFfNS9PYmplY3QvcmVncmVzcy05MDU5Ni0wMDEuanMgbGluZSA0ODogVHlwZUVycm9yOiBWYWx1
ZSB1bmRlZmluZWQgKHJlc3VsdCBvZiBleHByZXNzaW9uIG9iai50b1NvdXJjZSkgaXMgbm90IG9i
amVjdC48YnI+CitbMjUyMzFdIC4vanMxXzUvT2JqZWN0L3JlZ3Jlc3MtOTA1OTYtMDAxLmpzIGxp
bmUgNDg6IFR5cGVFcnJvcjogVmFsdWUgdW5kZWZpbmVkIChyZXN1bHQgb2YgZXhwcmVzc2lvbiBv
YmoudG9Tb3VyY2UpIGlzIG5vdCBvYmplY3QuPGJyPgogPC90dD48YnI+CiA8YSBuYW1lPSdmYWls
dXJlNTYnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9
Jy4vanMxXzUvT2JqZWN0L3JlZ3Jlc3MtOTA1OTYtMDAyLmpzJz5qczFfNS9PYmplY3QvcmVncmVz
cy05MDU5Ni0wMDIuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgogIFsgPGEgaHJlZj0nI2ZhaWx1cmU1
NSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTU3Jz5OZXh0IEZhaWx1
cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+CkBAIC04
ODksNyArODg5LDcgQEAgTEVBSzogNzY1IEtKUzo6Tm9kZTxicj4KIFRlc3RjYXNlIHRlcm1pbmF0
ZWQgd2l0aCBzaWduYWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgog
TEVBSzogNzY5IEtKUzo6Tm9kZTxicj4KLVs5Njc2XSAuL2pzMV81L09iamVjdC9yZWdyZXNzLTkw
NTk2LTAwMi5qcyBsaW5lIDQ4OiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTog
dW5ldmFsPGJyPgorWzI1MjMyXSAuL2pzMV81L09iamVjdC9yZWdyZXNzLTkwNTk2LTAwMi5qcyBs
aW5lIDQ4OiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogdW5ldmFsPGJyPgog
PC90dD48YnI+CiA8YSBuYW1lPSdmYWlsdXJlNTcnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFy
Z2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzUvT2JqZWN0L3JlZ3Jlc3MtOTYyODQtMDAx
LmpzJz5qczFfNS9PYmplY3QvcmVncmVzcy05NjI4NC0wMDEuanM8L2E+IGZhaWxlZDwvYj4gPGJy
PgogIFsgPGEgaHJlZj0nI2ZhaWx1cmU1Nic+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVm
PScjZmFpbHVyZTU4Jz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9w
IG9mIFBhZ2U8L2E+IF08YnI+CkBAIC04OTcsNyArODk3LDcgQEAgTEVBSzogNzY5IEtKUzo6Tm9k
ZTxicj4KIFRlc3RjYXNlIHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwgMDxicj4KIENvbXBsZXRlIHRl
c3RjYXNlIG91dHB1dCB3YXM6PGJyPgogTEVBSzogMzk3IEtKUzo6Tm9kZTxicj4KLVs5Njc4XSAu
L2pzMV81L09iamVjdC9yZWdyZXNzLTk2Mjg0LTAwMS5qcyBsaW5lIDQ5OiBUeXBlRXJyb3I6IFZh
bHVlIHVuZGVmaW5lZCAocmVzdWx0IG9mIGV4cHJlc3Npb24gb2JqMS50b1NvdXJjZSkgaXMgbm90
IG9iamVjdC48YnI+CitbMjUyMzRdIC4vanMxXzUvT2JqZWN0L3JlZ3Jlc3MtOTYyODQtMDAxLmpz
IGxpbmUgNDk6IFR5cGVFcnJvcjogVmFsdWUgdW5kZWZpbmVkIChyZXN1bHQgb2YgZXhwcmVzc2lv
biBvYmoxLnRvU291cmNlKSBpcyBub3Qgb2JqZWN0Ljxicj4KIDwvdHQ+PGJyPgogPGEgbmFtZT0n
ZmFpbHVyZTU4Jz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBo
cmVmPScuL2pzMV81L09iamVjdC9yZWdyZXNzLTk2Mjg0LTAwMi5qcyc+anMxXzUvT2JqZWN0L3Jl
Z3Jlc3MtOTYyODQtMDAyLmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KICBbIDxhIGhyZWY9JyNmYWls
dXJlNTcnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU1OSc+TmV4dCBG
YWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgpA
QCAtOTA1LDcgKzkwNSw3IEBAIExFQUs6IDM5NyBLSlM6Ok5vZGU8YnI+CiBUZXN0Y2FzZSB0ZXJt
aW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxi
cj4KIExFQUs6IDM5NyBLSlM6Ok5vZGU8YnI+Ci1bOTY3OV0gLi9qczFfNS9PYmplY3QvcmVncmVz
cy05NjI4NC0wMDIuanMgbGluZSA0OTogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFi
bGU6IHVuZXZhbDxicj4KK1syNTIzNV0gLi9qczFfNS9PYmplY3QvcmVncmVzcy05NjI4NC0wMDIu
anMgbGluZSA0OTogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHVuZXZhbDxi
cj4KIDwvdHQ+PGJyPgogPGEgbmFtZT0nZmFpbHVyZTU5Jz48L2E+PGRkPjxiPlRlc3RjYXNlIDxh
IHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L1JlZ3Jlc3MvcmVncmVzcy00NDAw
OS5qcyc+anMxXzUvUmVncmVzcy9yZWdyZXNzLTQ0MDA5LmpzPC9hPiBmYWlsZWQ8L2I+IDxhIGhy
ZWY9J2h0dHA6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQwMDknIHRh
cmdldD0nb3RoZXJfd2luZG93Jz5CdWcgTnVtYmVyIDQ0MDA5PC9hPjxicj4KICBbIDxhIGhyZWY9
JyNmYWlsdXJlNTgnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU2MCc+
TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBd
PGJyPgpAQCAtOTE1LDcgKzkxNSw3IEBAIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJy
PgogTEVBSzogMzk2IEtKUzo6Tm9kZTxicj4KIC0tPiBCVUdOVU1CRVI6IDQ0MDA5PGJyPgogLS0+
IFNUQVRVUzogVGVzdGluZyB0aGF0IHdlIGRvbid0IGNyYXNoIG9uIG9iai50b1NvdXJjZSgpPGJy
PgotWzk2ODRdIC4vanMxXzUvUmVncmVzcy9yZWdyZXNzLTQ0MDA5LmpzIGxpbmUgNjA6IFR5cGVF
cnJvcjogVmFsdWUgdW5kZWZpbmVkIChyZXN1bHQgb2YgZXhwcmVzc2lvbiBvYmoudG9Tb3VyY2Up
IGlzIG5vdCBvYmplY3QuPGJyPgorWzI1MjQwXSAuL2pzMV81L1JlZ3Jlc3MvcmVncmVzcy00NDAw
OS5qcyBsaW5lIDYwOiBUeXBlRXJyb3I6IFZhbHVlIHVuZGVmaW5lZCAocmVzdWx0IG9mIGV4cHJl
c3Npb24gb2JqLnRvU291cmNlKSBpcyBub3Qgb2JqZWN0Ljxicj4KIDwvdHQ+PGJyPgogPGEgbmFt
ZT0nZmFpbHVyZTYwJz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93
JyBocmVmPScuL2pzMV81L1JlZ3Jlc3MvcmVncmVzcy02ODQ5OC0wMDMuanMnPmpzMV81L1JlZ3Jl
c3MvcmVncmVzcy02ODQ5OC0wMDMuanM8L2E+IGZhaWxlZDwvYj4gPGEgaHJlZj0naHR0cDovL2J1
Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ5OCcgdGFyZ2V0PSdvdGhlcl93
aW5kb3cnPkJ1ZyBOdW1iZXIgNjg0OTg8L2E+PGJyPgogIFsgPGEgaHJlZj0nI2ZhaWx1cmU1OSc+
UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTYxJz5OZXh0IEZhaWx1cmU8
L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+CkBAIC05NTAs
NyArOTUwLDcgQEAgTEVBSzogMzIzIEtKUzo6Tm9kZTxicj4KIFRlc3RjYXNlIHRlcm1pbmF0ZWQg
d2l0aCBzaWduYWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgogTEVB
SzogNDE5IEtKUzo6Tm9kZTxicj4KLVs5NzExXSAuL2pzMV81L1JlZ3Jlc3MvcmVncmVzcy0xMjc1
NTcuanMgbGluZSA3NTogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGNsb25l
PGJyPgorWzI1MjY2XSAuL2pzMV81L1JlZ3Jlc3MvcmVncmVzcy0xMjc1NTcuanMgbGluZSA3NTog
UmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGNsb25lPGJyPgogPC90dD48YnI+
CiA8YSBuYW1lPSdmYWlsdXJlNjQnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhl
cl93aW5kb3cnIGhyZWY9Jy4vanMxXzUvUmVncmVzcy9yZWdyZXNzLTE3MjY5OS5qcyc+anMxXzUv
UmVncmVzcy9yZWdyZXNzLTE3MjY5OS5qczwvYT4gZmFpbGVkPC9iPiA8YnI+CiAgWyA8YSBocmVm
PScjZmFpbHVyZTYzJz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNjUn
Pk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4g
XTxicj4KQEAgLTk1OCw3ICs5NTgsNyBAQCBMRUFLOiA0MTkgS0pTOjpOb2RlPGJyPgogVGVzdGNh
c2UgdGVybWluYXRlZCB3aXRoIHNpZ25hbCAwPGJyPgogQ29tcGxldGUgdGVzdGNhc2Ugb3V0cHV0
IHdhczo8YnI+CiBMRUFLOiAzOTcgS0pTOjpOb2RlPGJyPgotWzk3MjBdIC4vanMxXzUvUmVncmVz
cy9yZWdyZXNzLTE3MjY5OS5qcyBsaW5lIDYxOiBVUklFcnJvcjogVVJJIGVycm9yPGJyPgorWzI1
Mjc1XSAuL2pzMV81L1JlZ3Jlc3MvcmVncmVzcy0xNzI2OTkuanMgbGluZSA2MTogVVJJRXJyb3I6
IFVSSSBlcnJvcjxicj4KIDwvdHQ+PGJyPgogPGEgbmFtZT0nZmFpbHVyZTY1Jz48L2E+PGRkPjxi
PlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L1JlZ3Jlc3Mv
cmVncmVzcy0xNzk1MjQuanMnPmpzMV81L1JlZ3Jlc3MvcmVncmVzcy0xNzk1MjQuanM8L2E+IGZh
aWxlZDwvYj4gPGEgaHJlZj0naHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzk1MjQnIHRhcmdldD0nb3RoZXJfd2luZG93Jz5CdWcgTnVtYmVyIDE3OTUyNDwvYT48
YnI+CiAgWyA8YSBocmVmPScjZmFpbHVyZTY0Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhy
ZWY9JyNmYWlsdXJlNjYnPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5U
b3Agb2YgUGFnZTwvYT4gXTxicj4KQEAgLTEwMzMsNyArMTAzMyw3IEBAIEZhaWx1cmUgbWVzc2Fn
ZXMgd2VyZTo8YnI+CiBUZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21w
bGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4KIExFQUs6IDM5NyBLSlM6Ok5vZGU8YnI+Ci1b
OTc0NV0gLi9qczFfNS9TY29wZS9yZWdyZXNzLTIyMDU4NC5qcyBsaW5lIDU2OiBSZWZlcmVuY2VF
cnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2NyaXB0PGJyPgorWzI1MzAwXSAuL2pzMV81L1Nj
b3BlL3JlZ3Jlc3MtMjIwNTg0LmpzIGxpbmUgNTY6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBTY3JpcHQ8YnI+CiA8L3R0Pjxicj4KIDxhIG5hbWU9J2ZhaWx1cmU2OCc+PC9h
PjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNS9T
Y29wZS9zY29wZS0wMDEuanMnPmpzMV81L1Njb3BlL3Njb3BlLTAwMS5qczwvYT4gZmFpbGVkPC9i
PiA8YSBocmVmPSdodHRwOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTUz
MjY4JyB0YXJnZXQ9J290aGVyX3dpbmRvdyc+QnVnIE51bWJlciA1MzI2ODwvYT48YnI+CiAgWyA8
YSBocmVmPScjZmFpbHVyZTY3Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWls
dXJlNjknPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFn
ZTwvYT4gXTxicj4KQEAgLTEwNDcsMjcgKzEwNDcsOCBAQCBGYWlsdXJlIG1lc3NhZ2VzIHdlcmU6
PGJyPgogLS0+IEZBSUxFRCE6IFtyZXBvcnRlZCBmcm9tIHRlc3QoKV0gRXhwZWN0ZWQgdmFsdWUg
J3VuZGVmaW5lZCcsIEFjdHVhbCB2YWx1ZSAnMSc8YnI+CiAtLT4gRkFJTEVEITogW3JlcG9ydGVk
IGZyb20gdGVzdCgpXSA8YnI+CiA8L3R0Pjxicj4KLTxhIG5hbWU9J2ZhaWx1cmU2OSc+PC9hPjxk
ZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNi9BcnJh
eS9yZWdyZXNzLTMwNDgyOC5qcyc+anMxXzYvQXJyYXkvcmVncmVzcy0zMDQ4MjguanM8L2E+IGZh
aWxlZDwvYj4gPGEgaHJlZj0naHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMDQ4MjgnIHRhcmdldD0nb3RoZXJfd2luZG93Jz5CdWcgTnVtYmVyIDMwNDgyODwvYT48
YnI+Cis8YSBuYW1lPSdmYWlsdXJlNjknPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdv
dGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzYvUmVncmVzcy9yZWdyZXNzLTMwMTU3NC5qcyc+anMx
XzYvUmVncmVzcy9yZWdyZXNzLTMwMTU3NC5qczwvYT4gZmFpbGVkPC9iPiA8YSBocmVmPSdodHRw
Oi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTMwMTU3NCcgdGFyZ2V0PSdv
dGhlcl93aW5kb3cnPkJ1ZyBOdW1iZXIgMzAxNTc0PC9hPjxicj4KICBbIDxhIGhyZWY9JyNmYWls
dXJlNjgnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU3MCc+TmV4dCBG
YWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgot
PHR0Pi0tPiBTVEFUVVM6IEFycmF5IEdlbmVyaWMgTWV0aG9kczxicj4KLUZhaWx1cmUgbWVzc2Fn
ZXMgd2VyZTo8YnI+Ci0tLT4gRkFJTEVEITogQXJyYXkgR2VuZXJpYyBNZXRob2RzOiBsYXN0SW5k
ZXhPZjxicj4KLS0tPiBGQUlMRUQhOiBUeXBlIG1pc21hdGNoLCBleHBlY3RlZCB0eXBlIG51bWJl
ciwgYWN0dWFsIHR5cGUgc3RyaW5nPGJyPgotLS0+IEZBSUxFRCE6IEV4cGVjdGVkIHZhbHVlICc0
JywgQWN0dWFsIHZhbHVlICdUeXBlRXJyb3I6IFVuZGVmaW5lZCB2YWx1ZSc8YnI+Ci0tLT4gRkFJ
TEVEITogPGJyPgotPC90dD48YnI+Ci08YSBuYW1lPSdmYWlsdXJlNzAnPjwvYT48ZGQ+PGI+VGVz
dGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzYvQXJyYXkvcmVncmVz
cy0zMTA0MjUtMDEuanMnPmpzMV82L0FycmF5L3JlZ3Jlc3MtMzEwNDI1LTAxLmpzPC9hPiBmYWls
ZWQ8L2I+IDxhIGhyZWY9J2h0dHA6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzEwNDI1JyB0YXJnZXQ9J290aGVyX3dpbmRvdyc+QnVnIE51bWJlciAzMTA0MjU8L2E+PGJy
PgotIFsgPGEgaHJlZj0nI2ZhaWx1cmU2OSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVm
PScjZmFpbHVyZTcxJz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9w
IG9mIFBhZ2U8L2E+IF08YnI+Ci08dHQ+RXhwZWN0ZWQgZXhpdCBjb2RlIDAsIGdvdCAzPGJyPgot
VGVzdGNhc2UgdGVybWluYXRlZCB3aXRoIHNpZ25hbCAwPGJyPgotQ29tcGxldGUgdGVzdGNhc2Ug
b3V0cHV0IHdhczo8YnI+Ci1MRUFLOiAxMjEyIEtKUzo6Tm9kZTxicj4KLS0tPiBCVUdOVU1CRVI6
IDMxMDQyNTxicj4KLS0tPiBTVEFUVVM6IEFycmF5LmluZGV4T2YvbGFzdEluZGV4T2YgZWRnZSBj
YXNlczxicj4KLVs5NzU2XSAuL2pzMV82L0FycmF5L3JlZ3Jlc3MtMzEwNDI1LTAxLmpzIGxpbmUg
NDc6IFR5cGVFcnJvcjogVmFsdWUgdW5kZWZpbmVkIChyZXN1bHQgb2YgZXhwcmVzc2lvbiBbXS5s
YXN0SW5kZXhPZikgaXMgbm90IG9iamVjdC48YnI+Ci08L3R0Pjxicj4KLTxhIG5hbWU9J2ZhaWx1
cmU3MSc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0n
Li9qczFfNi9SZWdyZXNzL3JlZ3Jlc3MtMzAxNTc0LmpzJz5qczFfNi9SZWdyZXNzL3JlZ3Jlc3Mt
MzAxNTc0LmpzPC9hPiBmYWlsZWQ8L2I+IDxhIGhyZWY9J2h0dHA6Ly9idWd6aWxsYS5tb3ppbGxh
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzAxNTc0JyB0YXJnZXQ9J290aGVyX3dpbmRvdyc+QnVnIE51
bWJlciAzMDE1NzQ8L2E+PGJyPgotIFsgPGEgaHJlZj0nI2ZhaWx1cmU3MCc+UHJldmlvdXMgRmFp
bHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTcyJz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJl
Zj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+CiA8dHQ+LS0+IFNUQVRVUzogRTRY
IHNob3VsZCBiZSBlbmFibGVkIGV2ZW4gd2hlbiBlNHg9MSBub3Qgc3BlY2lmaWVkPGJyPgogRmFp
bHVyZSBtZXNzYWdlcyB3ZXJlOjxicj4KIC0tPiBGQUlMRUQhOiBFNFggc2hvdWxkIGJlIGVuYWJs
ZWQgZXZlbiB3aGVuIGU0eD0xIG5vdCBzcGVjaWZpZWQ6IFhNTCgpPGJyPgpAQCAtMTA3NywyMiAr
MTA1OCwyMiBAQCBGYWlsdXJlIG1lc3NhZ2VzIHdlcmU6PGJyPgogLS0+IEZBSUxFRCE6IEV4cGVj
dGVkIHZhbHVlICdObyBlcnJvcicsIEFjdHVhbCB2YWx1ZSAnZXJyb3I6IFJlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBYTUwnPGJyPgogLS0+IEZBSUxFRCE6IDxicj4KIDwvdHQ+
PGJyPgotPGEgbmFtZT0nZmFpbHVyZTcyJz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0n
b3RoZXJfd2luZG93JyBocmVmPScuL2pzMV82L1JlZ3Jlc3MvcmVncmVzcy0zMDkyNDIuanMnPmpz
MV82L1JlZ3Jlc3MvcmVncmVzcy0zMDkyNDIuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgotIFsgPGEg
aHJlZj0nI2ZhaWx1cmU3MSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVy
ZTczJz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8
L2E+IF08YnI+Cis8YSBuYW1lPSdmYWlsdXJlNzAnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFy
Z2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzYvUmVncmVzcy9yZWdyZXNzLTMwOTI0Mi5q
cyc+anMxXzYvUmVncmVzcy9yZWdyZXNzLTMwOTI0Mi5qczwvYT4gZmFpbGVkPC9iPiA8YnI+Cisg
WyA8YSBocmVmPScjZmFpbHVyZTY5Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNm
YWlsdXJlNzEnPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2Yg
UGFnZTwvYT4gXTxicj4KIDx0dD5FeHBlY3RlZCBleGl0IGNvZGUgMCwgZ290IDM8YnI+CiBUZXN0
Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRw
dXQgd2FzOjxicj4KIExFQUs6IDEyMTIgS0pTOjpOb2RlPGJyPgogPC90dD48YnI+Ci08YSBuYW1l
PSdmYWlsdXJlNzMnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cn
IGhyZWY9Jy4vanMxXzYvUmVncmVzcy9yZWdyZXNzLTMxNDg4Ny5qcyc+anMxXzYvUmVncmVzcy9y
ZWdyZXNzLTMxNDg4Ny5qczwvYT4gZmFpbGVkPC9iPiA8YnI+Ci0gWyA8YSBocmVmPScjZmFpbHVy
ZTcyJz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNzQnPk5leHQgRmFp
bHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KKzxh
IG5hbWU9J2ZhaWx1cmU3MSc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dp
bmRvdycgaHJlZj0nLi9qczFfNi9SZWdyZXNzL3JlZ3Jlc3MtMzE0ODg3LmpzJz5qczFfNi9SZWdy
ZXNzL3JlZ3Jlc3MtMzE0ODg3LmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KKyBbIDxhIGhyZWY9JyNm
YWlsdXJlNzAnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU3Mic+TmV4
dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJy
PgogPHR0PkV4cGVjdGVkIGV4aXQgY29kZSAwLCBnb3QgMzxicj4KIFRlc3RjYXNlIHRlcm1pbmF0
ZWQgd2l0aCBzaWduYWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgog
TEVBSzogMTIxMiBLSlM6Ok5vZGU8YnI+CiA8L3R0Pjxicj4KLTxhIG5hbWU9J2ZhaWx1cmU3NCc+
PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFf
Ni9TdHJpbmcvcmVncmVzcy0zMDY1OTEuanMnPmpzMV82L1N0cmluZy9yZWdyZXNzLTMwNjU5MS5q
czwvYT4gZmFpbGVkPC9iPiA8YSBocmVmPSdodHRwOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hv
d19idWcuY2dpP2lkPTMwNjU5MScgdGFyZ2V0PSdvdGhlcl93aW5kb3cnPkJ1ZyBOdW1iZXIgMzA2
NTkxPC9hPjxicj4KLSBbIDxhIGhyZWY9JyNmYWlsdXJlNzMnPlByZXZpb3VzIEZhaWx1cmU8L2E+
IHwgPGEgaHJlZj0nI2ZhaWx1cmU3NSc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBw
eV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgorPGEgbmFtZT0nZmFpbHVyZTcyJz48L2E+PGRk
PjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV82L1N0cmlu
Zy9yZWdyZXNzLTMwNjU5MS5qcyc+anMxXzYvU3RyaW5nL3JlZ3Jlc3MtMzA2NTkxLmpzPC9hPiBm
YWlsZWQ8L2I+IDxhIGhyZWY9J2h0dHA6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzA2NTkxJyB0YXJnZXQ9J290aGVyX3dpbmRvdyc+QnVnIE51bWJlciAzMDY1OTE8L2E+
PGJyPgorIFsgPGEgaHJlZj0nI2ZhaWx1cmU3MSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBo
cmVmPScjZmFpbHVyZTczJz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+
VG9wIG9mIFBhZ2U8L2E+IF08YnI+CiA8dHQ+RXhwZWN0ZWQgZXhpdCBjb2RlIDAsIGdvdCAzPGJy
PgogVGVzdGNhc2UgdGVybWluYXRlZCB3aXRoIHNpZ25hbCAwPGJyPgogQ29tcGxldGUgdGVzdGNh
c2Ugb3V0cHV0IHdhczo8YnI+CkBAIC0xMTAwLDcgKzEwODEsNyBAQCBMRUFLOiAxMjEyIEtKUzo6
Tm9kZTxicj4KIC0tPiBCVUdOVU1CRVI6IDMwNjU5MTxicj4KIC0tPiBTVEFUVVM6IFN0cmluZyBz
dGF0aWMgbWV0aG9kczxicj4KIC0tPiBTVEFUVVM6IFNlZSBodHRwczovL2J1Z3ppbGxhLm1vemls
bGEub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDQ4Mjg8YnI+Ci1bOTc2N10gLi9qczFfNi9TdHJpbmcv
cmVncmVzcy0zMDY1OTEuanMgbGluZSA0ODogVHlwZUVycm9yOiBWYWx1ZSB1bmRlZmluZWQgKHJl
c3VsdCBvZiBleHByZXNzaW9uIFN0cmluZy5zcGxpdCkgaXMgbm90IG9iamVjdC48YnI+CitbMjUz
MjJdIC4vanMxXzYvU3RyaW5nL3JlZ3Jlc3MtMzA2NTkxLmpzIGxpbmUgNDg6IFR5cGVFcnJvcjog
VmFsdWUgdW5kZWZpbmVkIChyZXN1bHQgb2YgZXhwcmVzc2lvbiBTdHJpbmcuc3BsaXQpIGlzIG5v
dCBvYmplY3QuPGJyPgogPC90dD48YnI+CiA8L2RsPgogWyA8YSBocmVmPScjdGlwcHlfdG9wJz5U
b3Agb2YgUGFnZTwvYT4gfCA8YSBocmVmPScjZmFpbF9kZXRhaWwnPlRvcCBvZiBGYWlsdXJlczwv
YT4gXTxicj4KQEAgLTExMDgsOSArMTA4OSw5IEBAIExFQUs6IDEyMTIgS0pTOjpOb2RlPGJyPgog
PHByZT4KIDxhIG5hbWU9J3JldGVzdF9saXN0Jz48L2E+CiA8aDI+UmV0ZXN0IExpc3Q8L2gyPjxi
cj4KLSMgUmV0ZXN0IExpc3QsIGtqcywgZ2VuZXJhdGVkIFNhdCBKdWwgMjkgMTY6MTE6MDQgMjAw
Ni4KKyMgUmV0ZXN0IExpc3QsIGtqcywgZ2VuZXJhdGVkIFRodSBBdWcgMTcgMTI6MDU6NTAgMjAw
Ni4KICMgT3JpZ2luYWwgdGVzdCBiYXNlIHdhczogQWxsIHRlc3RzLgotIyAxMTI3IG9mIDExMzUg
dGVzdChzKSB3ZXJlIGNvbXBsZXRlZCwgNzQgZmFpbHVyZXMgcmVwb3J0ZWQuCisjIDExMjcgb2Yg
MTEzNSB0ZXN0KHMpIHdlcmUgY29tcGxldGVkLCA3MiBmYWlsdXJlcyByZXBvcnRlZC4KIGVjbWEv
R2xvYmFsT2JqZWN0LzE1LjEuMi4yLTIuanMKIGVjbWEvTGV4aWNhbENvbnZlbnRpb25zLzcuNy4z
LTEuanMKIGVjbWEvVHlwZUNvbnZlcnNpb24vOS4zLjEtMy5qcwpAQCAtMTE3OSw4ICsxMTYwLDYg
QEAganMxXzUvUmVncmVzcy9yZWdyZXNzLTE3OTUyNC5qcwoganMxXzUvU2NvcGUvcmVncmVzcy0x
ODU0ODUuanMKIGpzMV81L1Njb3BlL3JlZ3Jlc3MtMjIwNTg0LmpzCiBqczFfNS9TY29wZS9zY29w
ZS0wMDEuanMKLWpzMV82L0FycmF5L3JlZ3Jlc3MtMzA0ODI4LmpzCi1qczFfNi9BcnJheS9yZWdy
ZXNzLTMxMDQyNS0wMS5qcwoganMxXzYvUmVncmVzcy9yZWdyZXNzLTMwMTU3NC5qcwoganMxXzYv
UmVncmVzcy9yZWdyZXNzLTMwOTI0Mi5qcwoganMxXzYvUmVncmVzcy9yZWdyZXNzLTMxNDg4Ny5q
cwo=
</data>
<flag name="review"
          id="3142"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10132</attachid>
            <date>2006-08-18 12:54:00 -0700</date>
            <delta_ts>2006-08-18 15:09:45 -0700</delta_ts>
            <desc>lastIndexOf javascript patch REVISION</desc>
            <filename>lastIndexOfPatch.txt</filename>
            <type>text/plain</type>
            <size>31734</size>
            <attacher name="Vladimir Olexa (vladinecko)">vladimir.olexa</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTM2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDYtMDgtMTcgIFZsYWRpbWly
IE9sZXhhICA8dmxhZGltaXIub2xleGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoga2pzL2FycmF5X29iamVjdC5jcHA6CisgICAg
ICAgIChBcnJheVByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24pOiBmaXhlZCBsb2dpYyBlcnJvcnMg
aW4gaWYgc3RhdGVtZW50cworICAgICAgICAqIGtqcy9hcnJheV9vYmplY3QuaDoKKyAgICAgICAg
KEtKUzo6QXJyYXlQcm90b0Z1bmM6Oik6IGFkZGVkIExhc3RJbmRleE9mIHRvIGVudW0gc3RydWN0
CisKKz09PT09PT0KIDIwMDYtMDgtMTcgIE5pa29sYXMgWmltbWVybWFubiAgPHppbW1lcm1hbm5A
a2RlLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljLiBMYW5kZWQgYnkgcndsYnVpcy4K
QEAgLTE1LDYgKzI1LDcgQEAKICAgICAgICAgKiBiaW5kaW5ncy9ucGFwaS5oOgogICAgICAgICBG
aXggaWZkZWYuCiAKKz4+Pj4+Pj4gLnIxNTkzNgogMjAwNi0wOC0xNSAgU3RldmUgRmFsa2VuYnVy
ZyAgPHNmYWxrZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IG1qcy4KSW5kZXg6
IEphdmFTY3JpcHRDb3JlL2tqcy9hcnJheV9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL2tqcy9hcnJheV9vYmplY3QuY3BwCShyZXZpc2lvbiAxNTgzNykKKysrIEphdmFT
Y3JpcHRDb3JlL2tqcy9hcnJheV9vYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDMsNiAr
NDAzLDcgQEAgY29uc3QgQ2xhc3NJbmZvIEFycmF5UHJvdG90eXBlOjppbmZvID0gewogICBmb3JF
YWNoICAgICAgICBBcnJheVByb3RvRnVuYzo6Rm9yRWFjaCAgICAgICAgRG9udEVudW18RnVuY3Rp
b24gMQogICBzb21lICAgICAgICAgICBBcnJheVByb3RvRnVuYzo6U29tZSAgICAgICAgICAgRG9u
dEVudW18RnVuY3Rpb24gMQogICBpbmRleE9mICAgICAgICBBcnJheVByb3RvRnVuYzo6SW5kZXhP
ZiAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQorICBsYXN0SW5kZXhPZiAgICBBcnJheVByb3Rv
RnVuYzo6TGFzdEluZGV4T2YgICAgRG9udEVudW18RnVuY3Rpb24gMQogICBmaWx0ZXIgICAgICAg
ICBBcnJheVByb3RvRnVuYzo6RmlsdGVyICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQogICBt
YXAgICAgICAgICAgICBBcnJheVByb3RvRnVuYzo6TWFwICAgICAgICAgICAgRG9udEVudW18RnVu
Y3Rpb24gMQogQGVuZApAQCAtODkyLDcgKzg5MywzMiBAQCBKU1ZhbHVlICpBcnJheVByb3RvRnVu
Yzo6Y2FsbEFzRnVuY3Rpb24oCiAKICAgICByZXR1cm4ganNOdW1iZXIoLTEpOwogICB9CisgIGNh
c2UgTGFzdEluZGV4T2Y6IHsKKyAgICAgICAvLyBKYXZhU2NyaXB0IDEuNiBFeHRlbnNpb24gYnkg
TW96aWxsYQorICAgICAgLy8gRG9jdW1lbnRhdGlvbjogaHR0cDovL2RldmVsb3Blci5tb3ppbGxh
Lm9yZy9lbi9kb2NzL0NvcmVfSmF2YVNjcmlwdF8xLjVfUmVmZXJlbmNlOkdsb2JhbF9PYmplY3Rz
OkFycmF5Omxhc3RJbmRleE9mIAogCisgICAgaW50IGluZGV4ID0gbGVuZ3RoIC0gMTsKKyAgICBk
b3VibGUgZCA9IGFyZ3NbMV0tPnRvSW50ZWdlcihleGVjKTsKKworICAgIGlmIChkIDwgMCkgewor
ICAgICAgICBkICs9IGxlbmd0aDsKKyAgICAgICAgaWYgKGQgPCAwKSAKKyAgICAgICAgICAgIHJl
dHVybiBqc051bWJlcigtMSk7CisgICAgfQorICAgIGlmIChkIDwgbGVuZ3RoKQorICAgICAgICBp
bmRleCA9IHN0YXRpY19jYXN0PGludD4oZCk7CisgICAgICAgICAgCisgICAgSlNWYWx1ZSogc2Vh
cmNoRWxlbWVudCA9IGFyZ3NbMF07CisgICAgZm9yICg7IGluZGV4ID49IDA7IC0taW5kZXgpIHsK
KyAgICAgICAgSlNWYWx1ZSogZSA9IGdldFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGluZGV4KTsK
KyAgICAgICAgaWYgKCFlKQorICAgICAgICAgICAgZSA9IGpzVW5kZWZpbmVkKCk7CisgICAgICAg
IGlmIChzdHJpY3RFcXVhbChleGVjLCBzZWFyY2hFbGVtZW50LCBlKSkKKyAgICAgICAgICAgIHJl
dHVybiBqc051bWJlcihpbmRleCk7CisgICAgfQorICAgICAgICAgIAorICAgIHJldHVybiBqc051
bWJlcigtMSk7Cit9CiAgIGRlZmF1bHQ6CiAgICAgYXNzZXJ0KDApOwogICAgIHJlc3VsdCA9IDA7
CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvYXJyYXlfb2JqZWN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SmF2YVNjcmlwdENvcmUva2pzL2FycmF5X29iamVjdC5oCShyZXZpc2lvbiAxNTgzNykKKysrIEph
dmFTY3JpcHRDb3JlL2tqcy9hcnJheV9vYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyAr
NDQsNyBAQCBuYW1lc3BhY2UgS0pTIHsKIAogICAgIGVudW0geyBUb1N0cmluZywgVG9Mb2NhbGVT
dHJpbmcsIENvbmNhdCwgSm9pbiwgUG9wLCBQdXNoLAogICAgICAgICAgIFJldmVyc2UsIFNoaWZ0
LCBTbGljZSwgU29ydCwgU3BsaWNlLCBVblNoaWZ0LCAKLSAgICAgICAgICBFdmVyeSwgRm9yRWFj
aCwgU29tZSwgSW5kZXhPZiwgRmlsdGVyLCBNYXAgfTsKKyAgICAgICAgICBFdmVyeSwgRm9yRWFj
aCwgU29tZSwgSW5kZXhPZiwgRmlsdGVyLCBNYXAsIExhc3RJbmRleE9mIH07CiAgIHByaXZhdGU6
CiAgICAgaW50IGlkOwogICB9OwpJbmRleDogSmF2YVNjcmlwdENvcmUvdGVzdHMvbW96aWxsYS9l
eHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3Rlc3RzL21vemlsbGEv
ZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTU4MzcpCisrKyBKYXZhU2NyaXB0Q29yZS90ZXN0cy9t
b3ppbGxhL2V4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsMTEgKzcsMTEgQEAKIDxw
IGNsYXNzPSdyZXN1bHRzX3N1bW1hcnknPgogVGVzdCBMaXN0OiBBbGwgdGVzdHM8YnI+CiBTa2lw
IExpc3Q6IChub25lKTxicj4KLTExMzUgdGVzdChzKSBzZWxlY3RlZCwgMTEyNyB0ZXN0KHMpIGNv
bXBsZXRlZCwgNzQgZmFpbHVyZXMgcmVwb3J0ZWQgKDYuNTYlIGZhaWxlZCk8YnI+Ci1FbmdpbmUg
Y29tbWFuZCBsaW5lOiAvVXNlcnMvZGFyaW4vc3ltcm9vdHMvRGVidWcvdGVzdGtqcyA8YnI+Ci1P
UyB0eXBlOiBEYXJ3aW4gZGFyaW4tYWRsZXJzLXBvd2VyLW1hYy1nNC5sb2NhbCA4LjcuMCBEYXJ3
aW4gS2VybmVsIFZlcnNpb24gOC43LjA6IEZyaSBNYXkgMjYgMTU6MjA6NTMgUERUIDIwMDY7IHJv
b3Q6eG51LTc5Mi42Ljc2Lm9ian4xL1JFTEVBU0VfUFBDIFBvd2VyIE1hY2ludG9zaCBwb3dlcnBj
PGJyPgotVGVzdGNhc2UgZXhlY3V0aW9uIHRpbWU6IDggbWludXRlcywgMzcgc2Vjb25kcy48YnI+
Ci1UZXN0cyBjb21wbGV0ZWQgb24gU2F0IEp1bCAyOSAxNjoxMTowNCAyMDA2Ljxicj48YnI+Cisx
MTM1IHRlc3Qocykgc2VsZWN0ZWQsIDExMjcgdGVzdChzKSBjb21wbGV0ZWQsIDcyIGZhaWx1cmVz
IHJlcG9ydGVkICg2LjM4JSBmYWlsZWQpPGJyPgorRW5naW5lIGNvbW1hbmQgbGluZTogL1VzZXJz
L3ZsYWRvL1dlYktpdC9XZWJLaXRCdWlsZC9EZWJ1Zy90ZXN0a2pzIDxicj4KK09TIHR5cGU6IERh
cndpbiBYUC1TQ0subG9jYWwgOC43LjAgRGFyd2luIEtlcm5lbCBWZXJzaW9uIDguNy4wOiBGcmkg
TWF5IDI2IDE1OjIwOjUzIFBEVCAyMDA2OyByb290OnhudS03OTIuNi43Ni5vYmp+MS9SRUxFQVNF
X1BQQyBQb3dlciBNYWNpbnRvc2ggcG93ZXJwYzxicj4KK1Rlc3RjYXNlIGV4ZWN1dGlvbiB0aW1l
OiA2IG1pbnV0ZXMsIDE5IHNlY29uZHMuPGJyPgorVGVzdHMgY29tcGxldGVkIG9uIEZyaSBBdWcg
MTggMTQ6MzI6MDMgMjAwNi48YnI+PGJyPgogWyA8YSBocmVmPScjZmFpbF9kZXRhaWwnPkZhaWx1
cmUgRGV0YWlsczwvYT4gfCA8YSBocmVmPScjcmV0ZXN0X2xpc3QnPlJldGVzdCBMaXN0PC9hPiB8
IDxhIGhyZWY9J21lbnUuaHRtbCc+VGVzdCBTZWxlY3Rpb24gUGFnZTwvYT4gXTxicj4KIDxocj4K
IDxhIG5hbWU9J2ZhaWxfZGV0YWlsJz48L2E+CkBAIC03Myw3ICs3Myw3IEBAIENvbXBsZXRlIHRl
c3RjYXNlIG91dHB1dCB3YXM6PGJyPgogTEVBSzogNjE4IEtKUzo6Tm9kZTxicj4KIC0tPiBSZWdF
eHAvaGV4LTAwMS5qcyBKUyByZWdleHAgYW5jaG9yaW5nIG9uIGVtcHR5IG1hdGNoIGJ1Zzxicj4K
IC0tPiBCVUdOVU1CRVI6IGh0dHA6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE1Nzxicj4KLVs5MzUyXSAuL2VjbWFfMi9SZWdFeHAvcmVncmVzcy0wMDEuanMgbGluZSAx
ODogVHlwZUVycm9yOiBPYmplY3QgL2F8fGIvIChyZXN1bHQgb2YgZXhwcmVzc2lvbiAvYXx8Yi8p
IGRvZXMgbm90IGFsbG93IGNhbGxzLjxicj4KK1syOTc0N10gLi9lY21hXzIvUmVnRXhwL3JlZ3Jl
c3MtMDAxLmpzIGxpbmUgMTg6IFR5cGVFcnJvcjogT2JqZWN0IC9hfHxiLyAocmVzdWx0IG9mIGV4
cHJlc3Npb24gL2F8fGIvKSBkb2VzIG5vdCBhbGxvdyBjYWxscy48YnI+CiA8L3R0Pjxicj4KIDxh
IG5hbWU9J2ZhaWx1cmU2Jz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2lu
ZG93JyBocmVmPScuL2VjbWFfMi9SZWdFeHAvdW5pY29kZS0wMDEuanMnPmVjbWFfMi9SZWdFeHAv
dW5pY29kZS0wMDEuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgogIFsgPGEgaHJlZj0nI2ZhaWx1cmU1
Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNyc+TmV4dCBGYWlsdXJl
PC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgpAQCAtODIs
MjYgKzgyLDI2IEBAIFRlc3RjYXNlIHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwgMDxicj4KIENvbXBs
ZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgogTEVBSzogNjcxIEtKUzo6Tm9kZTxicj4KIC0t
PiBSZWdFeHAvdW5pY29kZS0wMDEuanMgbmV3IFJlZ0V4cCggcGF0dGVybiwgZmxhZ3MgKTxicj4K
LVs5MzUzXSAuL2VjbWFfMi9SZWdFeHAvdW5pY29kZS0wMDEuanMgbGluZSAzMzogVHlwZUVycm9y
OiBOdWxsIHZhbHVlPGJyPgorWzI5NzQ4XSAuL2VjbWFfMi9SZWdFeHAvdW5pY29kZS0wMDEuanMg
bGluZSAzMzogVHlwZUVycm9yOiBOdWxsIHZhbHVlPGJyPgogPC90dD48YnI+CiA8YSBuYW1lPSdm
YWlsdXJlNyc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJl
Zj0nLi9lY21hXzMvRGF0ZS8xNS45LjUuNy5qcyc+ZWNtYV8zL0RhdGUvMTUuOS41LjcuanM8L2E+
IGZhaWxlZDwvYj4gPGJyPgogIFsgPGEgaHJlZj0nI2ZhaWx1cmU2Jz5QcmV2aW91cyBGYWlsdXJl
PC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlOCc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0
aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgogPHR0Pjxicj4KIEZhaWx1cmUgbWVzc2Fn
ZXMgd2VyZTo8YnI+Ci0tLT4gKFdlZCBEZWMgMzEgMTk2OSAxNjowMDowMCBHTVQtMDgwMCAoUFNU
KSkudG9Mb2NhbGVUaW1lU3RyaW5nKCkgPSA0OjAwOjAwIFBNIFBTVCBGQUlMRUQhIGV4cGVjdGVk
OiAxNjowMDowMDxicj4KLS0tPiAoV2VkIERlYyAzMSAxOTY5IDA4OjAwOjAwIEdNVC0wODAwIChQ
U1QpKS50b0xvY2FsZVRpbWVTdHJpbmcoKSA9IDg6MDA6MDAgQU0gUFNUIEZBSUxFRCEgZXhwZWN0
ZWQ6IDA4OjAwOjAwPGJyPgotLS0+IChTdW4gRGVjIDMxIDE4OTkgMTY6MDA6MDAgR01ULTA4MDAg
KFBTVCkpLnRvTG9jYWxlVGltZVN0cmluZygpID0gNTowMDowMCBQTSBQRFQgRkFJTEVEISBleHBl
Y3RlZDogMTY6MDA6MDA8YnI+Ci0tLT4gKE1vbiBKYW4gMDEgMTkwMCAwMDowMDowMCBHTVQtMDgw
MCAoUFNUKSkudG9Mb2NhbGVUaW1lU3RyaW5nKCkgPSAxOjAwOjAwIEFNIFBEVCBGQUlMRUQhIGV4
cGVjdGVkOiAwMDowMDowMDxicj4KLS0tPiAoRnJpIERlYyAzMSAxOTk5IDE2OjAwOjAwIEdNVC0w
ODAwIChQU1QpKS50b0xvY2FsZVRpbWVTdHJpbmcoKSA9IDQ6MDA6MDAgUE0gUFNUIEZBSUxFRCEg
ZXhwZWN0ZWQ6IDE2OjAwOjAwPGJyPgotLS0+IChTYXQgSmFuIDAxIDIwMDAgMDA6MDA6MDAgR01U
LTA4MDAgKFBTVCkpLnRvTG9jYWxlVGltZVN0cmluZygpID0gMTI6MDA6MDAgQU0gUFNUIEZBSUxF
RCEgZXhwZWN0ZWQ6IDAwOjAwOjAwPGJyPgotLS0+IChNb24gRmViIDI4IDIwMDAgMTY6MDA6MDAg
R01ULTA4MDAgKFBTVCkpLnRvTG9jYWxlVGltZVN0cmluZygpID0gNDowMDowMCBQTSBQU1QgRkFJ
TEVEISBleHBlY3RlZDogMTY6MDA6MDA8YnI+Ci0tLT4gKE1vbiBGZWIgMjggMjAwMCAxNTo1OTo1
OSBHTVQtMDgwMCAoUFNUKSkudG9Mb2NhbGVUaW1lU3RyaW5nKCkgPSAzOjU5OjU5IFBNIFBTVCBG
QUlMRUQhIGV4cGVjdGVkOiAxNTo1OTo1OTxicj4KLS0tPiAoVHVlIEZlYiAyOSAyMDAwIDAwOjAw
OjAwIEdNVC0wODAwIChQU1QpKS50b0xvY2FsZVRpbWVTdHJpbmcoKSA9IDEyOjAwOjAwIEFNIFBT
VCBGQUlMRUQhIGV4cGVjdGVkOiAwMDowMDowMDxicj4KLS0tPiAoU2F0IEp1bCAyOSAyMDA2IDE2
OjA5OjMzIEdNVC0wNzAwIChQRFQpKS50b0xvY2FsZVRpbWVTdHJpbmcoKSA9IDQ6MDk6MzMgUE0g
UERUIEZBSUxFRCEgZXhwZWN0ZWQ6IDE2OjA5OjMzPGJyPgotLS0+IChTdW4gSnVsIDMwIDIwMDYg
MDA6MDk6MzMgR01ULTA3MDAgKFBEVCkpLnRvTG9jYWxlVGltZVN0cmluZygpID0gMTI6MDk6MzMg
QU0gUERUIEZBSUxFRCEgZXhwZWN0ZWQ6IDAwOjA5OjMzPGJyPgotLS0+IChGcmkgRGVjIDMxIDIw
MDQgMTY6MDA6MDAgR01ULTA4MDAgKFBTVCkpLnRvTG9jYWxlVGltZVN0cmluZygpID0gNDowMDow
MCBQTSBQU1QgRkFJTEVEISBleHBlY3RlZDogMTY6MDA6MDA8YnI+Ci0tLT4gKEZyaSBEZWMgMzEg
MjAwNCAxNTo1OTo1OSBHTVQtMDgwMCAoUFNUKSkudG9Mb2NhbGVUaW1lU3RyaW5nKCkgPSAzOjU5
OjU5IFBNIFBTVCBGQUlMRUQhIGV4cGVjdGVkOiAxNTo1OTo1OTxicj4KLS0tPiAoU2F0IEphbiAw
MSAyMDA1IDAwOjAwOjAwIEdNVC0wODAwIChQU1QpKS50b0xvY2FsZVRpbWVTdHJpbmcoKSA9IDEy
OjAwOjAwIEFNIFBTVCBGQUlMRUQhIGV4cGVjdGVkOiAwMDowMDowMDxicj4KKy0tPiAoV2VkIERl
YyAzMSAxOTY5IDE5OjAwOjAwIEdNVC0wNTAwIChFU1QpKS50b0xvY2FsZVRpbWVTdHJpbmcoKSA9
IDc6MDA6MDAgUE0gRVNUIEZBSUxFRCEgZXhwZWN0ZWQ6IDE5OjAwOjAwPGJyPgorLS0+IChXZWQg
RGVjIDMxIDE5NjkgMTQ6MDA6MDAgR01ULTA1MDAgKEVTVCkpLnRvTG9jYWxlVGltZVN0cmluZygp
ID0gMjowMDowMCBQTSBFU1QgRkFJTEVEISBleHBlY3RlZDogMTQ6MDA6MDA8YnI+CistLT4gKFN1
biBEZWMgMzEgMTg5OSAxOTowMDowMCBHTVQtMDUwMCAoRVNUKSkudG9Mb2NhbGVUaW1lU3RyaW5n
KCkgPSA4OjAwOjAwIFBNIEVEVCBGQUlMRUQhIGV4cGVjdGVkOiAxOTowMDowMDxicj4KKy0tPiAo
TW9uIEphbiAwMSAxOTAwIDAwOjAwOjAwIEdNVC0wNTAwIChFU1QpKS50b0xvY2FsZVRpbWVTdHJp
bmcoKSA9IDE6MDA6MDAgQU0gRURUIEZBSUxFRCEgZXhwZWN0ZWQ6IDAwOjAwOjAwPGJyPgorLS0+
IChGcmkgRGVjIDMxIDE5OTkgMTk6MDA6MDAgR01ULTA1MDAgKEVTVCkpLnRvTG9jYWxlVGltZVN0
cmluZygpID0gNzowMDowMCBQTSBFU1QgRkFJTEVEISBleHBlY3RlZDogMTk6MDA6MDA8YnI+Cist
LT4gKFNhdCBKYW4gMDEgMjAwMCAwMDowMDowMCBHTVQtMDUwMCAoRVNUKSkudG9Mb2NhbGVUaW1l
U3RyaW5nKCkgPSAxMjowMDowMCBBTSBFU1QgRkFJTEVEISBleHBlY3RlZDogMDA6MDA6MDA8YnI+
CistLT4gKE1vbiBGZWIgMjggMjAwMCAxOTowMDowMCBHTVQtMDUwMCAoRVNUKSkudG9Mb2NhbGVU
aW1lU3RyaW5nKCkgPSA3OjAwOjAwIFBNIEVTVCBGQUlMRUQhIGV4cGVjdGVkOiAxOTowMDowMDxi
cj4KKy0tPiAoTW9uIEZlYiAyOCAyMDAwIDE4OjU5OjU5IEdNVC0wNTAwIChFU1QpKS50b0xvY2Fs
ZVRpbWVTdHJpbmcoKSA9IDY6NTk6NTkgUE0gRVNUIEZBSUxFRCEgZXhwZWN0ZWQ6IDE4OjU5OjU5
PGJyPgorLS0+IChUdWUgRmViIDI5IDIwMDAgMDA6MDA6MDAgR01ULTA1MDAgKEVTVCkpLnRvTG9j
YWxlVGltZVN0cmluZygpID0gMTI6MDA6MDAgQU0gRVNUIEZBSUxFRCEgZXhwZWN0ZWQ6IDAwOjAw
OjAwPGJyPgorLS0+IChGcmkgQXVnIDE4IDIwMDYgMTQ6MzA6NTEgR01ULTA0MDAgKEVEVCkpLnRv
TG9jYWxlVGltZVN0cmluZygpID0gMjozMDo1MSBQTSBFRFQgRkFJTEVEISBleHBlY3RlZDogMTQ6
MzA6NTE8YnI+CistLT4gKEZyaSBBdWcgMTggMjAwNiAxOTozMDo1MSBHTVQtMDQwMCAoRURUKSku
dG9Mb2NhbGVUaW1lU3RyaW5nKCkgPSA3OjMwOjUxIFBNIEVEVCBGQUlMRUQhIGV4cGVjdGVkOiAx
OTozMDo1MTxicj4KKy0tPiAoRnJpIERlYyAzMSAyMDA0IDE5OjAwOjAwIEdNVC0wNTAwIChFU1Qp
KS50b0xvY2FsZVRpbWVTdHJpbmcoKSA9IDc6MDA6MDAgUE0gRVNUIEZBSUxFRCEgZXhwZWN0ZWQ6
IDE5OjAwOjAwPGJyPgorLS0+IChGcmkgRGVjIDMxIDIwMDQgMTg6NTk6NTkgR01ULTA1MDAgKEVT
VCkpLnRvTG9jYWxlVGltZVN0cmluZygpID0gNjo1OTo1OSBQTSBFU1QgRkFJTEVEISBleHBlY3Rl
ZDogMTg6NTk6NTk8YnI+CistLT4gKFNhdCBKYW4gMDEgMjAwNSAwMDowMDowMCBHTVQtMDUwMCAo
RVNUKSkudG9Mb2NhbGVUaW1lU3RyaW5nKCkgPSAxMjowMDowMCBBTSBFU1QgRkFJTEVEISBleHBl
Y3RlZDogMDA6MDA6MDA8YnI+CiA8L3R0Pjxicj4KIDxhIG5hbWU9J2ZhaWx1cmU4Jz48L2E+PGRk
PjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2VjbWFfMy9GdW5F
eHByL2ZlLTAwMS5qcyc+ZWNtYV8zL0Z1bkV4cHIvZmUtMDAxLmpzPC9hPiBmYWlsZWQ8L2I+IDxi
cj4KICBbIDxhIGhyZWY9JyNmYWlsdXJlNyc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVm
PScjZmFpbHVyZTknPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Ag
b2YgUGFnZTwvYT4gXTxicj4KQEAgLTU3OCw3ICs1NzgsNyBAQCBGYWlsdXJlIG1lc3NhZ2VzIHdl
cmU6PGJyPgogVGVzdGNhc2UgdGVybWluYXRlZCB3aXRoIHNpZ25hbCAwPGJyPgogQ29tcGxldGUg
dGVzdGNhc2Ugb3V0cHV0IHdhczo8YnI+CiBMRUFLOiAzOTcgS0pTOjpOb2RlPGJyPgotWzk1MDld
IC4vZWNtYV8zL1N0YXRlbWVudHMvcmVncmVzcy0xOTQzNjQuanMgbGluZSAxOiBTeW50YXhFcnJv
cjogUGFyc2UgZXJyb3I8YnI+CitbMjk5MDFdIC4vZWNtYV8zL1N0YXRlbWVudHMvcmVncmVzcy0x
OTQzNjQuanMgbGluZSAxOiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3I8YnI+CiA8L3R0Pjxicj4K
IDxhIG5hbWU9J2ZhaWx1cmUyMCc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVy
X3dpbmRvdycgaHJlZj0nLi9lY21hXzMvVW5pY29kZS91Yy0wMDIuanMnPmVjbWFfMy9Vbmljb2Rl
L3VjLTAwMi5qczwvYT4gZmFpbGVkPC9iPiA8YSBocmVmPSdodHRwOi8vYnVnemlsbGEubW96aWxs
YS5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjEzJyB0YXJnZXQ9J290aGVyX3dpbmRvdyc+QnVnIE51
bWJlciAyMzYxMzwvYT48YnI+CiAgWyA8YSBocmVmPScjZmFpbHVyZTE5Jz5QcmV2aW91cyBGYWls
dXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlMjEnPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVm
PScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KQEAgLTU5NSw3ICs1OTUsNyBAQCBU
ZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21wbGV0ZSB0ZXN0Y2FzZSBv
dXRwdXQgd2FzOjxicj4KIExFQUs6IDQwMyBLSlM6Ok5vZGU8YnI+CiAtLT4gSlMxXzIgT2JqZWN0
LnRvU3RyaW5nKCk8YnI+Ci1bOTUzMF0gLi9qczFfMi9PYmplY3RzL3RvU3RyaW5nLTAwMS5qcyBs
aW5lIDEwMzogVHlwZUVycm9yOiBPYmplY3QgL15ceyguKilcfSQvIChyZXN1bHQgb2YgZXhwcmVz
c2lvbiAvXlx7KC4qKVx9JC8pIGRvZXMgbm90IGFsbG93IGNhbGxzLjxicj4KK1syOTkyMl0gLi9q
czFfMi9PYmplY3RzL3RvU3RyaW5nLTAwMS5qcyBsaW5lIDEwMzogVHlwZUVycm9yOiBPYmplY3Qg
L15ceyguKilcfSQvIChyZXN1bHQgb2YgZXhwcmVzc2lvbiAvXlx7KC4qKVx9JC8pIGRvZXMgbm90
IGFsbG93IGNhbGxzLjxicj4KIDwvdHQ+PGJyPgogPGEgbmFtZT0nZmFpbHVyZTIyJz48L2E+PGRk
PjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV8yL1N0cmlu
Zy9jb25jYXQuanMnPmpzMV8yL1N0cmluZy9jb25jYXQuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgog
IFsgPGEgaHJlZj0nI2ZhaWx1cmUyMSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScj
ZmFpbHVyZTIzJz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9m
IFBhZ2U8L2E+IF08YnI+CkBAIC02NDUsNyArNjQ1LDcgQEAgVGVzdGNhc2UgdGVybWluYXRlZCB3
aXRoIHNpZ25hbCAwPGJyPgogQ29tcGxldGUgdGVzdGNhc2Ugb3V0cHV0IHdhczo8YnI+CiBMRUFL
OiAzMzMgS0pTOjpOb2RlPGJyPgogLS0+IEpTXzEuMiBUaGUgdmFyaWFibGUgc3RhdG1lbnQ8YnI+
Ci1bOTU0M10gLi9qczFfMi9mdW5jdGlvbi9yZWdleHBhcmctMS5qcyBsaW5lIDgwOiBUeXBlRXJy
b3I6IE9iamVjdCAvYWJjLyAocmVzdWx0IG9mIGV4cHJlc3Npb24geCkgZG9lcyBub3QgYWxsb3cg
Y2FsbHMuPGJyPgorWzI5OTM1XSAuL2pzMV8yL2Z1bmN0aW9uL3JlZ2V4cGFyZy0xLmpzIGxpbmUg
ODA6IFR5cGVFcnJvcjogT2JqZWN0IC9hYmMvIChyZXN1bHQgb2YgZXhwcmVzc2lvbiB4KSBkb2Vz
IG5vdCBhbGxvdyBjYWxscy48YnI+CiA8L3R0Pjxicj4KIDxhIG5hbWU9J2ZhaWx1cmUyOCc+PC9h
PjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfMi9m
dW5jdGlvbi90b3N0cmluZy0xLmpzJz5qczFfMi9mdW5jdGlvbi90b3N0cmluZy0xLmpzPC9hPiBm
YWlsZWQ8L2I+IDxicj4KICBbIDxhIGhyZWY9JyNmYWlsdXJlMjcnPlByZXZpb3VzIEZhaWx1cmU8
L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmUyOSc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0
aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgpAQCAtNzE5LDcgKzcxOSw3IEBAIENvbXBs
ZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgogTEVBSzogMzI5IEtKUzo6Tm9kZTxicj4KIC0t
PiBFeGVjdXRpbmcgc2NyaXB0OiBjb21waWxlLmpzPGJyPgogLS0+IEFzIGRlc2NyaWJlZCBpbiBO
ZXRzY2FwZSBkb2MgIldoYXRzIG5ldyBpbiBKYXZhU2NyaXB0IDEuMiIgUmVnRXhwOiBjb21waWxl
PGJyPgotWzk1NzBdIC4vanMxXzIvcmVnZXhwL2NvbXBpbGUuanMgbGluZSA0MzogVHlwZUVycm9y
OiBWYWx1ZSB1bmRlZmluZWQgKHJlc3VsdCBvZiBleHByZXNzaW9uIHJlZ3VsYXJFeHByZXNzaW9u
LmNvbXBpbGUpIGlzIG5vdCBvYmplY3QuPGJyPgorWzI5OTYyXSAuL2pzMV8yL3JlZ2V4cC9jb21w
aWxlLmpzIGxpbmUgNDM6IFR5cGVFcnJvcjogVmFsdWUgdW5kZWZpbmVkIChyZXN1bHQgb2YgZXhw
cmVzc2lvbiByZWd1bGFyRXhwcmVzc2lvbi5jb21waWxlKSBpcyBub3Qgb2JqZWN0Ljxicj4KIDwv
dHQ+PGJyPgogPGEgbmFtZT0nZmFpbHVyZTM2Jz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdl
dD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV8yL3JlZ2V4cC9lbmRMaW5lLmpzJz5qczFfMi9y
ZWdleHAvZW5kTGluZS5qczwvYT4gZmFpbGVkPC9iPiA8YnI+CiAgWyA8YSBocmVmPScjZmFpbHVy
ZTM1Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlMzcnPk5leHQgRmFp
bHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KQEAg
LTczNCw3ICs3MzQsNyBAQCBUZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBD
b21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4KIExFQUs6IDMyOSBLSlM6Ok5vZGU8YnI+
CiAtLT4gQlVHTlVNQkVSOiBodHRwOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dp
P2lkPTYzNTk8YnI+Ci1bOTU4Nl0gLi9qczFfMi9yZWdleHAvcmVncmVzcy02MzU5LmpzIGxpbmUg
NTY6IFR5cGVFcnJvcjogT2JqZWN0IC8oYSopYlwxKy8gKHJlc3VsdCBvZiBleHByZXNzaW9uIC8o
YSopYlwxKy8pIGRvZXMgbm90IGFsbG93IGNhbGxzLjxicj4KK1syOTk3OF0gLi9qczFfMi9yZWdl
eHAvcmVncmVzcy02MzU5LmpzIGxpbmUgNTY6IFR5cGVFcnJvcjogT2JqZWN0IC8oYSopYlwxKy8g
KHJlc3VsdCBvZiBleHByZXNzaW9uIC8oYSopYlwxKy8pIGRvZXMgbm90IGFsbG93IGNhbGxzLjxi
cj4KIDwvdHQ+PGJyPgogPGEgbmFtZT0nZmFpbHVyZTM4Jz48L2E+PGRkPjxiPlRlc3RjYXNlIDxh
IHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV8yL3JlZ2V4cC9yZWdyZXNzLTkxNDEu
anMnPmpzMV8yL3JlZ2V4cC9yZWdyZXNzLTkxNDEuanM8L2E+IGZhaWxlZDwvYj4gPGEgaHJlZj0n
aHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD1odHRwOi8vYnVnemls
bGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTkxNDEnIHRhcmdldD0nb3RoZXJfd2luZG93
Jz5CdWcgTnVtYmVyIGh0dHA6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTE0MTwvYT48YnI+CiAgWyA8YSBocmVmPScjZmFpbHVyZTM3Jz5QcmV2aW91cyBGYWlsdXJlPC9h
PiB8IDxhIGhyZWY9JyNmYWlsdXJlMzknPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlw
cHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KQEAgLTc0Myw3ICs3NDMsNyBAQCBUZXN0Y2Fz
ZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQg
d2FzOjxicj4KIExFQUs6IDMyOSBLSlM6Ok5vZGU8YnI+CiAtLT4gQlVHTlVNQkVSOiBodHRwOi8v
YnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTkxNDE8YnI+Ci1bOTU4N10gLi9q
czFfMi9yZWdleHAvcmVncmVzcy05MTQxLmpzIGxpbmUgNzM6IFR5cGVFcnJvcjogT2JqZWN0IC8o
Pzp4eHx4KSovIChyZXN1bHQgb2YgZXhwcmVzc2lvbiAvKD86eHh8eCkqLykgZG9lcyBub3QgYWxs
b3cgY2FsbHMuPGJyPgorWzI5OTc5XSAuL2pzMV8yL3JlZ2V4cC9yZWdyZXNzLTkxNDEuanMgbGlu
ZSA3MzogVHlwZUVycm9yOiBPYmplY3QgLyg/Onh4fHgpKi8gKHJlc3VsdCBvZiBleHByZXNzaW9u
IC8oPzp4eHx4KSovKSBkb2VzIG5vdCBhbGxvdyBjYWxscy48YnI+CiA8L3R0Pjxicj4KIDxhIG5h
bWU9J2ZhaWx1cmUzOSc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRv
dycgaHJlZj0nLi9qczFfMi9yZWdleHAvc2ltcGxlX2Zvcm0uanMnPmpzMV8yL3JlZ2V4cC9zaW1w
bGVfZm9ybS5qczwvYT4gZmFpbGVkPC9iPiA8YnI+CiAgWyA8YSBocmVmPScjZmFpbHVyZTM4Jz5Q
cmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNDAnPk5leHQgRmFpbHVyZTwv
YT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KQEAgLTc1Myw3
ICs3NTMsNyBAQCBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4KIExFQUs6IDMyOSBL
SlM6Ok5vZGU8YnI+CiAtLT4gRXhlY3V0aW5nIHNjcmlwdDogc2ltcGxlX2Zvcm0uanM8YnI+CiAt
LT4gQXMgZGVzY3JpYmVkIGluIE5ldHNjYXBlIGRvYyAiV2hhdHMgbmV3IGluIEphdmFTY3JpcHQg
MS4yIiBSZWdFeHA6IHNpbXBsZSBmb3JtPGJyPgotWzk1ODhdIC4vanMxXzIvcmVnZXhwL3NpbXBs
ZV9mb3JtLmpzIGxpbmUgNDM6IFR5cGVFcnJvcjogT2JqZWN0IC9bMC05XXszfS8gKHJlc3VsdCBv
ZiBleHByZXNzaW9uIC9bMC05XXszfS8pIGRvZXMgbm90IGFsbG93IGNhbGxzLjxicj4KK1syOTk4
MF0gLi9qczFfMi9yZWdleHAvc2ltcGxlX2Zvcm0uanMgbGluZSA0MzogVHlwZUVycm9yOiBPYmpl
Y3QgL1swLTldezN9LyAocmVzdWx0IG9mIGV4cHJlc3Npb24gL1swLTldezN9LykgZG9lcyBub3Qg
YWxsb3cgY2FsbHMuPGJyPgogPC90dD48YnI+CiA8YSBuYW1lPSdmYWlsdXJlNDAnPjwvYT48ZGQ+
PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzIvcmVnZXhw
L3NwZWNpYWxfY2hhcmFjdGVycy5qcyc+anMxXzIvcmVnZXhwL3NwZWNpYWxfY2hhcmFjdGVycy5q
czwvYT4gZmFpbGVkPC9iPiA8YnI+CiAgWyA8YSBocmVmPScjZmFpbHVyZTM5Jz5QcmV2aW91cyBG
YWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNDEnPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBo
cmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KQEAgLTgwMiw3ICs4MDIsNyBA
QCBUZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21wbGV0ZSB0ZXN0Y2Fz
ZSBvdXRwdXQgd2FzOjxicj4KIExFQUs6IDM4OSBLSlM6Ok5vZGU8YnI+CiAtLT4gc2NyaXB0LTAw
MSBOYXRpdmVTY3JpcHQ8YnI+Ci1bOTYxNF0gLi9qczFfMy9TY3JpcHQvc2NyaXB0LTAwMS5qcyBs
aW5lIDEzMzogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNjcmlwdDxicj4K
K1sxMDZdIC4vanMxXzMvU2NyaXB0L3NjcmlwdC0wMDEuanMgbGluZSAxMzM6IFJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTY3JpcHQ8YnI+CiA8L3R0Pjxicj4KIDxhIG5hbWU9
J2ZhaWx1cmU0Nic+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycg
aHJlZj0nLi9qczFfMy9yZWdyZXNzL2Z1bmN0aW9uLTAwMS1uLmpzJz5qczFfMy9yZWdyZXNzL2Z1
bmN0aW9uLTAwMS1uLmpzPC9hPiBmYWlsZWQ8L2I+IDxhIGhyZWY9J2h0dHA6Ly9idWd6aWxsYS5t
b3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNzgnIHRhcmdldD0nb3RoZXJfd2luZG93Jz5C
dWcgTnVtYmVyIDEwMjc4PC9hPjxicj4KICBbIDxhIGhyZWY9JyNmYWlsdXJlNDUnPlByZXZpb3Vz
IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU0Nyc+TmV4dCBGYWlsdXJlPC9hPiB8IDxh
IGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgpAQCAtODQyLDcgKzg0Miw3
IEBAIExFQUs6IDMyMyBLSlM6Ok5vZGU8YnI+CiBUZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2ln
bmFsIDA8YnI+CiBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4KIExFQUs6IDQ3MyBL
SlM6Ok5vZGU8YnI+Ci1bOTY1OV0gLi9qczFfNS9FeGNlcHRpb25zL2VycnN0YWNrLTAwMS5qcyBs
aW5lIDI0NzogVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWU8YnI+CitbMTU1XSAuL2pzMV81L0V4
Y2VwdGlvbnMvZXJyc3RhY2stMDAxLmpzIGxpbmUgMjQ3OiBUeXBlRXJyb3I6IFVuZGVmaW5lZCB2
YWx1ZTxicj4KIDwvdHQ+PGJyPgogPGEgbmFtZT0nZmFpbHVyZTUxJz48L2E+PGRkPjxiPlRlc3Rj
YXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L0V4Y2VwdGlvbnMvcmVn
cmVzcy01MDQ0Ny5qcyc+anMxXzUvRXhjZXB0aW9ucy9yZWdyZXNzLTUwNDQ3LmpzPC9hPiBmYWls
ZWQ8L2I+IDxhIGhyZWY9J2h0dHA6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTA0NDcnIHRhcmdldD0nb3RoZXJfd2luZG93Jz5CdWcgTnVtYmVyIDUwNDQ3PC9hPjxicj4K
ICBbIDxhIGhyZWY9JyNmYWlsdXJlNTAnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0n
I2ZhaWx1cmU1Mic+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBv
ZiBQYWdlPC9hPiBdPGJyPgpAQCAtODUyLDcgKzg1Miw3IEBAIENvbXBsZXRlIHRlc3RjYXNlIG91
dHB1dCB3YXM6PGJyPgogTEVBSzogNjU0IEtKUzo6Tm9kZTxicj4KIC0tPiBCVUdOVU1CRVI6IDUw
NDQ3PGJyPgogLS0+IFNUQVRVUzogVGVzdCAobm9uLUVDTUEpIEVycm9yIG9iamVjdCBwcm9wZXJ0
aWVzIGZpbGVOYW1lLCBsaW5lTnVtYmVyPGJyPgotWzk2NjBdIC4vanMxXzUvRXhjZXB0aW9ucy9y
ZWdyZXNzLTUwNDQ3LmpzIGxpbmUgNjU6IFR5cGVFcnJvcjogVW5kZWZpbmVkIHZhbHVlPGJyPgor
WzE1Nl0gLi9qczFfNS9FeGNlcHRpb25zL3JlZ3Jlc3MtNTA0NDcuanMgbGluZSA2NTogVHlwZUVy
cm9yOiBVbmRlZmluZWQgdmFsdWU8YnI+CiA8L3R0Pjxicj4KIDxhIG5hbWU9J2ZhaWx1cmU1Mic+
PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFf
NS9HZXRTZXQvZ2V0c2V0LTAwMS5qcyc+anMxXzUvR2V0U2V0L2dldHNldC0wMDEuanM8L2E+IGZh
aWxlZDwvYj4gPGJyPgogIFsgPGEgaHJlZj0nI2ZhaWx1cmU1MSc+UHJldmlvdXMgRmFpbHVyZTwv
YT4gfCA8YSBocmVmPScjZmFpbHVyZTUzJz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3Rp
cHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+CkBAIC04ODEsNyArODgxLDcgQEAgTEVBSzog
MzIzIEtKUzo6Tm9kZTxicj4KIFRlc3RjYXNlIHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwgMDxicj4K
IENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3YXM6PGJyPgogTEVBSzogNzY1IEtKUzo6Tm9kZTxi
cj4KLVs5Njc1XSAuL2pzMV81L09iamVjdC9yZWdyZXNzLTkwNTk2LTAwMS5qcyBsaW5lIDQ4OiBU
eXBlRXJyb3I6IFZhbHVlIHVuZGVmaW5lZCAocmVzdWx0IG9mIGV4cHJlc3Npb24gb2JqLnRvU291
cmNlKSBpcyBub3Qgb2JqZWN0Ljxicj4KK1sxNzVdIC4vanMxXzUvT2JqZWN0L3JlZ3Jlc3MtOTA1
OTYtMDAxLmpzIGxpbmUgNDg6IFR5cGVFcnJvcjogVmFsdWUgdW5kZWZpbmVkIChyZXN1bHQgb2Yg
ZXhwcmVzc2lvbiBvYmoudG9Tb3VyY2UpIGlzIG5vdCBvYmplY3QuPGJyPgogPC90dD48YnI+CiA8
YSBuYW1lPSdmYWlsdXJlNTYnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93
aW5kb3cnIGhyZWY9Jy4vanMxXzUvT2JqZWN0L3JlZ3Jlc3MtOTA1OTYtMDAyLmpzJz5qczFfNS9P
YmplY3QvcmVncmVzcy05MDU5Ni0wMDIuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgogIFsgPGEgaHJl
Zj0nI2ZhaWx1cmU1NSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTU3
Jz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+
IF08YnI+CkBAIC04ODksNyArODg5LDcgQEAgTEVBSzogNzY1IEtKUzo6Tm9kZTxicj4KIFRlc3Rj
YXNlIHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1
dCB3YXM6PGJyPgogTEVBSzogNzY5IEtKUzo6Tm9kZTxicj4KLVs5Njc2XSAuL2pzMV81L09iamVj
dC9yZWdyZXNzLTkwNTk2LTAwMi5qcyBsaW5lIDQ4OiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogdW5ldmFsPGJyPgorWzE3Nl0gLi9qczFfNS9PYmplY3QvcmVncmVzcy05MDU5
Ni0wMDIuanMgbGluZSA0ODogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHVu
ZXZhbDxicj4KIDwvdHQ+PGJyPgogPGEgbmFtZT0nZmFpbHVyZTU3Jz48L2E+PGRkPjxiPlRlc3Rj
YXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L09iamVjdC9yZWdyZXNz
LTk2Mjg0LTAwMS5qcyc+anMxXzUvT2JqZWN0L3JlZ3Jlc3MtOTYyODQtMDAxLmpzPC9hPiBmYWls
ZWQ8L2I+IDxicj4KICBbIDxhIGhyZWY9JyNmYWlsdXJlNTYnPlByZXZpb3VzIEZhaWx1cmU8L2E+
IHwgPGEgaHJlZj0nI2ZhaWx1cmU1OCc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBw
eV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgpAQCAtODk3LDcgKzg5Nyw3IEBAIExFQUs6IDc2
OSBLSlM6Ok5vZGU8YnI+CiBUZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBD
b21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4KIExFQUs6IDM5NyBLSlM6Ok5vZGU8YnI+
Ci1bOTY3OF0gLi9qczFfNS9PYmplY3QvcmVncmVzcy05NjI4NC0wMDEuanMgbGluZSA0OTogVHlw
ZUVycm9yOiBWYWx1ZSB1bmRlZmluZWQgKHJlc3VsdCBvZiBleHByZXNzaW9uIG9iajEudG9Tb3Vy
Y2UpIGlzIG5vdCBvYmplY3QuPGJyPgorWzE3OV0gLi9qczFfNS9PYmplY3QvcmVncmVzcy05NjI4
NC0wMDEuanMgbGluZSA0OTogVHlwZUVycm9yOiBWYWx1ZSB1bmRlZmluZWQgKHJlc3VsdCBvZiBl
eHByZXNzaW9uIG9iajEudG9Tb3VyY2UpIGlzIG5vdCBvYmplY3QuPGJyPgogPC90dD48YnI+CiA8
YSBuYW1lPSdmYWlsdXJlNTgnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93
aW5kb3cnIGhyZWY9Jy4vanMxXzUvT2JqZWN0L3JlZ3Jlc3MtOTYyODQtMDAyLmpzJz5qczFfNS9P
YmplY3QvcmVncmVzcy05NjI4NC0wMDIuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgogIFsgPGEgaHJl
Zj0nI2ZhaWx1cmU1Nyc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTU5
Jz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+
IF08YnI+CkBAIC05MDUsNyArOTA1LDcgQEAgTEVBSzogMzk3IEtKUzo6Tm9kZTxicj4KIFRlc3Rj
YXNlIHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1
dCB3YXM6PGJyPgogTEVBSzogMzk3IEtKUzo6Tm9kZTxicj4KLVs5Njc5XSAuL2pzMV81L09iamVj
dC9yZWdyZXNzLTk2Mjg0LTAwMi5qcyBsaW5lIDQ5OiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogdW5ldmFsPGJyPgorWzE4MF0gLi9qczFfNS9PYmplY3QvcmVncmVzcy05NjI4
NC0wMDIuanMgbGluZSA0OTogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHVu
ZXZhbDxicj4KIDwvdHQ+PGJyPgogPGEgbmFtZT0nZmFpbHVyZTU5Jz48L2E+PGRkPjxiPlRlc3Rj
YXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L1JlZ3Jlc3MvcmVncmVz
cy00NDAwOS5qcyc+anMxXzUvUmVncmVzcy9yZWdyZXNzLTQ0MDA5LmpzPC9hPiBmYWlsZWQ8L2I+
IDxhIGhyZWY9J2h0dHA6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQw
MDknIHRhcmdldD0nb3RoZXJfd2luZG93Jz5CdWcgTnVtYmVyIDQ0MDA5PC9hPjxicj4KICBbIDxh
IGhyZWY9JyNmYWlsdXJlNTgnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1
cmU2MCc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdl
PC9hPiBdPGJyPgpAQCAtOTE1LDcgKzkxNSw3IEBAIENvbXBsZXRlIHRlc3RjYXNlIG91dHB1dCB3
YXM6PGJyPgogTEVBSzogMzk2IEtKUzo6Tm9kZTxicj4KIC0tPiBCVUdOVU1CRVI6IDQ0MDA5PGJy
PgogLS0+IFNUQVRVUzogVGVzdGluZyB0aGF0IHdlIGRvbid0IGNyYXNoIG9uIG9iai50b1NvdXJj
ZSgpPGJyPgotWzk2ODRdIC4vanMxXzUvUmVncmVzcy9yZWdyZXNzLTQ0MDA5LmpzIGxpbmUgNjA6
IFR5cGVFcnJvcjogVmFsdWUgdW5kZWZpbmVkIChyZXN1bHQgb2YgZXhwcmVzc2lvbiBvYmoudG9T
b3VyY2UpIGlzIG5vdCBvYmplY3QuPGJyPgorWzE4NV0gLi9qczFfNS9SZWdyZXNzL3JlZ3Jlc3Mt
NDQwMDkuanMgbGluZSA2MDogVHlwZUVycm9yOiBWYWx1ZSB1bmRlZmluZWQgKHJlc3VsdCBvZiBl
eHByZXNzaW9uIG9iai50b1NvdXJjZSkgaXMgbm90IG9iamVjdC48YnI+CiA8L3R0Pjxicj4KIDxh
IG5hbWU9J2ZhaWx1cmU2MCc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dp
bmRvdycgaHJlZj0nLi9qczFfNS9SZWdyZXNzL3JlZ3Jlc3MtNjg0OTgtMDAzLmpzJz5qczFfNS9S
ZWdyZXNzL3JlZ3Jlc3MtNjg0OTgtMDAzLmpzPC9hPiBmYWlsZWQ8L2I+IDxhIGhyZWY9J2h0dHA6
Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0OTgnIHRhcmdldD0nb3Ro
ZXJfd2luZG93Jz5CdWcgTnVtYmVyIDY4NDk4PC9hPjxicj4KICBbIDxhIGhyZWY9JyNmYWlsdXJl
NTknPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU2MSc+TmV4dCBGYWls
dXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgpAQCAt
OTUwLDcgKzk1MCw3IEBAIExFQUs6IDMyMyBLSlM6Ok5vZGU8YnI+CiBUZXN0Y2FzZSB0ZXJtaW5h
dGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4K
IExFQUs6IDQxOSBLSlM6Ok5vZGU8YnI+Ci1bOTcxMV0gLi9qczFfNS9SZWdyZXNzL3JlZ3Jlc3Mt
MTI3NTU3LmpzIGxpbmUgNzU6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBj
bG9uZTxicj4KK1syMTRdIC4vanMxXzUvUmVncmVzcy9yZWdyZXNzLTEyNzU1Ny5qcyBsaW5lIDc1
OiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogY2xvbmU8YnI+CiA8L3R0Pjxi
cj4KIDxhIG5hbWU9J2ZhaWx1cmU2NCc+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290
aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNS9SZWdyZXNzL3JlZ3Jlc3MtMTcyNjk5LmpzJz5qczFf
NS9SZWdyZXNzL3JlZ3Jlc3MtMTcyNjk5LmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KICBbIDxhIGhy
ZWY9JyNmYWlsdXJlNjMnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU2
NSc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9h
PiBdPGJyPgpAQCAtOTU4LDcgKzk1OCw3IEBAIExFQUs6IDQxOSBLSlM6Ok5vZGU8YnI+CiBUZXN0
Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRw
dXQgd2FzOjxicj4KIExFQUs6IDM5NyBLSlM6Ok5vZGU8YnI+Ci1bOTcyMF0gLi9qczFfNS9SZWdy
ZXNzL3JlZ3Jlc3MtMTcyNjk5LmpzIGxpbmUgNjE6IFVSSUVycm9yOiBVUkkgZXJyb3I8YnI+Citb
MjI4XSAuL2pzMV81L1JlZ3Jlc3MvcmVncmVzcy0xNzI2OTkuanMgbGluZSA2MTogVVJJRXJyb3I6
IFVSSSBlcnJvcjxicj4KIDwvdHQ+PGJyPgogPGEgbmFtZT0nZmFpbHVyZTY1Jz48L2E+PGRkPjxi
PlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV81L1JlZ3Jlc3Mv
cmVncmVzcy0xNzk1MjQuanMnPmpzMV81L1JlZ3Jlc3MvcmVncmVzcy0xNzk1MjQuanM8L2E+IGZh
aWxlZDwvYj4gPGEgaHJlZj0naHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzk1MjQnIHRhcmdldD0nb3RoZXJfd2luZG93Jz5CdWcgTnVtYmVyIDE3OTUyNDwvYT48
YnI+CiAgWyA8YSBocmVmPScjZmFpbHVyZTY0Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhy
ZWY9JyNmYWlsdXJlNjYnPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5U
b3Agb2YgUGFnZTwvYT4gXTxicj4KQEAgLTEwMzMsNyArMTAzMyw3IEBAIEZhaWx1cmUgbWVzc2Fn
ZXMgd2VyZTo8YnI+CiBUZXN0Y2FzZSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDA8YnI+CiBDb21w
bGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4KIExFQUs6IDM5NyBLSlM6Ok5vZGU8YnI+Ci1b
OTc0NV0gLi9qczFfNS9TY29wZS9yZWdyZXNzLTIyMDU4NC5qcyBsaW5lIDU2OiBSZWZlcmVuY2VF
cnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2NyaXB0PGJyPgorWzI1N10gLi9qczFfNS9TY29w
ZS9yZWdyZXNzLTIyMDU4NC5qcyBsaW5lIDU2OiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogU2NyaXB0PGJyPgogPC90dD48YnI+CiA8YSBuYW1lPSdmYWlsdXJlNjgnPjwvYT48
ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzUvU2Nv
cGUvc2NvcGUtMDAxLmpzJz5qczFfNS9TY29wZS9zY29wZS0wMDEuanM8L2E+IGZhaWxlZDwvYj4g
PGEgaHJlZj0naHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD01MzI2
OCcgdGFyZ2V0PSdvdGhlcl93aW5kb3cnPkJ1ZyBOdW1iZXIgNTMyNjg8L2E+PGJyPgogIFsgPGEg
aHJlZj0nI2ZhaWx1cmU2Nyc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVy
ZTY5Jz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8
L2E+IF08YnI+CkBAIC0xMDQ3LDI3ICsxMDQ3LDggQEAgRmFpbHVyZSBtZXNzYWdlcyB3ZXJlOjxi
cj4KIC0tPiBGQUlMRUQhOiBbcmVwb3J0ZWQgZnJvbSB0ZXN0KCldIEV4cGVjdGVkIHZhbHVlICd1
bmRlZmluZWQnLCBBY3R1YWwgdmFsdWUgJzEnPGJyPgogLS0+IEZBSUxFRCE6IFtyZXBvcnRlZCBm
cm9tIHRlc3QoKV0gPGJyPgogPC90dD48YnI+Ci08YSBuYW1lPSdmYWlsdXJlNjknPjwvYT48ZGQ+
PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzYvQXJyYXkv
cmVncmVzcy0zMDQ4MjguanMnPmpzMV82L0FycmF5L3JlZ3Jlc3MtMzA0ODI4LmpzPC9hPiBmYWls
ZWQ8L2I+IDxhIGhyZWY9J2h0dHA6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzA0ODI4JyB0YXJnZXQ9J290aGVyX3dpbmRvdyc+QnVnIE51bWJlciAzMDQ4Mjg8L2E+PGJy
PgorPGEgbmFtZT0nZmFpbHVyZTY5Jz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3Ro
ZXJfd2luZG93JyBocmVmPScuL2pzMV82L1JlZ3Jlc3MvcmVncmVzcy0zMDE1NzQuanMnPmpzMV82
L1JlZ3Jlc3MvcmVncmVzcy0zMDE1NzQuanM8L2E+IGZhaWxlZDwvYj4gPGEgaHJlZj0naHR0cDov
L2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDE1NzQnIHRhcmdldD0nb3Ro
ZXJfd2luZG93Jz5CdWcgTnVtYmVyIDMwMTU3NDwvYT48YnI+CiAgWyA8YSBocmVmPScjZmFpbHVy
ZTY4Jz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNzAnPk5leHQgRmFp
bHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KLTx0
dD4tLT4gU1RBVFVTOiBBcnJheSBHZW5lcmljIE1ldGhvZHM8YnI+Ci1GYWlsdXJlIG1lc3NhZ2Vz
IHdlcmU6PGJyPgotLS0+IEZBSUxFRCE6IEFycmF5IEdlbmVyaWMgTWV0aG9kczogbGFzdEluZGV4
T2Y8YnI+Ci0tLT4gRkFJTEVEITogVHlwZSBtaXNtYXRjaCwgZXhwZWN0ZWQgdHlwZSBudW1iZXIs
IGFjdHVhbCB0eXBlIHN0cmluZzxicj4KLS0tPiBGQUlMRUQhOiBFeHBlY3RlZCB2YWx1ZSAnNCcs
IEFjdHVhbCB2YWx1ZSAnVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUnPGJyPgotLS0+IEZBSUxF
RCE6IDxicj4KLTwvdHQ+PGJyPgotPGEgbmFtZT0nZmFpbHVyZTcwJz48L2E+PGRkPjxiPlRlc3Rj
YXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV82L0FycmF5L3JlZ3Jlc3Mt
MzEwNDI1LTAxLmpzJz5qczFfNi9BcnJheS9yZWdyZXNzLTMxMDQyNS0wMS5qczwvYT4gZmFpbGVk
PC9iPiA8YSBocmVmPSdodHRwOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lk
PTMxMDQyNScgdGFyZ2V0PSdvdGhlcl93aW5kb3cnPkJ1ZyBOdW1iZXIgMzEwNDI1PC9hPjxicj4K
LSBbIDxhIGhyZWY9JyNmYWlsdXJlNjknPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0n
I2ZhaWx1cmU3MSc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBv
ZiBQYWdlPC9hPiBdPGJyPgotPHR0PkV4cGVjdGVkIGV4aXQgY29kZSAwLCBnb3QgMzxicj4KLVRl
c3RjYXNlIHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwgMDxicj4KLUNvbXBsZXRlIHRlc3RjYXNlIG91
dHB1dCB3YXM6PGJyPgotTEVBSzogMTIxMiBLSlM6Ok5vZGU8YnI+Ci0tLT4gQlVHTlVNQkVSOiAz
MTA0MjU8YnI+Ci0tLT4gU1RBVFVTOiBBcnJheS5pbmRleE9mL2xhc3RJbmRleE9mIGVkZ2UgY2Fz
ZXM8YnI+Ci1bOTc1Nl0gLi9qczFfNi9BcnJheS9yZWdyZXNzLTMxMDQyNS0wMS5qcyBsaW5lIDQ3
OiBUeXBlRXJyb3I6IFZhbHVlIHVuZGVmaW5lZCAocmVzdWx0IG9mIGV4cHJlc3Npb24gW10ubGFz
dEluZGV4T2YpIGlzIG5vdCBvYmplY3QuPGJyPgotPC90dD48YnI+Ci08YSBuYW1lPSdmYWlsdXJl
NzEnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4v
anMxXzYvUmVncmVzcy9yZWdyZXNzLTMwMTU3NC5qcyc+anMxXzYvUmVncmVzcy9yZWdyZXNzLTMw
MTU3NC5qczwvYT4gZmFpbGVkPC9iPiA8YSBocmVmPSdodHRwOi8vYnVnemlsbGEubW96aWxsYS5v
cmcvc2hvd19idWcuY2dpP2lkPTMwMTU3NCcgdGFyZ2V0PSdvdGhlcl93aW5kb3cnPkJ1ZyBOdW1i
ZXIgMzAxNTc0PC9hPjxicj4KLSBbIDxhIGhyZWY9JyNmYWlsdXJlNzAnPlByZXZpb3VzIEZhaWx1
cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU3Mic+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9
JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9hPiBdPGJyPgogPHR0Pi0tPiBTVEFUVVM6IEU0WCBz
aG91bGQgYmUgZW5hYmxlZCBldmVuIHdoZW4gZTR4PTEgbm90IHNwZWNpZmllZDxicj4KIEZhaWx1
cmUgbWVzc2FnZXMgd2VyZTo8YnI+CiAtLT4gRkFJTEVEITogRTRYIHNob3VsZCBiZSBlbmFibGVk
IGV2ZW4gd2hlbiBlNHg9MSBub3Qgc3BlY2lmaWVkOiBYTUwoKTxicj4KQEAgLTEwNzcsMjIgKzEw
NTgsMjIgQEAgRmFpbHVyZSBtZXNzYWdlcyB3ZXJlOjxicj4KIC0tPiBGQUlMRUQhOiBFeHBlY3Rl
ZCB2YWx1ZSAnTm8gZXJyb3InLCBBY3R1YWwgdmFsdWUgJ2Vycm9yOiBSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogWE1MJzxicj4KIC0tPiBGQUlMRUQhOiA8YnI+CiA8L3R0Pjxi
cj4KLTxhIG5hbWU9J2ZhaWx1cmU3Mic+PC9hPjxkZD48Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290
aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNi9SZWdyZXNzL3JlZ3Jlc3MtMzA5MjQyLmpzJz5qczFf
Ni9SZWdyZXNzL3JlZ3Jlc3MtMzA5MjQyLmpzPC9hPiBmYWlsZWQ8L2I+IDxicj4KLSBbIDxhIGhy
ZWY9JyNmYWlsdXJlNzEnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI2ZhaWx1cmU3
Myc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBvZiBQYWdlPC9h
PiBdPGJyPgorPGEgbmFtZT0nZmFpbHVyZTcwJz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdl
dD0nb3RoZXJfd2luZG93JyBocmVmPScuL2pzMV82L1JlZ3Jlc3MvcmVncmVzcy0zMDkyNDIuanMn
PmpzMV82L1JlZ3Jlc3MvcmVncmVzcy0zMDkyNDIuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgorIFsg
PGEgaHJlZj0nI2ZhaWx1cmU2OSc+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFp
bHVyZTcxJz5OZXh0IEZhaWx1cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBh
Z2U8L2E+IF08YnI+CiA8dHQ+RXhwZWN0ZWQgZXhpdCBjb2RlIDAsIGdvdCAzPGJyPgogVGVzdGNh
c2UgdGVybWluYXRlZCB3aXRoIHNpZ25hbCAwPGJyPgogQ29tcGxldGUgdGVzdGNhc2Ugb3V0cHV0
IHdhczo8YnI+CiBMRUFLOiAxMjEyIEtKUzo6Tm9kZTxicj4KIDwvdHQ+PGJyPgotPGEgbmFtZT0n
ZmFpbHVyZTczJz48L2E+PGRkPjxiPlRlc3RjYXNlIDxhIHRhcmdldD0nb3RoZXJfd2luZG93JyBo
cmVmPScuL2pzMV82L1JlZ3Jlc3MvcmVncmVzcy0zMTQ4ODcuanMnPmpzMV82L1JlZ3Jlc3MvcmVn
cmVzcy0zMTQ4ODcuanM8L2E+IGZhaWxlZDwvYj4gPGJyPgotIFsgPGEgaHJlZj0nI2ZhaWx1cmU3
Mic+UHJldmlvdXMgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjZmFpbHVyZTc0Jz5OZXh0IEZhaWx1
cmU8L2E+IHwgPGEgaHJlZj0nI3RpcHB5X3RvcCc+VG9wIG9mIFBhZ2U8L2E+IF08YnI+Cis8YSBu
YW1lPSdmYWlsdXJlNzEnPjwvYT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5k
b3cnIGhyZWY9Jy4vanMxXzYvUmVncmVzcy9yZWdyZXNzLTMxNDg4Ny5qcyc+anMxXzYvUmVncmVz
cy9yZWdyZXNzLTMxNDg4Ny5qczwvYT4gZmFpbGVkPC9iPiA8YnI+CisgWyA8YSBocmVmPScjZmFp
bHVyZTcwJz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyNmYWlsdXJlNzInPk5leHQg
RmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlfdG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4K
IDx0dD5FeHBlY3RlZCBleGl0IGNvZGUgMCwgZ290IDM8YnI+CiBUZXN0Y2FzZSB0ZXJtaW5hdGVk
IHdpdGggc2lnbmFsIDA8YnI+CiBDb21wbGV0ZSB0ZXN0Y2FzZSBvdXRwdXQgd2FzOjxicj4KIExF
QUs6IDEyMTIgS0pTOjpOb2RlPGJyPgogPC90dD48YnI+Ci08YSBuYW1lPSdmYWlsdXJlNzQnPjwv
YT48ZGQ+PGI+VGVzdGNhc2UgPGEgdGFyZ2V0PSdvdGhlcl93aW5kb3cnIGhyZWY9Jy4vanMxXzYv
U3RyaW5nL3JlZ3Jlc3MtMzA2NTkxLmpzJz5qczFfNi9TdHJpbmcvcmVncmVzcy0zMDY1OTEuanM8
L2E+IGZhaWxlZDwvYj4gPGEgaHJlZj0naHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3df
YnVnLmNnaT9pZD0zMDY1OTEnIHRhcmdldD0nb3RoZXJfd2luZG93Jz5CdWcgTnVtYmVyIDMwNjU5
MTwvYT48YnI+Ci0gWyA8YSBocmVmPScjZmFpbHVyZTczJz5QcmV2aW91cyBGYWlsdXJlPC9hPiB8
IDxhIGhyZWY9JyNmYWlsdXJlNzUnPk5leHQgRmFpbHVyZTwvYT4gfCA8YSBocmVmPScjdGlwcHlf
dG9wJz5Ub3Agb2YgUGFnZTwvYT4gXTxicj4KKzxhIG5hbWU9J2ZhaWx1cmU3Mic+PC9hPjxkZD48
Yj5UZXN0Y2FzZSA8YSB0YXJnZXQ9J290aGVyX3dpbmRvdycgaHJlZj0nLi9qczFfNi9TdHJpbmcv
cmVncmVzcy0zMDY1OTEuanMnPmpzMV82L1N0cmluZy9yZWdyZXNzLTMwNjU5MS5qczwvYT4gZmFp
bGVkPC9iPiA8YSBocmVmPSdodHRwOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dp
P2lkPTMwNjU5MScgdGFyZ2V0PSdvdGhlcl93aW5kb3cnPkJ1ZyBOdW1iZXIgMzA2NTkxPC9hPjxi
cj4KKyBbIDxhIGhyZWY9JyNmYWlsdXJlNzEnPlByZXZpb3VzIEZhaWx1cmU8L2E+IHwgPGEgaHJl
Zj0nI2ZhaWx1cmU3Myc+TmV4dCBGYWlsdXJlPC9hPiB8IDxhIGhyZWY9JyN0aXBweV90b3AnPlRv
cCBvZiBQYWdlPC9hPiBdPGJyPgogPHR0PkV4cGVjdGVkIGV4aXQgY29kZSAwLCBnb3QgMzxicj4K
IFRlc3RjYXNlIHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwgMDxicj4KIENvbXBsZXRlIHRlc3RjYXNl
IG91dHB1dCB3YXM6PGJyPgpAQCAtMTEwMCw3ICsxMDgxLDcgQEAgTEVBSzogMTIxMiBLSlM6Ok5v
ZGU8YnI+CiAtLT4gQlVHTlVNQkVSOiAzMDY1OTE8YnI+CiAtLT4gU1RBVFVTOiBTdHJpbmcgc3Rh
dGljIG1ldGhvZHM8YnI+CiAtLT4gU1RBVFVTOiBTZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxh
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA0ODI4PGJyPgotWzk3NjddIC4vanMxXzYvU3RyaW5nL3Jl
Z3Jlc3MtMzA2NTkxLmpzIGxpbmUgNDg6IFR5cGVFcnJvcjogVmFsdWUgdW5kZWZpbmVkIChyZXN1
bHQgb2YgZXhwcmVzc2lvbiBTdHJpbmcuc3BsaXQpIGlzIG5vdCBvYmplY3QuPGJyPgorWzI4MF0g
Li9qczFfNi9TdHJpbmcvcmVncmVzcy0zMDY1OTEuanMgbGluZSA0ODogVHlwZUVycm9yOiBWYWx1
ZSB1bmRlZmluZWQgKHJlc3VsdCBvZiBleHByZXNzaW9uIFN0cmluZy5zcGxpdCkgaXMgbm90IG9i
amVjdC48YnI+CiA8L3R0Pjxicj4KIDwvZGw+CiBbIDxhIGhyZWY9JyN0aXBweV90b3AnPlRvcCBv
ZiBQYWdlPC9hPiB8IDxhIGhyZWY9JyNmYWlsX2RldGFpbCc+VG9wIG9mIEZhaWx1cmVzPC9hPiBd
PGJyPgpAQCAtMTEwOCw5ICsxMDg5LDkgQEAgTEVBSzogMTIxMiBLSlM6Ok5vZGU8YnI+CiA8cHJl
PgogPGEgbmFtZT0ncmV0ZXN0X2xpc3QnPjwvYT4KIDxoMj5SZXRlc3QgTGlzdDwvaDI+PGJyPgot
IyBSZXRlc3QgTGlzdCwga2pzLCBnZW5lcmF0ZWQgU2F0IEp1bCAyOSAxNjoxMTowNCAyMDA2Lgor
IyBSZXRlc3QgTGlzdCwga2pzLCBnZW5lcmF0ZWQgRnJpIEF1ZyAxOCAxNDozMjowMyAyMDA2Lgog
IyBPcmlnaW5hbCB0ZXN0IGJhc2Ugd2FzOiBBbGwgdGVzdHMuCi0jIDExMjcgb2YgMTEzNSB0ZXN0
KHMpIHdlcmUgY29tcGxldGVkLCA3NCBmYWlsdXJlcyByZXBvcnRlZC4KKyMgMTEyNyBvZiAxMTM1
IHRlc3Qocykgd2VyZSBjb21wbGV0ZWQsIDcyIGZhaWx1cmVzIHJlcG9ydGVkLgogZWNtYS9HbG9i
YWxPYmplY3QvMTUuMS4yLjItMi5qcwogZWNtYS9MZXhpY2FsQ29udmVudGlvbnMvNy43LjMtMS5q
cwogZWNtYS9UeXBlQ29udmVyc2lvbi85LjMuMS0zLmpzCkBAIC0xMTc5LDggKzExNjAsNiBAQCBq
czFfNS9SZWdyZXNzL3JlZ3Jlc3MtMTc5NTI0LmpzCiBqczFfNS9TY29wZS9yZWdyZXNzLTE4NTQ4
NS5qcwoganMxXzUvU2NvcGUvcmVncmVzcy0yMjA1ODQuanMKIGpzMV81L1Njb3BlL3Njb3BlLTAw
MS5qcwotanMxXzYvQXJyYXkvcmVncmVzcy0zMDQ4MjguanMKLWpzMV82L0FycmF5L3JlZ3Jlc3Mt
MzEwNDI1LTAxLmpzCiBqczFfNi9SZWdyZXNzL3JlZ3Jlc3MtMzAxNTc0LmpzCiBqczFfNi9SZWdy
ZXNzL3JlZ3Jlc3MtMzA5MjQyLmpzCiBqczFfNi9SZWdyZXNzL3JlZ3Jlc3MtMzE0ODg3LmpzCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNTkzOSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDA2LTA4LTE4ICBWbGFkaW1pciBPbGV4YSAgPHZs
YWRpbWlyLm9sZXhhQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIENoYW5nZUxvZzoKKyAgICAgICAgKiBmYXN0L2pzL2FycmF5LWxh
c3RJbmRleE9mLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9hcnJheS1s
YXN0SW5kZXhPZi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3Jlc291cmNlcy9hcnJh
eS1sYXN0SW5kZXhPZi5qczogQWRkZWQuCisKIDIwMDYtMDgtMTYgIEp1c3RpbiBHYXJjaWEgIDxq
dXN0aW4uZ2FyY2lhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSB0aGF0Y2hlcgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9hcnJheS1sYXN0SW5kZXhPZi1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9hcnJheS1sYXN0SW5kZXhPZi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2FycmF5LWxhc3RJ
bmRleE9mLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorVGhpcyB0
ZXN0IGNoZWNrcyBsYXN0SW5kZXhPZiBmb3IgdmFyaW91cyB2YWx1ZXMgaW4gYW4gYXJyYXkKKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbGFzdEluZGV4IGlzIC0xCitQQVNT
IGxhc3RJbmRleCBpcyAyCitQQVNTIGxhc3RJbmRleCBpcyAzCitQQVNTIGxhc3RJbmRleCBpcyAt
MQorUEFTUyBsYXN0SW5kZXggaXMgMworUEFTUyBsYXN0SW5kZXggaXMgMAorUEFTUyBsYXN0SW5k
ZXggaXMgMAorUEFTUyBsYXN0SW5kZXggaXMgMworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvYXJyYXkt
bGFzdEluZGV4T2YuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2FycmF5
LWxhc3RJbmRleE9mLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2Fy
cmF5LWxhc3RJbmRleE9mLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXJyYXktbGFzdEluZGV4T2YuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMv
YXJyYXktbGFzdEluZGV4T2YuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9y
ZXNvdXJjZXMvYXJyYXktbGFzdEluZGV4T2YuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2pzL3Jlc291cmNlcy9hcnJheS1sYXN0SW5kZXhPZi5qcwkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyNiBAQAorZGVzY3JpcHRpb24oCisnVGhpcyB0ZXN0IGNoZWNrcyBsYXN0SW5kZXhP
ZiBmb3IgdmFyaW91cyB2YWx1ZXMgaW4gYW4gYXJyYXknCispOworCisKK3ZhciB0ZXN0QXJyYXkg
PSBbMiwgNSwgOSwgMl07Cit2YXIgbGFzdEluZGV4ID0gMDsKKworbGFzdEluZGV4ID0gdGVzdEFy
cmF5Lmxhc3RJbmRleE9mKDIsLTUwMCk7CitzaG91bGRCZSgnbGFzdEluZGV4JywgJy0xJyk7Cits
YXN0SW5kZXggPSB0ZXN0QXJyYXkubGFzdEluZGV4T2YoOSw1MDApOworc2hvdWxkQmUoJ2xhc3RJ
bmRleCcsICcyJyk7CitsYXN0SW5kZXggPSB0ZXN0QXJyYXkubGFzdEluZGV4T2YoMik7CitzaG91
bGRCZSgnbGFzdEluZGV4JywgJzMnKTsKK2xhc3RJbmRleCA9IHRlc3RBcnJheS5sYXN0SW5kZXhP
Zig3KTsKK3Nob3VsZEJlKCdsYXN0SW5kZXgnLCAnLTEnKTsKK2xhc3RJbmRleCA9IHRlc3RBcnJh
eS5sYXN0SW5kZXhPZigyLCAzKTsKK3Nob3VsZEJlKCdsYXN0SW5kZXgnLCAnMycpOworbGFzdElu
ZGV4ID0gdGVzdEFycmF5Lmxhc3RJbmRleE9mKDIsIDIpOworc2hvdWxkQmUoJ2xhc3RJbmRleCcs
ICcwJyk7CitsYXN0SW5kZXggPSB0ZXN0QXJyYXkubGFzdEluZGV4T2YoMiwgLTIpOworc2hvdWxk
QmUoJ2xhc3RJbmRleCcsICcwJyk7CitsYXN0SW5kZXggPSB0ZXN0QXJyYXkubGFzdEluZGV4T2Yo
MiwgLTEpOworc2hvdWxkQmUoJ2xhc3RJbmRleCcsICczJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="review"
          id="3160"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>